@corensystem/coren-ui 1.0.0-next.20260924.75108.887a9c2
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/bin/intent.js +20 -0
- package/dist/accordion.d.mts +11 -0
- package/dist/accordion.d.mts.map +1 -0
- package/dist/accordion.mjs +42 -0
- package/dist/accordion.mjs.map +1 -0
- package/dist/activity-log.d.mts +29 -0
- package/dist/activity-log.d.mts.map +1 -0
- package/dist/activity-log.mjs +60 -0
- package/dist/activity-log.mjs.map +1 -0
- package/dist/activity-sheet.d.mts +18 -0
- package/dist/activity-sheet.d.mts.map +1 -0
- package/dist/activity-sheet.mjs +167 -0
- package/dist/activity-sheet.mjs.map +1 -0
- package/dist/add-clinic-location-dialog.d.mts +21 -0
- package/dist/add-clinic-location-dialog.d.mts.map +1 -0
- package/dist/add-clinic-location-dialog.mjs +96 -0
- package/dist/add-clinic-location-dialog.mjs.map +1 -0
- package/dist/add-clinic-visit-dialog.d.mts +51 -0
- package/dist/add-clinic-visit-dialog.d.mts.map +1 -0
- package/dist/add-clinic-visit-dialog.mjs +307 -0
- package/dist/add-clinic-visit-dialog.mjs.map +1 -0
- package/dist/add-observation-dialog.d.mts +36 -0
- package/dist/add-observation-dialog.d.mts.map +1 -0
- package/dist/add-observation-dialog.mjs +269 -0
- package/dist/add-observation-dialog.mjs.map +1 -0
- package/dist/alert-dialog.d.mts +24 -0
- package/dist/alert-dialog.d.mts.map +1 -0
- package/dist/alert-dialog.mjs +62 -0
- package/dist/alert-dialog.mjs.map +1 -0
- package/dist/alert.d.mts +12 -0
- package/dist/alert.d.mts.map +1 -0
- package/dist/alert.mjs +36 -0
- package/dist/alert.mjs.map +1 -0
- package/dist/app-card.d.mts +21 -0
- package/dist/app-card.d.mts.map +1 -0
- package/dist/app-card.mjs +49 -0
- package/dist/app-card.mjs.map +1 -0
- package/dist/app-shell.d.mts +39 -0
- package/dist/app-shell.d.mts.map +1 -0
- package/dist/app-shell.mjs +79 -0
- package/dist/app-shell.mjs.map +1 -0
- package/dist/aspect-ratio.d.mts +8 -0
- package/dist/aspect-ratio.d.mts.map +1 -0
- package/dist/aspect-ratio.mjs +14 -0
- package/dist/aspect-ratio.mjs.map +1 -0
- package/dist/asset-list-item.d.mts +36 -0
- package/dist/asset-list-item.d.mts.map +1 -0
- package/dist/asset-list-item.mjs +51 -0
- package/dist/asset-list-item.mjs.map +1 -0
- package/dist/assign-doctor-dialog.d.mts +28 -0
- package/dist/assign-doctor-dialog.d.mts.map +1 -0
- package/dist/assign-doctor-dialog.mjs +194 -0
- package/dist/assign-doctor-dialog.mjs.map +1 -0
- package/dist/attention-list.d.mts +29 -0
- package/dist/attention-list.d.mts.map +1 -0
- package/dist/attention-list.mjs +82 -0
- package/dist/attention-list.mjs.map +1 -0
- package/dist/avatar-status-dot.d.mts +22 -0
- package/dist/avatar-status-dot.d.mts.map +1 -0
- package/dist/avatar-status-dot.mjs +72 -0
- package/dist/avatar-status-dot.mjs.map +1 -0
- package/dist/avatar.d.mts +34 -0
- package/dist/avatar.d.mts.map +1 -0
- package/dist/avatar.mjs +103 -0
- package/dist/avatar.mjs.map +1 -0
- package/dist/badge.d.mts +18 -0
- package/dist/badge.d.mts.map +1 -0
- package/dist/badge.mjs +39 -0
- package/dist/badge.mjs.map +1 -0
- package/dist/banner.d.mts +18 -0
- package/dist/banner.d.mts.map +1 -0
- package/dist/banner.mjs +74 -0
- package/dist/banner.mjs.map +1 -0
- package/dist/blockquote.d.mts +13 -0
- package/dist/blockquote.d.mts.map +1 -0
- package/dist/blockquote.mjs +22 -0
- package/dist/blockquote.mjs.map +1 -0
- package/dist/blueprint-segment.d.mts +33 -0
- package/dist/blueprint-segment.d.mts.map +1 -0
- package/dist/blueprint-segment.mjs +59 -0
- package/dist/blueprint-segment.mjs.map +1 -0
- package/dist/bottom-sheet-switcher.d.mts +32 -0
- package/dist/bottom-sheet-switcher.d.mts.map +1 -0
- package/dist/bottom-sheet-switcher.mjs +40 -0
- package/dist/bottom-sheet-switcher.mjs.map +1 -0
- package/dist/bottom-sheet.d.mts +23 -0
- package/dist/bottom-sheet.d.mts.map +1 -0
- package/dist/bottom-sheet.mjs +91 -0
- package/dist/bottom-sheet.mjs.map +1 -0
- package/dist/breadcrumb.d.mts +39 -0
- package/dist/breadcrumb.d.mts.map +1 -0
- package/dist/breadcrumb.mjs +95 -0
- package/dist/breadcrumb.mjs.map +1 -0
- package/dist/breadcrumbs.d.mts +2 -0
- package/dist/breadcrumbs.mjs +2 -0
- package/dist/browser-tabs.d.mts +40 -0
- package/dist/browser-tabs.d.mts.map +1 -0
- package/dist/browser-tabs.mjs +127 -0
- package/dist/browser-tabs.mjs.map +1 -0
- package/dist/building-model-placeholder.d.mts +46 -0
- package/dist/building-model-placeholder.d.mts.map +1 -0
- package/dist/building-model-placeholder.mjs +175 -0
- package/dist/building-model-placeholder.mjs.map +1 -0
- package/dist/building-progress.d.mts +32 -0
- package/dist/building-progress.d.mts.map +1 -0
- package/dist/building-progress.mjs +74 -0
- package/dist/building-progress.mjs.map +1 -0
- package/dist/building-viewer.d.mts +91 -0
- package/dist/building-viewer.d.mts.map +1 -0
- package/dist/building-viewer.mjs +567 -0
- package/dist/building-viewer.mjs.map +1 -0
- package/dist/button-group.d.mts +8 -0
- package/dist/button-group.d.mts.map +1 -0
- package/dist/button-group.mjs +21 -0
- package/dist/button-group.mjs.map +1 -0
- package/dist/button.d.mts +21 -0
- package/dist/button.d.mts.map +1 -0
- package/dist/button.mjs +79 -0
- package/dist/button.mjs.map +1 -0
- package/dist/calendar-view.d.mts +47 -0
- package/dist/calendar-view.d.mts.map +1 -0
- package/dist/calendar-view.mjs +165 -0
- package/dist/calendar-view.mjs.map +1 -0
- package/dist/calendar.d.mts +15 -0
- package/dist/calendar.d.mts.map +1 -0
- package/dist/calendar.mjs +94 -0
- package/dist/calendar.mjs.map +1 -0
- package/dist/camera-detail-panel.d.mts +44 -0
- package/dist/camera-detail-panel.d.mts.map +1 -0
- package/dist/camera-detail-panel.mjs +105 -0
- package/dist/camera-detail-panel.mjs.map +1 -0
- package/dist/canvas-file-picker.d.mts +28 -0
- package/dist/canvas-file-picker.d.mts.map +1 -0
- package/dist/canvas-file-picker.mjs +90 -0
- package/dist/canvas-file-picker.mjs.map +1 -0
- package/dist/canvas-header.d.mts +28 -0
- package/dist/canvas-header.d.mts.map +1 -0
- package/dist/canvas-header.mjs +42 -0
- package/dist/canvas-header.mjs.map +1 -0
- package/dist/canvas-navigator.d.mts +87 -0
- package/dist/canvas-navigator.d.mts.map +1 -0
- package/dist/canvas-navigator.mjs +426 -0
- package/dist/canvas-navigator.mjs.map +1 -0
- package/dist/canvas-toolbar.d.mts +37 -0
- package/dist/canvas-toolbar.d.mts.map +1 -0
- package/dist/canvas-toolbar.mjs +65 -0
- package/dist/canvas-toolbar.mjs.map +1 -0
- package/dist/capture-route-minimap.d.mts +40 -0
- package/dist/capture-route-minimap.d.mts.map +1 -0
- package/dist/capture-route-minimap.mjs +438 -0
- package/dist/capture-route-minimap.mjs.map +1 -0
- package/dist/card.d.mts +17 -0
- package/dist/card.d.mts.map +1 -0
- package/dist/card.mjs +63 -0
- package/dist/card.mjs.map +1 -0
- package/dist/carousel.d.mts +23 -0
- package/dist/carousel.d.mts.map +1 -0
- package/dist/carousel.mjs +141 -0
- package/dist/carousel.mjs.map +1 -0
- package/dist/catalogue-view-toggle.d.mts +53 -0
- package/dist/catalogue-view-toggle.d.mts.map +1 -0
- package/dist/catalogue-view-toggle.mjs +54 -0
- package/dist/catalogue-view-toggle.mjs.map +1 -0
- package/dist/chart.d.mts +91 -0
- package/dist/chart.d.mts.map +1 -0
- package/dist/chart.mjs +254 -0
- package/dist/chart.mjs.map +1 -0
- package/dist/chat/core-ai-chat-header.d.mts +95 -0
- package/dist/chat/core-ai-chat-header.d.mts.map +1 -0
- package/dist/chat/core-ai-chat-header.mjs +237 -0
- package/dist/chat/core-ai-chat-header.mjs.map +1 -0
- package/dist/chat/core-ai-chat-message.d.mts +18 -0
- package/dist/chat/core-ai-chat-message.d.mts.map +1 -0
- package/dist/chat/core-ai-chat-message.mjs +82 -0
- package/dist/chat/core-ai-chat-message.mjs.map +1 -0
- package/dist/chat/core-ai-chat.d.mts +116 -0
- package/dist/chat/core-ai-chat.d.mts.map +1 -0
- package/dist/chat/core-ai-chat.mjs +325 -0
- package/dist/chat/core-ai-chat.mjs.map +1 -0
- package/dist/chat/core-chart-renderer.d.mts +10 -0
- package/dist/chat/core-chart-renderer.d.mts.map +1 -0
- package/dist/chat/core-chart-renderer.mjs +177 -0
- package/dist/chat/core-chart-renderer.mjs.map +1 -0
- package/dist/chat/core-chat-input.d.mts +9 -0
- package/dist/chat/core-chat-input.d.mts.map +1 -0
- package/dist/chat/core-chat-input.mjs +66 -0
- package/dist/chat/core-chat-input.mjs.map +1 -0
- package/dist/chat/core-chat-message.d.mts +11 -0
- package/dist/chat/core-chat-message.d.mts.map +1 -0
- package/dist/chat/core-chat-message.mjs +101 -0
- package/dist/chat/core-chat-message.mjs.map +1 -0
- package/dist/chat/core-chat-panel.d.mts +16 -0
- package/dist/chat/core-chat-panel.d.mts.map +1 -0
- package/dist/chat/core-chat-panel.mjs +139 -0
- package/dist/chat/core-chat-panel.mjs.map +1 -0
- package/dist/chat/core-chat-widget.d.mts +12 -0
- package/dist/chat/core-chat-widget.d.mts.map +1 -0
- package/dist/chat/core-chat-widget.mjs +116 -0
- package/dist/chat/core-chat-widget.mjs.map +1 -0
- package/dist/chat-layout.d.mts +38 -0
- package/dist/chat-layout.d.mts.map +1 -0
- package/dist/chat-layout.mjs +94 -0
- package/dist/chat-layout.mjs.map +1 -0
- package/dist/chat-message.d.mts +40 -0
- package/dist/chat-message.d.mts.map +1 -0
- package/dist/chat-message.mjs +84 -0
- package/dist/chat-message.mjs.map +1 -0
- package/dist/checkbox.d.mts +8 -0
- package/dist/checkbox.d.mts.map +1 -0
- package/dist/checkbox.mjs +22 -0
- package/dist/checkbox.mjs.map +1 -0
- package/dist/chip.d.mts +54 -0
- package/dist/chip.d.mts.map +1 -0
- package/dist/chip.mjs +142 -0
- package/dist/chip.mjs.map +1 -0
- package/dist/citation.d.mts +22 -0
- package/dist/citation.d.mts.map +1 -0
- package/dist/citation.mjs +70 -0
- package/dist/citation.mjs.map +1 -0
- package/dist/clickable-card.d.mts +28 -0
- package/dist/clickable-card.d.mts.map +1 -0
- package/dist/clickable-card.mjs +87 -0
- package/dist/clickable-card.mjs.map +1 -0
- package/dist/code.d.mts +21 -0
- package/dist/code.d.mts.map +1 -0
- package/dist/code.mjs +48 -0
- package/dist/code.mjs.map +1 -0
- package/dist/collapsible.d.mts +10 -0
- package/dist/collapsible.d.mts.map +1 -0
- package/dist/collapsible.mjs +16 -0
- package/dist/collapsible.mjs.map +1 -0
- package/dist/combobox.d.mts +116 -0
- package/dist/combobox.d.mts.map +1 -0
- package/dist/combobox.mjs +149 -0
- package/dist/combobox.mjs.map +1 -0
- package/dist/command-palette.d.mts +43 -0
- package/dist/command-palette.d.mts.map +1 -0
- package/dist/command-palette.mjs +70 -0
- package/dist/command-palette.mjs.map +1 -0
- package/dist/command.d.mts +91 -0
- package/dist/command.d.mts.map +1 -0
- package/dist/command.mjs +82 -0
- package/dist/command.mjs.map +1 -0
- package/dist/comment-composer.d.mts +29 -0
- package/dist/comment-composer.d.mts.map +1 -0
- package/dist/comment-composer.mjs +253 -0
- package/dist/comment-composer.mjs.map +1 -0
- package/dist/comment-thread.d.mts +66 -0
- package/dist/comment-thread.d.mts.map +1 -0
- package/dist/comment-thread.mjs +180 -0
- package/dist/comment-thread.mjs.map +1 -0
- package/dist/compare-bars.d.mts +29 -0
- package/dist/compare-bars.d.mts.map +1 -0
- package/dist/compare-bars.mjs +118 -0
- package/dist/compare-bars.mjs.map +1 -0
- package/dist/compare-view.d.mts +75 -0
- package/dist/compare-view.d.mts.map +1 -0
- package/dist/compare-view.mjs +383 -0
- package/dist/compare-view.mjs.map +1 -0
- package/dist/confirm-dialog.d.mts +37 -0
- package/dist/confirm-dialog.d.mts.map +1 -0
- package/dist/confirm-dialog.mjs +40 -0
- package/dist/confirm-dialog.mjs.map +1 -0
- package/dist/context-menu.d.mts +31 -0
- package/dist/context-menu.d.mts.map +1 -0
- package/dist/context-menu.mjs +84 -0
- package/dist/context-menu.mjs.map +1 -0
- package/dist/context-toolbar.d.mts +22 -0
- package/dist/context-toolbar.d.mts.map +1 -0
- package/dist/context-toolbar.mjs +81 -0
- package/dist/context-toolbar.mjs.map +1 -0
- package/dist/copy-button.d.mts +15 -0
- package/dist/copy-button.d.mts.map +1 -0
- package/dist/copy-button.mjs +33 -0
- package/dist/copy-button.mjs.map +1 -0
- package/dist/core-mark.d.mts +25 -0
- package/dist/core-mark.d.mts.map +1 -0
- package/dist/core-mark.mjs +74 -0
- package/dist/core-mark.mjs.map +1 -0
- package/dist/data/mock-data.d.mts +9 -0
- package/dist/data/mock-data.d.mts.map +1 -0
- package/dist/data/mock-data.mjs +159 -0
- package/dist/data/mock-data.mjs.map +1 -0
- package/dist/data/rnglf-zones.d.mts +17 -0
- package/dist/data/rnglf-zones.d.mts.map +1 -0
- package/dist/data/rnglf-zones.mjs +1400 -0
- package/dist/data/rnglf-zones.mjs.map +1 -0
- package/dist/data-table.d.mts +202 -0
- package/dist/data-table.d.mts.map +1 -0
- package/dist/data-table.mjs +520 -0
- package/dist/data-table.mjs.map +1 -0
- package/dist/date-picker.d.mts +111 -0
- package/dist/date-picker.d.mts.map +1 -0
- package/dist/date-picker.mjs +546 -0
- package/dist/date-picker.mjs.map +1 -0
- package/dist/date-range-input.d.mts +26 -0
- package/dist/date-range-input.d.mts.map +1 -0
- package/dist/date-range-input.mjs +60 -0
- package/dist/date-range-input.mjs.map +1 -0
- package/dist/date-time-input.d.mts +27 -0
- package/dist/date-time-input.d.mts.map +1 -0
- package/dist/date-time-input.mjs +110 -0
- package/dist/date-time-input.mjs.map +1 -0
- package/dist/detail-panel-shell.d.mts +37 -0
- package/dist/detail-panel-shell.d.mts.map +1 -0
- package/dist/detail-panel-shell.mjs +86 -0
- package/dist/detail-panel-shell.mjs.map +1 -0
- package/dist/dialog.d.mts +105 -0
- package/dist/dialog.d.mts.map +1 -0
- package/dist/dialog.mjs +137 -0
- package/dist/dialog.mjs.map +1 -0
- package/dist/divider.d.mts +8 -0
- package/dist/divider.d.mts.map +1 -0
- package/dist/divider.mjs +18 -0
- package/dist/divider.mjs.map +1 -0
- package/dist/drawer.d.mts +26 -0
- package/dist/drawer.d.mts.map +1 -0
- package/dist/drawer.mjs +53 -0
- package/dist/drawer.mjs.map +1 -0
- package/dist/drawing-actions.d.mts +29 -0
- package/dist/drawing-actions.d.mts.map +1 -0
- package/dist/drawing-actions.mjs +124 -0
- package/dist/drawing-actions.mjs.map +1 -0
- package/dist/dropdown-menu.d.mts +31 -0
- package/dist/dropdown-menu.d.mts.map +1 -0
- package/dist/dropdown-menu.mjs +84 -0
- package/dist/dropdown-menu.mjs.map +1 -0
- package/dist/empty.d.mts +34 -0
- package/dist/empty.d.mts.map +1 -0
- package/dist/empty.mjs +119 -0
- package/dist/empty.mjs.map +1 -0
- package/dist/error-page.d.mts +20 -0
- package/dist/error-page.d.mts.map +1 -0
- package/dist/error-page.mjs +96 -0
- package/dist/error-page.mjs.map +1 -0
- package/dist/export-dialog.d.mts +58 -0
- package/dist/export-dialog.d.mts.map +1 -0
- package/dist/export-dialog.mjs +248 -0
- package/dist/export-dialog.mjs.map +1 -0
- package/dist/field.d.mts +11 -0
- package/dist/field.d.mts.map +1 -0
- package/dist/field.mjs +34 -0
- package/dist/field.mjs.map +1 -0
- package/dist/file-input.d.mts +17 -0
- package/dist/file-input.d.mts.map +1 -0
- package/dist/file-input.mjs +114 -0
- package/dist/file-input.mjs.map +1 -0
- package/dist/file-system/context.d.mts +28 -0
- package/dist/file-system/context.d.mts.map +1 -0
- package/dist/file-system/context.mjs +42 -0
- package/dist/file-system/context.mjs.map +1 -0
- package/dist/file-system/file-system-details.d.mts +12 -0
- package/dist/file-system/file-system-details.d.mts.map +1 -0
- package/dist/file-system/file-system-details.mjs +166 -0
- package/dist/file-system/file-system-details.mjs.map +1 -0
- package/dist/file-system/file-system-filters.d.mts +16 -0
- package/dist/file-system/file-system-filters.d.mts.map +1 -0
- package/dist/file-system/file-system-filters.mjs +205 -0
- package/dist/file-system/file-system-filters.mjs.map +1 -0
- package/dist/file-system/file-system-new.d.mts +16 -0
- package/dist/file-system/file-system-new.d.mts.map +1 -0
- package/dist/file-system/file-system-new.mjs +204 -0
- package/dist/file-system/file-system-new.mjs.map +1 -0
- package/dist/file-system/file-system-path.d.mts +7 -0
- package/dist/file-system/file-system-path.d.mts.map +1 -0
- package/dist/file-system/file-system-path.mjs +22 -0
- package/dist/file-system/file-system-path.mjs.map +1 -0
- package/dist/file-system/file-system-project.d.mts +16 -0
- package/dist/file-system/file-system-project.d.mts.map +1 -0
- package/dist/file-system/file-system-project.mjs +253 -0
- package/dist/file-system/file-system-project.mjs.map +1 -0
- package/dist/file-system/file-system-table.d.mts +17 -0
- package/dist/file-system/file-system-table.d.mts.map +1 -0
- package/dist/file-system/file-system-table.mjs +95 -0
- package/dist/file-system/file-system-table.mjs.map +1 -0
- package/dist/file-system/file-system.d.mts +35 -0
- package/dist/file-system/file-system.d.mts.map +1 -0
- package/dist/file-system/file-system.mjs +179 -0
- package/dist/file-system/file-system.mjs.map +1 -0
- package/dist/file-system/index.d.mts +9 -0
- package/dist/file-system/index.mjs +9 -0
- package/dist/file-system/model.d.mts +156 -0
- package/dist/file-system/model.d.mts.map +1 -0
- package/dist/file-system/model.mjs +200 -0
- package/dist/file-system/model.mjs.map +1 -0
- package/dist/filter.d.mts +92 -0
- package/dist/filter.d.mts.map +1 -0
- package/dist/filter.mjs +267 -0
- package/dist/filter.mjs.map +1 -0
- package/dist/float-shadow.d.mts +10 -0
- package/dist/float-shadow.d.mts.map +1 -0
- package/dist/float-shadow.mjs +11 -0
- package/dist/float-shadow.mjs.map +1 -0
- package/dist/floating-assistant.d.mts +75 -0
- package/dist/floating-assistant.d.mts.map +1 -0
- package/dist/floating-assistant.mjs +114 -0
- package/dist/floating-assistant.mjs.map +1 -0
- package/dist/floor-progress-bar.d.mts +17 -0
- package/dist/floor-progress-bar.d.mts.map +1 -0
- package/dist/floor-progress-bar.mjs +38 -0
- package/dist/floor-progress-bar.mjs.map +1 -0
- package/dist/fonts/LICENSE.md +41 -0
- package/dist/fonts/figtree-italic-300-900-latin-ext.woff2 +0 -0
- package/dist/fonts/figtree-italic-300-900-latin.woff2 +0 -0
- package/dist/fonts/figtree-normal-300-900-latin-ext.woff2 +0 -0
- package/dist/fonts/figtree-normal-300-900-latin.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-italic-400-latin-ext.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-italic-400-latin.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-normal-400-latin-ext.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-normal-400-latin.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-normal-500-latin-ext.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-normal-500-latin.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-normal-600-latin-ext.woff2 +0 -0
- package/dist/fonts/ibm-plex-mono-normal-600-latin.woff2 +0 -0
- package/dist/fonts/lora-italic-400-700-latin-ext.woff2 +0 -0
- package/dist/fonts/lora-italic-400-700-latin.woff2 +0 -0
- package/dist/fonts/lora-normal-400-700-latin-ext.woff2 +0 -0
- package/dist/fonts/lora-normal-400-700-latin.woff2 +0 -0
- package/dist/footprint-viewer.d.mts +88 -0
- package/dist/footprint-viewer.d.mts.map +1 -0
- package/dist/footprint-viewer.mjs +657 -0
- package/dist/footprint-viewer.mjs.map +1 -0
- package/dist/form-action-bar.d.mts +32 -0
- package/dist/form-action-bar.d.mts.map +1 -0
- package/dist/form-action-bar.mjs +42 -0
- package/dist/form-action-bar.mjs.map +1 -0
- package/dist/form-dialog.d.mts +116 -0
- package/dist/form-dialog.d.mts.map +1 -0
- package/dist/form-dialog.mjs +149 -0
- package/dist/form-dialog.mjs.map +1 -0
- package/dist/form-layout.d.mts +33 -0
- package/dist/form-layout.d.mts.map +1 -0
- package/dist/form-layout.mjs +90 -0
- package/dist/form-layout.mjs.map +1 -0
- package/dist/form.d.mts +29 -0
- package/dist/form.d.mts.map +1 -0
- package/dist/form.mjs +93 -0
- package/dist/form.mjs.map +1 -0
- package/dist/fragment-viewer/cinematic.d.mts +76 -0
- package/dist/fragment-viewer/cinematic.d.mts.map +1 -0
- package/dist/fragment-viewer/cinematic.mjs +382 -0
- package/dist/fragment-viewer/cinematic.mjs.map +1 -0
- package/dist/fragment-viewer/context.d.mts +106 -0
- package/dist/fragment-viewer/context.d.mts.map +1 -0
- package/dist/fragment-viewer/context.mjs +168 -0
- package/dist/fragment-viewer/context.mjs.map +1 -0
- package/dist/fragment-viewer/runtime.d.mts +288 -0
- package/dist/fragment-viewer/runtime.d.mts.map +1 -0
- package/dist/fragment-viewer/runtime.mjs +782 -0
- package/dist/fragment-viewer/runtime.mjs.map +1 -0
- package/dist/fragment-viewer.d.mts +62 -0
- package/dist/fragment-viewer.d.mts.map +1 -0
- package/dist/fragment-viewer.mjs +144 -0
- package/dist/fragment-viewer.mjs.map +1 -0
- package/dist/gantt.d.mts +72 -0
- package/dist/gantt.d.mts.map +1 -0
- package/dist/gantt.mjs +281 -0
- package/dist/gantt.mjs.map +1 -0
- package/dist/graph-canvas.d.mts +60 -0
- package/dist/graph-canvas.d.mts.map +1 -0
- package/dist/graph-canvas.mjs +105 -0
- package/dist/graph-canvas.mjs.map +1 -0
- package/dist/grid.d.mts +16 -0
- package/dist/grid.d.mts.map +1 -0
- package/dist/grid.mjs +47 -0
- package/dist/grid.mjs.map +1 -0
- package/dist/heading.d.mts +16 -0
- package/dist/heading.d.mts.map +1 -0
- package/dist/heading.mjs +43 -0
- package/dist/heading.mjs.map +1 -0
- package/dist/house-shape.d.mts +22 -0
- package/dist/house-shape.d.mts.map +1 -0
- package/dist/house-shape.mjs +103 -0
- package/dist/house-shape.mjs.map +1 -0
- package/dist/hover-card.d.mts +10 -0
- package/dist/hover-card.d.mts.map +1 -0
- package/dist/hover-card.mjs +22 -0
- package/dist/hover-card.mjs.map +1 -0
- package/dist/icon-button.d.mts +20 -0
- package/dist/icon-button.d.mts.map +1 -0
- package/dist/icon-button.mjs +52 -0
- package/dist/icon-button.mjs.map +1 -0
- package/dist/icon.d.mts +16 -0
- package/dist/icon.d.mts.map +1 -0
- package/dist/icon.mjs +32 -0
- package/dist/icon.mjs.map +1 -0
- package/dist/image-zoom.d.mts +23 -0
- package/dist/image-zoom.d.mts.map +1 -0
- package/dist/image-zoom.mjs +51 -0
- package/dist/image-zoom.mjs.map +1 -0
- package/dist/index.d.mts +3 -0
- package/dist/index.mjs +2 -0
- package/dist/inline-comment-composer.d.mts +40 -0
- package/dist/inline-comment-composer.d.mts.map +1 -0
- package/dist/inline-comment-composer.mjs +174 -0
- package/dist/inline-comment-composer.mjs.map +1 -0
- package/dist/input-group.d.mts +8 -0
- package/dist/input-group.d.mts.map +1 -0
- package/dist/input-group.mjs +21 -0
- package/dist/input-group.mjs.map +1 -0
- package/dist/input-otp.d.mts +40 -0
- package/dist/input-otp.d.mts.map +1 -0
- package/dist/input-otp.mjs +44 -0
- package/dist/input-otp.mjs.map +1 -0
- package/dist/input.d.mts +7 -0
- package/dist/input.d.mts.map +1 -0
- package/dist/input.mjs +18 -0
- package/dist/input.mjs.map +1 -0
- package/dist/item.d.mts +10 -0
- package/dist/item.d.mts.map +1 -0
- package/dist/item.mjs +33 -0
- package/dist/item.mjs.map +1 -0
- package/dist/kbd.d.mts +8 -0
- package/dist/kbd.d.mts.map +1 -0
- package/dist/kbd.mjs +15 -0
- package/dist/kbd.mjs.map +1 -0
- package/dist/kiosk-body.d.mts +13 -0
- package/dist/kiosk-body.d.mts.map +1 -0
- package/dist/kiosk-body.mjs +352 -0
- package/dist/kiosk-body.mjs.map +1 -0
- package/dist/kpi-bar.d.mts +29 -0
- package/dist/kpi-bar.d.mts.map +1 -0
- package/dist/kpi-bar.mjs +46 -0
- package/dist/kpi-bar.mjs.map +1 -0
- package/dist/kpi-summary.d.mts +24 -0
- package/dist/kpi-summary.d.mts.map +1 -0
- package/dist/kpi-summary.mjs +22 -0
- package/dist/kpi-summary.mjs.map +1 -0
- package/dist/label.d.mts +19 -0
- package/dist/label.d.mts.map +1 -0
- package/dist/label.mjs +27 -0
- package/dist/label.mjs.map +1 -0
- package/dist/legend.d.mts +87 -0
- package/dist/legend.d.mts.map +1 -0
- package/dist/legend.mjs +210 -0
- package/dist/legend.mjs.map +1 -0
- package/dist/lightbox.d.mts +28 -0
- package/dist/lightbox.d.mts.map +1 -0
- package/dist/lightbox.mjs +142 -0
- package/dist/lightbox.mjs.map +1 -0
- package/dist/link-type-detail.d.mts +73 -0
- package/dist/link-type-detail.d.mts.map +1 -0
- package/dist/link-type-detail.mjs +628 -0
- package/dist/link-type-detail.mjs.map +1 -0
- package/dist/link-type-wizard.d.mts +35 -0
- package/dist/link-type-wizard.d.mts.map +1 -0
- package/dist/link-type-wizard.mjs +303 -0
- package/dist/link-type-wizard.mjs.map +1 -0
- package/dist/link.d.mts +14 -0
- package/dist/link.d.mts.map +1 -0
- package/dist/link.mjs +30 -0
- package/dist/link.mjs.map +1 -0
- package/dist/list.d.mts +19 -0
- package/dist/list.d.mts.map +1 -0
- package/dist/list.mjs +27 -0
- package/dist/list.mjs.map +1 -0
- package/dist/map-compare-layout.d.mts +53 -0
- package/dist/map-compare-layout.d.mts.map +1 -0
- package/dist/map-compare-layout.mjs +164 -0
- package/dist/map-compare-layout.mjs.map +1 -0
- package/dist/map-compass.d.mts +22 -0
- package/dist/map-compass.d.mts.map +1 -0
- package/dist/map-compass.mjs +56 -0
- package/dist/map-compass.mjs.map +1 -0
- package/dist/map-control-panel.d.mts +92 -0
- package/dist/map-control-panel.d.mts.map +1 -0
- package/dist/map-control-panel.mjs +153 -0
- package/dist/map-control-panel.mjs.map +1 -0
- package/dist/map-controls.d.mts +24 -0
- package/dist/map-controls.d.mts.map +1 -0
- package/dist/map-controls.mjs +322 -0
- package/dist/map-controls.mjs.map +1 -0
- package/dist/map-hover-card.d.mts +28 -0
- package/dist/map-hover-card.d.mts.map +1 -0
- package/dist/map-hover-card.mjs +56 -0
- package/dist/map-hover-card.mjs.map +1 -0
- package/dist/map-legend.d.mts +41 -0
- package/dist/map-legend.d.mts.map +1 -0
- package/dist/map-legend.mjs +97 -0
- package/dist/map-legend.mjs.map +1 -0
- package/dist/map-minimap.d.mts +44 -0
- package/dist/map-minimap.d.mts.map +1 -0
- package/dist/map-minimap.mjs +108 -0
- package/dist/map-minimap.mjs.map +1 -0
- package/dist/map-toolbar.d.mts +60 -0
- package/dist/map-toolbar.d.mts.map +1 -0
- package/dist/map-toolbar.mjs +195 -0
- package/dist/map-toolbar.mjs.map +1 -0
- package/dist/map-transition.d.mts +51 -0
- package/dist/map-transition.d.mts.map +1 -0
- package/dist/map-transition.mjs +59 -0
- package/dist/map-transition.mjs.map +1 -0
- package/dist/map.d.mts +14 -0
- package/dist/map.d.mts.map +1 -0
- package/dist/map.mjs +47 -0
- package/dist/map.mjs.map +1 -0
- package/dist/mapbox-token.d.mts +12 -0
- package/dist/mapbox-token.d.mts.map +1 -0
- package/dist/mapbox-token.mjs +15 -0
- package/dist/mapbox-token.mjs.map +1 -0
- package/dist/markdown.d.mts +18 -0
- package/dist/markdown.d.mts.map +1 -0
- package/dist/markdown.mjs +41 -0
- package/dist/markdown.mjs.map +1 -0
- package/dist/mega-menu.d.mts +36 -0
- package/dist/mega-menu.d.mts.map +1 -0
- package/dist/mega-menu.mjs +89 -0
- package/dist/mega-menu.mjs.map +1 -0
- package/dist/menubar.d.mts +32 -0
- package/dist/menubar.d.mts.map +1 -0
- package/dist/menubar.mjs +96 -0
- package/dist/menubar.mjs.map +1 -0
- package/dist/metadata-list.d.mts +2 -0
- package/dist/metadata-list.mjs +2 -0
- package/dist/metric-card.d.mts +28 -0
- package/dist/metric-card.d.mts.map +1 -0
- package/dist/metric-card.mjs +55 -0
- package/dist/metric-card.mjs.map +1 -0
- package/dist/milestone-table.d.mts +35 -0
- package/dist/milestone-table.d.mts.map +1 -0
- package/dist/milestone-table.mjs +84 -0
- package/dist/milestone-table.mjs.map +1 -0
- package/dist/minimap.d.mts +23 -0
- package/dist/minimap.d.mts.map +1 -0
- package/dist/minimap.mjs +64 -0
- package/dist/minimap.mjs.map +1 -0
- package/dist/more-menu.d.mts +27 -0
- package/dist/more-menu.d.mts.map +1 -0
- package/dist/more-menu.mjs +34 -0
- package/dist/more-menu.mjs.map +1 -0
- package/dist/multi-select.d.mts +38 -0
- package/dist/multi-select.d.mts.map +1 -0
- package/dist/multi-select.mjs +106 -0
- package/dist/multi-select.mjs.map +1 -0
- package/dist/navigation/core-app-sidebar.d.mts +461 -0
- package/dist/navigation/core-app-sidebar.d.mts.map +1 -0
- package/dist/navigation/core-app-sidebar.mjs +1288 -0
- package/dist/navigation/core-app-sidebar.mjs.map +1 -0
- package/dist/navigation/core-app-top-bar.d.mts +116 -0
- package/dist/navigation/core-app-top-bar.d.mts.map +1 -0
- package/dist/navigation/core-app-top-bar.mjs +224 -0
- package/dist/navigation/core-app-top-bar.mjs.map +1 -0
- package/dist/navigation/core-context-tabs.d.mts +12 -0
- package/dist/navigation/core-context-tabs.d.mts.map +1 -0
- package/dist/navigation/core-context-tabs.mjs +32 -0
- package/dist/navigation/core-context-tabs.mjs.map +1 -0
- package/dist/navigation/core-dashboard-header.d.mts +20 -0
- package/dist/navigation/core-dashboard-header.d.mts.map +1 -0
- package/dist/navigation/core-dashboard-header.mjs +227 -0
- package/dist/navigation/core-dashboard-header.mjs.map +1 -0
- package/dist/navigation/core-filter-strip.d.mts +12 -0
- package/dist/navigation/core-filter-strip.d.mts.map +1 -0
- package/dist/navigation/core-filter-strip.mjs +289 -0
- package/dist/navigation/core-filter-strip.mjs.map +1 -0
- package/dist/navigation/core-org-project-switcher.d.mts +12 -0
- package/dist/navigation/core-org-project-switcher.d.mts.map +1 -0
- package/dist/navigation/core-org-project-switcher.mjs +201 -0
- package/dist/navigation/core-org-project-switcher.mjs.map +1 -0
- package/dist/navigation/switcher.d.mts +38 -0
- package/dist/navigation/switcher.d.mts.map +1 -0
- package/dist/navigation/switcher.mjs +144 -0
- package/dist/navigation/switcher.mjs.map +1 -0
- package/dist/navigation-menu.d.mts +16 -0
- package/dist/navigation-menu.d.mts.map +1 -0
- package/dist/navigation-menu.mjs +64 -0
- package/dist/navigation-menu.mjs.map +1 -0
- package/dist/neighborhood-scene.d.mts +21 -0
- package/dist/neighborhood-scene.d.mts.map +1 -0
- package/dist/neighborhood-scene.mjs +285 -0
- package/dist/neighborhood-scene.mjs.map +1 -0
- package/dist/node-graph.d.mts +154 -0
- package/dist/node-graph.d.mts.map +1 -0
- package/dist/node-graph.mjs +349 -0
- package/dist/node-graph.mjs.map +1 -0
- package/dist/notification-center.d.mts +40 -0
- package/dist/notification-center.d.mts.map +1 -0
- package/dist/notification-center.mjs +224 -0
- package/dist/notification-center.mjs.map +1 -0
- package/dist/number-input.d.mts +23 -0
- package/dist/number-input.d.mts.map +1 -0
- package/dist/number-input.mjs +79 -0
- package/dist/number-input.mjs.map +1 -0
- package/dist/object-drawing-toolbar.d.mts +38 -0
- package/dist/object-drawing-toolbar.d.mts.map +1 -0
- package/dist/object-drawing-toolbar.mjs +172 -0
- package/dist/object-drawing-toolbar.mjs.map +1 -0
- package/dist/object-type-detail.d.mts +27 -0
- package/dist/object-type-detail.d.mts.map +1 -0
- package/dist/object-type-detail.mjs +1389 -0
- package/dist/object-type-detail.mjs.map +1 -0
- package/dist/object-type-wizard.d.mts +78 -0
- package/dist/object-type-wizard.d.mts.map +1 -0
- package/dist/object-type-wizard.mjs +885 -0
- package/dist/object-type-wizard.mjs.map +1 -0
- package/dist/observation-detail-panel.d.mts +89 -0
- package/dist/observation-detail-panel.d.mts.map +1 -0
- package/dist/observation-detail-panel.mjs +168 -0
- package/dist/observation-detail-panel.mjs.map +1 -0
- package/dist/observations-map.d.mts +288 -0
- package/dist/observations-map.d.mts.map +1 -0
- package/dist/observations-map.mjs +1087 -0
- package/dist/observations-map.mjs.map +1 -0
- package/dist/operations-drawer.d.mts +51 -0
- package/dist/operations-drawer.d.mts.map +1 -0
- package/dist/operations-drawer.mjs +193 -0
- package/dist/operations-drawer.mjs.map +1 -0
- package/dist/outline.d.mts +27 -0
- package/dist/outline.d.mts.map +1 -0
- package/dist/outline.mjs +47 -0
- package/dist/outline.mjs.map +1 -0
- package/dist/overflow-list.d.mts +23 -0
- package/dist/overflow-list.d.mts.map +1 -0
- package/dist/overflow-list.mjs +38 -0
- package/dist/overflow-list.mjs.map +1 -0
- package/dist/overlay.d.mts +17 -0
- package/dist/overlay.d.mts.map +1 -0
- package/dist/overlay.mjs +32 -0
- package/dist/overlay.mjs.map +1 -0
- package/dist/page-content-header.d.mts +43 -0
- package/dist/page-content-header.d.mts.map +1 -0
- package/dist/page-content-header.mjs +224 -0
- package/dist/page-content-header.mjs.map +1 -0
- package/dist/pages/almanar-blocks-data.d.mts +4 -0
- package/dist/pages/almanar-blocks-data.d.mts.map +1 -0
- package/dist/pages/almanar-blocks-data.mjs +691 -0
- package/dist/pages/almanar-blocks-data.mjs.map +1 -0
- package/dist/pages/almanar-hierarchy-data.d.mts +9 -0
- package/dist/pages/almanar-hierarchy-data.d.mts.map +1 -0
- package/dist/pages/almanar-hierarchy-data.mjs +816 -0
- package/dist/pages/almanar-hierarchy-data.mjs.map +1 -0
- package/dist/pages/almanar-villa-taxonomy.d.mts +9 -0
- package/dist/pages/almanar-villa-taxonomy.d.mts.map +1 -0
- package/dist/pages/almanar-villa-taxonomy.mjs +1569 -0
- package/dist/pages/almanar-villa-taxonomy.mjs.map +1 -0
- package/dist/pages/app-marketplace-shared.d.mts +146 -0
- package/dist/pages/app-marketplace-shared.d.mts.map +1 -0
- package/dist/pages/app-marketplace-shared.mjs +739 -0
- package/dist/pages/app-marketplace-shared.mjs.map +1 -0
- package/dist/pages/capture-ui-enhanced.d.mts +125 -0
- package/dist/pages/capture-ui-enhanced.d.mts.map +1 -0
- package/dist/pages/capture-ui-enhanced.mjs +915 -0
- package/dist/pages/capture-ui-enhanced.mjs.map +1 -0
- package/dist/pages/core-admin-panel.d.mts +10 -0
- package/dist/pages/core-admin-panel.d.mts.map +1 -0
- package/dist/pages/core-admin-panel.mjs +3076 -0
- package/dist/pages/core-admin-panel.mjs.map +1 -0
- package/dist/pages/core-analytics-overview.d.mts +10 -0
- package/dist/pages/core-analytics-overview.d.mts.map +1 -0
- package/dist/pages/core-analytics-overview.mjs +904 -0
- package/dist/pages/core-analytics-overview.mjs.map +1 -0
- package/dist/pages/core-app-installer.d.mts +17 -0
- package/dist/pages/core-app-installer.d.mts.map +1 -0
- package/dist/pages/core-app-installer.mjs +94 -0
- package/dist/pages/core-app-installer.mjs.map +1 -0
- package/dist/pages/core-blueprint-viewer-3.d.mts +25 -0
- package/dist/pages/core-blueprint-viewer-3.d.mts.map +1 -0
- package/dist/pages/core-blueprint-viewer-3.mjs +688 -0
- package/dist/pages/core-blueprint-viewer-3.mjs.map +1 -0
- package/dist/pages/core-blueprint-viewer.d.mts +14 -0
- package/dist/pages/core-blueprint-viewer.d.mts.map +1 -0
- package/dist/pages/core-blueprint-viewer.mjs +665 -0
- package/dist/pages/core-blueprint-viewer.mjs.map +1 -0
- package/dist/pages/core-building-viewer-capture.d.mts +18 -0
- package/dist/pages/core-building-viewer-capture.d.mts.map +1 -0
- package/dist/pages/core-building-viewer-capture.mjs +268 -0
- package/dist/pages/core-building-viewer-capture.mjs.map +1 -0
- package/dist/pages/core-building-viewer.d.mts +20 -0
- package/dist/pages/core-building-viewer.d.mts.map +1 -0
- package/dist/pages/core-building-viewer.mjs +299 -0
- package/dist/pages/core-building-viewer.mjs.map +1 -0
- package/dist/pages/core-clinic.d.mts +14 -0
- package/dist/pages/core-clinic.d.mts.map +1 -0
- package/dist/pages/core-clinic.mjs +2175 -0
- package/dist/pages/core-clinic.mjs.map +1 -0
- package/dist/pages/core-content-area.d.mts +15 -0
- package/dist/pages/core-content-area.d.mts.map +1 -0
- package/dist/pages/core-content-area.mjs +192 -0
- package/dist/pages/core-content-area.mjs.map +1 -0
- package/dist/pages/core-core-connect-v3.d.mts +16 -0
- package/dist/pages/core-core-connect-v3.d.mts.map +1 -0
- package/dist/pages/core-core-connect-v3.mjs +30 -0
- package/dist/pages/core-core-connect-v3.mjs.map +1 -0
- package/dist/pages/core-core-connect.d.mts +15 -0
- package/dist/pages/core-core-connect.d.mts.map +1 -0
- package/dist/pages/core-core-connect.mjs +21 -0
- package/dist/pages/core-core-connect.mjs.map +1 -0
- package/dist/pages/core-design-canvas.d.mts +10 -0
- package/dist/pages/core-design-canvas.d.mts.map +1 -0
- package/dist/pages/core-design-canvas.mjs +322 -0
- package/dist/pages/core-design-canvas.mjs.map +1 -0
- package/dist/pages/core-login-page.d.mts +8 -0
- package/dist/pages/core-login-page.d.mts.map +1 -0
- package/dist/pages/core-login-page.mjs +141 -0
- package/dist/pages/core-login-page.mjs.map +1 -0
- package/dist/pages/core-map-compare-layout.d.mts +20 -0
- package/dist/pages/core-map-compare-layout.d.mts.map +1 -0
- package/dist/pages/core-map-compare-layout.mjs +187 -0
- package/dist/pages/core-map-compare-layout.mjs.map +1 -0
- package/dist/pages/core-observations-map-view.d.mts +19 -0
- package/dist/pages/core-observations-map-view.d.mts.map +1 -0
- package/dist/pages/core-observations-map-view.mjs +1273 -0
- package/dist/pages/core-observations-map-view.mjs.map +1 -0
- package/dist/pages/core-org-ai-report.d.mts +9 -0
- package/dist/pages/core-org-ai-report.d.mts.map +1 -0
- package/dist/pages/core-org-ai-report.mjs +474 -0
- package/dist/pages/core-org-ai-report.mjs.map +1 -0
- package/dist/pages/core-org-overview.d.mts +11 -0
- package/dist/pages/core-org-overview.d.mts.map +1 -0
- package/dist/pages/core-org-overview.mjs +718 -0
- package/dist/pages/core-org-overview.mjs.map +1 -0
- package/dist/pages/core-org-performance.d.mts +11 -0
- package/dist/pages/core-org-performance.d.mts.map +1 -0
- package/dist/pages/core-org-performance.mjs +1398 -0
- package/dist/pages/core-org-performance.mjs.map +1 -0
- package/dist/pages/core-org-reality-capture.d.mts +10 -0
- package/dist/pages/core-org-reality-capture.d.mts.map +1 -0
- package/dist/pages/core-org-reality-capture.mjs +1962 -0
- package/dist/pages/core-org-reality-capture.mjs.map +1 -0
- package/dist/pages/core-org-workforce-intelligence.d.mts +12 -0
- package/dist/pages/core-org-workforce-intelligence.d.mts.map +1 -0
- package/dist/pages/core-org-workforce-intelligence.mjs +1215 -0
- package/dist/pages/core-org-workforce-intelligence.mjs.map +1 -0
- package/dist/pages/core-progress-details.d.mts +10 -0
- package/dist/pages/core-progress-details.d.mts.map +1 -0
- package/dist/pages/core-progress-details.mjs +758 -0
- package/dist/pages/core-progress-details.mjs.map +1 -0
- package/dist/pages/core-project-overview.d.mts +9 -0
- package/dist/pages/core-project-overview.d.mts.map +1 -0
- package/dist/pages/core-project-overview.mjs +246 -0
- package/dist/pages/core-project-overview.mjs.map +1 -0
- package/dist/pages/core-project-quality-issues.d.mts +9 -0
- package/dist/pages/core-project-quality-issues.d.mts.map +1 -0
- package/dist/pages/core-project-quality-issues.mjs +508 -0
- package/dist/pages/core-project-quality-issues.mjs.map +1 -0
- package/dist/pages/core-project-reality-capture.d.mts +9 -0
- package/dist/pages/core-project-reality-capture.d.mts.map +1 -0
- package/dist/pages/core-project-reality-capture.mjs +496 -0
- package/dist/pages/core-project-reality-capture.mjs.map +1 -0
- package/dist/pages/core-project-schedule-cost.d.mts +9 -0
- package/dist/pages/core-project-schedule-cost.d.mts.map +1 -0
- package/dist/pages/core-project-schedule-cost.mjs +548 -0
- package/dist/pages/core-project-schedule-cost.mjs.map +1 -0
- package/dist/pages/core-project-setup.d.mts +10 -0
- package/dist/pages/core-project-setup.d.mts.map +1 -0
- package/dist/pages/core-project-setup.mjs +283 -0
- package/dist/pages/core-project-setup.mjs.map +1 -0
- package/dist/pages/core-project-workforce-safety.d.mts +9 -0
- package/dist/pages/core-project-workforce-safety.d.mts.map +1 -0
- package/dist/pages/core-project-workforce-safety.mjs +465 -0
- package/dist/pages/core-project-workforce-safety.mjs.map +1 -0
- package/dist/pages/core-safety-manager.d.mts +14 -0
- package/dist/pages/core-safety-manager.d.mts.map +1 -0
- package/dist/pages/core-safety-manager.mjs +3081 -0
- package/dist/pages/core-safety-manager.mjs.map +1 -0
- package/dist/pages/core-site-reality.d.mts +25 -0
- package/dist/pages/core-site-reality.d.mts.map +1 -0
- package/dist/pages/core-site-reality.mjs +505 -0
- package/dist/pages/core-site-reality.mjs.map +1 -0
- package/dist/pages/core-task-monitor.d.mts +4 -0
- package/dist/pages/core-task-monitor.d.mts.map +1 -0
- package/dist/pages/core-task-monitor.mjs +587 -0
- package/dist/pages/core-task-monitor.mjs.map +1 -0
- package/dist/pages/core-timesheet.d.mts +2 -0
- package/dist/pages/core-timesheet.mjs +2 -0
- package/dist/pages/core-verifytime-command-center.d.mts +4 -0
- package/dist/pages/core-verifytime-command-center.d.mts.map +1 -0
- package/dist/pages/core-verifytime-command-center.mjs +1089 -0
- package/dist/pages/core-verifytime-command-center.mjs.map +1 -0
- package/dist/pages/core-wc3-workspace.d.mts +71 -0
- package/dist/pages/core-wc3-workspace.d.mts.map +1 -0
- package/dist/pages/core-wc3-workspace.mjs +1015 -0
- package/dist/pages/core-wc3-workspace.mjs.map +1 -0
- package/dist/pages/core-work-permit.d.mts +14 -0
- package/dist/pages/core-work-permit.d.mts.map +1 -0
- package/dist/pages/core-work-permit.mjs +281 -0
- package/dist/pages/core-work-permit.mjs.map +1 -0
- package/dist/pages/core-workforce.d.mts +24 -0
- package/dist/pages/core-workforce.d.mts.map +1 -0
- package/dist/pages/core-workforce.mjs +1253 -0
- package/dist/pages/core-workforce.mjs.map +1 -0
- package/dist/pages/org-logos.d.mts +9 -0
- package/dist/pages/org-logos.d.mts.map +1 -0
- package/dist/pages/org-logos.mjs +11 -0
- package/dist/pages/org-logos.mjs.map +1 -0
- package/dist/pages/state-machine-fixtures.d.mts +34 -0
- package/dist/pages/state-machine-fixtures.d.mts.map +1 -0
- package/dist/pages/state-machine-fixtures.mjs +73 -0
- package/dist/pages/state-machine-fixtures.mjs.map +1 -0
- package/dist/pages/state-machine.d.mts +407 -0
- package/dist/pages/state-machine.d.mts.map +1 -0
- package/dist/pages/state-machine.mjs +2254 -0
- package/dist/pages/state-machine.mjs.map +1 -0
- package/dist/pages/typeform/AttachmentInput.d.mts +11 -0
- package/dist/pages/typeform/AttachmentInput.d.mts.map +1 -0
- package/dist/pages/typeform/AttachmentInput.mjs +59 -0
- package/dist/pages/typeform/AttachmentInput.mjs.map +1 -0
- package/dist/pages/typeform/BuildMethodScreen.d.mts +10 -0
- package/dist/pages/typeform/BuildMethodScreen.d.mts.map +1 -0
- package/dist/pages/typeform/BuildMethodScreen.mjs +176 -0
- package/dist/pages/typeform/BuildMethodScreen.mjs.map +1 -0
- package/dist/pages/typeform/BuilderFlow.d.mts +29 -0
- package/dist/pages/typeform/BuilderFlow.d.mts.map +1 -0
- package/dist/pages/typeform/BuilderFlow.mjs +111 -0
- package/dist/pages/typeform/BuilderFlow.mjs.map +1 -0
- package/dist/pages/typeform/BuilderScreen.d.mts +14 -0
- package/dist/pages/typeform/BuilderScreen.d.mts.map +1 -0
- package/dist/pages/typeform/BuilderScreen.mjs +668 -0
- package/dist/pages/typeform/BuilderScreen.mjs.map +1 -0
- package/dist/pages/typeform/DataSourceSelect.d.mts +13 -0
- package/dist/pages/typeform/DataSourceSelect.d.mts.map +1 -0
- package/dist/pages/typeform/DataSourceSelect.mjs +36 -0
- package/dist/pages/typeform/DataSourceSelect.mjs.map +1 -0
- package/dist/pages/typeform/DerivedCountDisplay.d.mts +10 -0
- package/dist/pages/typeform/DerivedCountDisplay.d.mts.map +1 -0
- package/dist/pages/typeform/DerivedCountDisplay.mjs +20 -0
- package/dist/pages/typeform/DerivedCountDisplay.mjs.map +1 -0
- package/dist/pages/typeform/FillerRJSF.d.mts +10 -0
- package/dist/pages/typeform/FillerRJSF.d.mts.map +1 -0
- package/dist/pages/typeform/FillerRJSF.mjs +314 -0
- package/dist/pages/typeform/FillerRJSF.mjs.map +1 -0
- package/dist/pages/typeform/FormBuilderWidgetRJSF.d.mts +9 -0
- package/dist/pages/typeform/FormBuilderWidgetRJSF.d.mts.map +1 -0
- package/dist/pages/typeform/FormBuilderWidgetRJSF.mjs +22 -0
- package/dist/pages/typeform/FormBuilderWidgetRJSF.mjs.map +1 -0
- package/dist/pages/typeform/PublishScreen.d.mts +18 -0
- package/dist/pages/typeform/PublishScreen.d.mts.map +1 -0
- package/dist/pages/typeform/PublishScreen.mjs +163 -0
- package/dist/pages/typeform/PublishScreen.mjs.map +1 -0
- package/dist/pages/typeform/QuestionInspector.d.mts +7 -0
- package/dist/pages/typeform/QuestionInspector.d.mts.map +1 -0
- package/dist/pages/typeform/QuestionInspector.mjs +749 -0
- package/dist/pages/typeform/QuestionInspector.mjs.map +1 -0
- package/dist/pages/typeform/QuestionRenderer.d.mts +23 -0
- package/dist/pages/typeform/QuestionRenderer.d.mts.map +1 -0
- package/dist/pages/typeform/QuestionRenderer.mjs +170 -0
- package/dist/pages/typeform/QuestionRenderer.mjs.map +1 -0
- package/dist/pages/typeform/RatingInput.d.mts +14 -0
- package/dist/pages/typeform/RatingInput.d.mts.map +1 -0
- package/dist/pages/typeform/RatingInput.mjs +58 -0
- package/dist/pages/typeform/RatingInput.mjs.map +1 -0
- package/dist/pages/typeform/RuleGroupEditor.d.mts +9 -0
- package/dist/pages/typeform/RuleGroupEditor.d.mts.map +1 -0
- package/dist/pages/typeform/RuleGroupEditor.mjs +183 -0
- package/dist/pages/typeform/RuleGroupEditor.mjs.map +1 -0
- package/dist/pages/typeform/SignaturePad.d.mts +11 -0
- package/dist/pages/typeform/SignaturePad.d.mts.map +1 -0
- package/dist/pages/typeform/SignaturePad.mjs +111 -0
- package/dist/pages/typeform/SignaturePad.mjs.map +1 -0
- package/dist/pages/typeform/TableInput.d.mts +15 -0
- package/dist/pages/typeform/TableInput.d.mts.map +1 -0
- package/dist/pages/typeform/TableInput.mjs +73 -0
- package/dist/pages/typeform/TableInput.mjs.map +1 -0
- package/dist/pages/typeform/WorkspaceScreen.d.mts +20 -0
- package/dist/pages/typeform/WorkspaceScreen.d.mts.map +1 -0
- package/dist/pages/typeform/WorkspaceScreen.mjs +158 -0
- package/dist/pages/typeform/WorkspaceScreen.mjs.map +1 -0
- package/dist/pages/typeform/coreRjsfTheme.d.mts +4 -0
- package/dist/pages/typeform/coreRjsfTheme.d.mts.map +1 -0
- package/dist/pages/typeform/coreRjsfTheme.mjs +142 -0
- package/dist/pages/typeform/coreRjsfTheme.mjs.map +1 -0
- package/dist/pages/typeform/dataSources.d.mts +35 -0
- package/dist/pages/typeform/dataSources.d.mts.map +1 -0
- package/dist/pages/typeform/dataSources.mjs +210 -0
- package/dist/pages/typeform/dataSources.mjs.map +1 -0
- package/dist/pages/typeform/fillerShared.d.mts +21 -0
- package/dist/pages/typeform/fillerShared.d.mts.map +1 -0
- package/dist/pages/typeform/fillerShared.mjs +112 -0
- package/dist/pages/typeform/fillerShared.mjs.map +1 -0
- package/dist/pages/typeform/logic.d.mts +46 -0
- package/dist/pages/typeform/logic.d.mts.map +1 -0
- package/dist/pages/typeform/logic.mjs +193 -0
- package/dist/pages/typeform/logic.mjs.map +1 -0
- package/dist/pages/typeform/model.d.mts +144 -0
- package/dist/pages/typeform/model.d.mts.map +1 -0
- package/dist/pages/typeform/model.mjs +328 -0
- package/dist/pages/typeform/model.mjs.map +1 -0
- package/dist/pages/typeform/schemaToJsonSchema.d.mts +9 -0
- package/dist/pages/typeform/schemaToJsonSchema.d.mts.map +1 -0
- package/dist/pages/typeform/schemaToJsonSchema.mjs +119 -0
- package/dist/pages/typeform/schemaToJsonSchema.mjs.map +1 -0
- package/dist/pages/typeform/useFormBuilder.d.mts +34 -0
- package/dist/pages/typeform/useFormBuilder.d.mts.map +1 -0
- package/dist/pages/typeform/useFormBuilder.mjs +389 -0
- package/dist/pages/typeform/useFormBuilder.mjs.map +1 -0
- package/dist/pages/view-mode-thumbs.d.mts +6 -0
- package/dist/pages/view-mode-thumbs.d.mts.map +1 -0
- package/dist/pages/view-mode-thumbs.mjs +8 -0
- package/dist/pages/view-mode-thumbs.mjs.map +1 -0
- package/dist/pages/wc3-action-type-detail.d.mts +166 -0
- package/dist/pages/wc3-action-type-detail.d.mts.map +1 -0
- package/dist/pages/wc3-action-type-detail.mjs +2182 -0
- package/dist/pages/wc3-action-type-detail.mjs.map +1 -0
- package/dist/pages/wc3-action-type-run-dialog.d.mts +23 -0
- package/dist/pages/wc3-action-type-run-dialog.d.mts.map +1 -0
- package/dist/pages/wc3-action-type-run-dialog.mjs +383 -0
- package/dist/pages/wc3-action-type-run-dialog.mjs.map +1 -0
- package/dist/pages/wc3-action-type-wizard.d.mts +75 -0
- package/dist/pages/wc3-action-type-wizard.d.mts.map +1 -0
- package/dist/pages/wc3-action-type-wizard.mjs +702 -0
- package/dist/pages/wc3-action-type-wizard.mjs.map +1 -0
- package/dist/pages/wc3-analysis-data-view.d.mts +15 -0
- package/dist/pages/wc3-analysis-data-view.d.mts.map +1 -0
- package/dist/pages/wc3-analysis-data-view.mjs +129 -0
- package/dist/pages/wc3-analysis-data-view.mjs.map +1 -0
- package/dist/pages/wc3-analysis-data.d.mts +181 -0
- package/dist/pages/wc3-analysis-data.d.mts.map +1 -0
- package/dist/pages/wc3-analysis-data.mjs +4074 -0
- package/dist/pages/wc3-analysis-data.mjs.map +1 -0
- package/dist/pages/wc3-analysis-object-view.d.mts +12 -0
- package/dist/pages/wc3-analysis-object-view.d.mts.map +1 -0
- package/dist/pages/wc3-analysis-object-view.mjs +196 -0
- package/dist/pages/wc3-analysis-object-view.mjs.map +1 -0
- package/dist/pages/wc3-analysis-saved-view.d.mts +6 -0
- package/dist/pages/wc3-analysis-saved-view.d.mts.map +1 -0
- package/dist/pages/wc3-analysis-saved-view.mjs +540 -0
- package/dist/pages/wc3-analysis-saved-view.mjs.map +1 -0
- package/dist/pages/wc3-analysis-shared.d.mts +346 -0
- package/dist/pages/wc3-analysis-shared.d.mts.map +1 -0
- package/dist/pages/wc3-analysis-shared.mjs +1119 -0
- package/dist/pages/wc3-analysis-shared.mjs.map +1 -0
- package/dist/pages/wc3-analysis-views.d.mts +25 -0
- package/dist/pages/wc3-analysis-views.d.mts.map +1 -0
- package/dist/pages/wc3-analysis-views.mjs +48 -0
- package/dist/pages/wc3-analysis-views.mjs.map +1 -0
- package/dist/pages/wc3-fs-data.d.mts +12 -0
- package/dist/pages/wc3-fs-data.d.mts.map +1 -0
- package/dist/pages/wc3-fs-data.mjs +745 -0
- package/dist/pages/wc3-fs-data.mjs.map +1 -0
- package/dist/pages/wc3-fs-location-field.d.mts +13 -0
- package/dist/pages/wc3-fs-location-field.d.mts.map +1 -0
- package/dist/pages/wc3-fs-location-field.mjs +56 -0
- package/dist/pages/wc3-fs-location-field.mjs.map +1 -0
- package/dist/pages/wc3-fs-path-label.d.mts +12 -0
- package/dist/pages/wc3-fs-path-label.d.mts.map +1 -0
- package/dist/pages/wc3-fs-path-label.mjs +36 -0
- package/dist/pages/wc3-fs-path-label.mjs.map +1 -0
- package/dist/pages/wc3-fs-records.d.mts +17 -0
- package/dist/pages/wc3-fs-records.d.mts.map +1 -0
- package/dist/pages/wc3-fs-records.mjs +107 -0
- package/dist/pages/wc3-fs-records.mjs.map +1 -0
- package/dist/pages/wc3-fs-store.d.mts +43 -0
- package/dist/pages/wc3-fs-store.d.mts.map +1 -0
- package/dist/pages/wc3-fs-store.mjs +81 -0
- package/dist/pages/wc3-fs-store.mjs.map +1 -0
- package/dist/pages/wc3-fs-types.d.mts +19 -0
- package/dist/pages/wc3-fs-types.d.mts.map +1 -0
- package/dist/pages/wc3-fs-types.mjs +66 -0
- package/dist/pages/wc3-fs-types.mjs.map +1 -0
- package/dist/pages/wc3-graph-explorer-flow.d.mts +14 -0
- package/dist/pages/wc3-graph-explorer-flow.d.mts.map +1 -0
- package/dist/pages/wc3-graph-explorer-flow.mjs +275 -0
- package/dist/pages/wc3-graph-explorer-flow.mjs.map +1 -0
- package/dist/pages/wc3-group-detail.d.mts +26 -0
- package/dist/pages/wc3-group-detail.d.mts.map +1 -0
- package/dist/pages/wc3-group-detail.mjs +358 -0
- package/dist/pages/wc3-group-detail.mjs.map +1 -0
- package/dist/pages/wc3-group-wizard.d.mts +28 -0
- package/dist/pages/wc3-group-wizard.d.mts.map +1 -0
- package/dist/pages/wc3-group-wizard.mjs +120 -0
- package/dist/pages/wc3-group-wizard.mjs.map +1 -0
- package/dist/pages/wc3-health-view.d.mts +34 -0
- package/dist/pages/wc3-health-view.d.mts.map +1 -0
- package/dist/pages/wc3-health-view.mjs +413 -0
- package/dist/pages/wc3-health-view.mjs.map +1 -0
- package/dist/pages/wc3-home-view.d.mts +24 -0
- package/dist/pages/wc3-home-view.d.mts.map +1 -0
- package/dist/pages/wc3-home-view.mjs +59 -0
- package/dist/pages/wc3-home-view.mjs.map +1 -0
- package/dist/pages/wc3-interface-detail.d.mts +66 -0
- package/dist/pages/wc3-interface-detail.d.mts.map +1 -0
- package/dist/pages/wc3-interface-detail.mjs +1060 -0
- package/dist/pages/wc3-interface-detail.mjs.map +1 -0
- package/dist/pages/wc3-interface-wizard.d.mts +39 -0
- package/dist/pages/wc3-interface-wizard.d.mts.map +1 -0
- package/dist/pages/wc3-interface-wizard.mjs +226 -0
- package/dist/pages/wc3-interface-wizard.mjs.map +1 -0
- package/dist/pages/wc3-lineage-data-view.d.mts +6 -0
- package/dist/pages/wc3-lineage-data-view.d.mts.map +1 -0
- package/dist/pages/wc3-lineage-data-view.mjs +481 -0
- package/dist/pages/wc3-lineage-data-view.mjs.map +1 -0
- package/dist/pages/wc3-lineage-data.d.mts +191 -0
- package/dist/pages/wc3-lineage-data.d.mts.map +1 -0
- package/dist/pages/wc3-lineage-data.mjs +1061 -0
- package/dist/pages/wc3-lineage-data.mjs.map +1 -0
- package/dist/pages/wc3-lineage-impact-view.d.mts +13 -0
- package/dist/pages/wc3-lineage-impact-view.d.mts.map +1 -0
- package/dist/pages/wc3-lineage-impact-view.mjs +247 -0
- package/dist/pages/wc3-lineage-impact-view.mjs.map +1 -0
- package/dist/pages/wc3-lineage-shared.d.mts +137 -0
- package/dist/pages/wc3-lineage-shared.d.mts.map +1 -0
- package/dist/pages/wc3-lineage-shared.mjs +150 -0
- package/dist/pages/wc3-lineage-shared.mjs.map +1 -0
- package/dist/pages/wc3-lineage-views.d.mts +7 -0
- package/dist/pages/wc3-lineage-views.d.mts.map +1 -0
- package/dist/pages/wc3-lineage-views.mjs +13 -0
- package/dist/pages/wc3-lineage-views.mjs.map +1 -0
- package/dist/pages/wc3-lineage-workflow-view.d.mts +12 -0
- package/dist/pages/wc3-lineage-workflow-view.d.mts.map +1 -0
- package/dist/pages/wc3-lineage-workflow-view.mjs +326 -0
- package/dist/pages/wc3-lineage-workflow-view.mjs.map +1 -0
- package/dist/pages/wc3-object-type-detail.d.mts +18 -0
- package/dist/pages/wc3-object-type-detail.d.mts.map +1 -0
- package/dist/pages/wc3-object-type-detail.mjs +977 -0
- package/dist/pages/wc3-object-type-detail.mjs.map +1 -0
- package/dist/pages/wc3-ontology-data.d.mts +246 -0
- package/dist/pages/wc3-ontology-data.d.mts.map +1 -0
- package/dist/pages/wc3-ontology-data.mjs +8542 -0
- package/dist/pages/wc3-ontology-data.mjs.map +1 -0
- package/dist/pages/wc3-ontology-glyphs.d.mts +14 -0
- package/dist/pages/wc3-ontology-glyphs.d.mts.map +1 -0
- package/dist/pages/wc3-ontology-glyphs.mjs +53 -0
- package/dist/pages/wc3-ontology-glyphs.mjs.map +1 -0
- package/dist/pages/wc3-ontology-scope.d.mts +62 -0
- package/dist/pages/wc3-ontology-scope.d.mts.map +1 -0
- package/dist/pages/wc3-ontology-scope.mjs +109 -0
- package/dist/pages/wc3-ontology-scope.mjs.map +1 -0
- package/dist/pages/wc3-ontology-views.d.mts +34 -0
- package/dist/pages/wc3-ontology-views.d.mts.map +1 -0
- package/dist/pages/wc3-ontology-views.mjs +1253 -0
- package/dist/pages/wc3-ontology-views.mjs.map +1 -0
- package/dist/pages/wc3-permit-policy.d.mts +56 -0
- package/dist/pages/wc3-permit-policy.d.mts.map +1 -0
- package/dist/pages/wc3-permit-policy.mjs +478 -0
- package/dist/pages/wc3-permit-policy.mjs.map +1 -0
- package/dist/pages/wc3-pipeline-detail.d.mts +13 -0
- package/dist/pages/wc3-pipeline-detail.d.mts.map +1 -0
- package/dist/pages/wc3-pipeline-detail.mjs +818 -0
- package/dist/pages/wc3-pipeline-detail.mjs.map +1 -0
- package/dist/pages/wc3-pipeline-list-view.d.mts +5 -0
- package/dist/pages/wc3-pipeline-list-view.d.mts.map +1 -0
- package/dist/pages/wc3-pipeline-list-view.mjs +692 -0
- package/dist/pages/wc3-pipeline-list-view.mjs.map +1 -0
- package/dist/pages/wc3-pipeline-shared.d.mts +301 -0
- package/dist/pages/wc3-pipeline-shared.d.mts.map +1 -0
- package/dist/pages/wc3-pipeline-shared.mjs +703 -0
- package/dist/pages/wc3-pipeline-shared.mjs.map +1 -0
- package/dist/pages/wc3-pipeline-side-views.d.mts +7 -0
- package/dist/pages/wc3-pipeline-side-views.d.mts.map +1 -0
- package/dist/pages/wc3-pipeline-side-views.mjs +998 -0
- package/dist/pages/wc3-pipeline-side-views.mjs.map +1 -0
- package/dist/pages/wc3-pipeline-views.d.mts +15 -0
- package/dist/pages/wc3-pipeline-views.d.mts.map +1 -0
- package/dist/pages/wc3-pipeline-views.mjs +23 -0
- package/dist/pages/wc3-pipeline-views.mjs.map +1 -0
- package/dist/pages/wc3-process-bottlenecks.d.mts +22 -0
- package/dist/pages/wc3-process-bottlenecks.d.mts.map +1 -0
- package/dist/pages/wc3-process-bottlenecks.mjs +352 -0
- package/dist/pages/wc3-process-bottlenecks.mjs.map +1 -0
- package/dist/pages/wc3-process-create.d.mts +24 -0
- package/dist/pages/wc3-process-create.d.mts.map +1 -0
- package/dist/pages/wc3-process-create.mjs +230 -0
- package/dist/pages/wc3-process-create.mjs.map +1 -0
- package/dist/pages/wc3-process-data.d.mts +238 -0
- package/dist/pages/wc3-process-data.d.mts.map +1 -0
- package/dist/pages/wc3-process-data.mjs +2251 -0
- package/dist/pages/wc3-process-data.mjs.map +1 -0
- package/dist/pages/wc3-process-detail.d.mts +21 -0
- package/dist/pages/wc3-process-detail.d.mts.map +1 -0
- package/dist/pages/wc3-process-detail.mjs +21 -0
- package/dist/pages/wc3-process-detail.mjs.map +1 -0
- package/dist/pages/wc3-process-list-view.d.mts +5 -0
- package/dist/pages/wc3-process-list-view.d.mts.map +1 -0
- package/dist/pages/wc3-process-list-view.mjs +602 -0
- package/dist/pages/wc3-process-list-view.mjs.map +1 -0
- package/dist/pages/wc3-process-shared.d.mts +443 -0
- package/dist/pages/wc3-process-shared.d.mts.map +1 -0
- package/dist/pages/wc3-process-shared.mjs +980 -0
- package/dist/pages/wc3-process-shared.mjs.map +1 -0
- package/dist/pages/wc3-process-views.d.mts +19 -0
- package/dist/pages/wc3-process-views.d.mts.map +1 -0
- package/dist/pages/wc3-process-views.mjs +23 -0
- package/dist/pages/wc3-process-views.mjs.map +1 -0
- package/dist/pages/wc3-product-catalogue-view.d.mts +5 -0
- package/dist/pages/wc3-product-catalogue-view.d.mts.map +1 -0
- package/dist/pages/wc3-product-catalogue-view.mjs +587 -0
- package/dist/pages/wc3-product-catalogue-view.mjs.map +1 -0
- package/dist/pages/wc3-product-data.d.mts +206 -0
- package/dist/pages/wc3-product-data.d.mts.map +1 -0
- package/dist/pages/wc3-product-data.mjs +2669 -0
- package/dist/pages/wc3-product-data.mjs.map +1 -0
- package/dist/pages/wc3-product-detail.d.mts +31 -0
- package/dist/pages/wc3-product-detail.d.mts.map +1 -0
- package/dist/pages/wc3-product-detail.mjs +1137 -0
- package/dist/pages/wc3-product-detail.mjs.map +1 -0
- package/dist/pages/wc3-product-install-dialog.d.mts +99 -0
- package/dist/pages/wc3-product-install-dialog.d.mts.map +1 -0
- package/dist/pages/wc3-product-install-dialog.mjs +808 -0
- package/dist/pages/wc3-product-install-dialog.mjs.map +1 -0
- package/dist/pages/wc3-product-shared.d.mts +152 -0
- package/dist/pages/wc3-product-shared.d.mts.map +1 -0
- package/dist/pages/wc3-product-shared.mjs +268 -0
- package/dist/pages/wc3-product-shared.mjs.map +1 -0
- package/dist/pages/wc3-product-views.d.mts +7 -0
- package/dist/pages/wc3-product-views.d.mts.map +1 -0
- package/dist/pages/wc3-product-views.mjs +7 -0
- package/dist/pages/wc3-product-views.mjs.map +1 -0
- package/dist/pages/wc3-shared-property-detail.d.mts +95 -0
- package/dist/pages/wc3-shared-property-detail.d.mts.map +1 -0
- package/dist/pages/wc3-shared-property-detail.mjs +546 -0
- package/dist/pages/wc3-shared-property-detail.mjs.map +1 -0
- package/dist/pages/wc3-shared-property-view.d.mts +10 -0
- package/dist/pages/wc3-shared-property-view.d.mts.map +1 -0
- package/dist/pages/wc3-shared-property-view.mjs +455 -0
- package/dist/pages/wc3-shared-property-view.mjs.map +1 -0
- package/dist/pages/wc3-shared-property-wizard.d.mts +31 -0
- package/dist/pages/wc3-shared-property-wizard.d.mts.map +1 -0
- package/dist/pages/wc3-shared-property-wizard.mjs +181 -0
- package/dist/pages/wc3-shared-property-wizard.mjs.map +1 -0
- package/dist/pages/work-permit-templates.d.mts +30 -0
- package/dist/pages/work-permit-templates.d.mts.map +1 -0
- package/dist/pages/work-permit-templates.mjs +793 -0
- package/dist/pages/work-permit-templates.mjs.map +1 -0
- package/dist/pages/workforce-analytics.d.mts +11 -0
- package/dist/pages/workforce-analytics.d.mts.map +1 -0
- package/dist/pages/workforce-analytics.mjs +561 -0
- package/dist/pages/workforce-analytics.mjs.map +1 -0
- package/dist/pages/workforce-compliance-settings.d.mts +9 -0
- package/dist/pages/workforce-compliance-settings.d.mts.map +1 -0
- package/dist/pages/workforce-compliance-settings.mjs +375 -0
- package/dist/pages/workforce-compliance-settings.mjs.map +1 -0
- package/dist/pages/workforce-compliance.d.mts +81 -0
- package/dist/pages/workforce-compliance.d.mts.map +1 -0
- package/dist/pages/workforce-compliance.mjs +805 -0
- package/dist/pages/workforce-compliance.mjs.map +1 -0
- package/dist/pages/workforce-crews.d.mts +5 -0
- package/dist/pages/workforce-crews.d.mts.map +1 -0
- package/dist/pages/workforce-crews.mjs +1091 -0
- package/dist/pages/workforce-crews.mjs.map +1 -0
- package/dist/pages/workforce-map-view.d.mts +8 -0
- package/dist/pages/workforce-map-view.d.mts.map +1 -0
- package/dist/pages/workforce-map-view.mjs +953 -0
- package/dist/pages/workforce-map-view.mjs.map +1 -0
- package/dist/pages/workforce-obs.d.mts +5 -0
- package/dist/pages/workforce-obs.d.mts.map +1 -0
- package/dist/pages/workforce-obs.mjs +649 -0
- package/dist/pages/workforce-obs.mjs.map +1 -0
- package/dist/pagination.d.mts +32 -0
- package/dist/pagination.d.mts.map +1 -0
- package/dist/pagination.mjs +67 -0
- package/dist/pagination.mjs.map +1 -0
- package/dist/permission-matrix.d.mts +43 -0
- package/dist/permission-matrix.d.mts.map +1 -0
- package/dist/permission-matrix.mjs +146 -0
- package/dist/permission-matrix.mjs.map +1 -0
- package/dist/popover.d.mts +19 -0
- package/dist/popover.d.mts.map +1 -0
- package/dist/popover.mjs +31 -0
- package/dist/popover.mjs.map +1 -0
- package/dist/product-package-detail.d.mts +173 -0
- package/dist/product-package-detail.d.mts.map +1 -0
- package/dist/product-package-detail.mjs +521 -0
- package/dist/product-package-detail.mjs.map +1 -0
- package/dist/progress-comparison.d.mts +93 -0
- package/dist/progress-comparison.d.mts.map +1 -0
- package/dist/progress-comparison.mjs +253 -0
- package/dist/progress-comparison.mjs.map +1 -0
- package/dist/progress-list-item.d.mts +46 -0
- package/dist/progress-list-item.d.mts.map +1 -0
- package/dist/progress-list-item.mjs +79 -0
- package/dist/progress-list-item.mjs.map +1 -0
- package/dist/progress-sheet.d.mts +39 -0
- package/dist/progress-sheet.d.mts.map +1 -0
- package/dist/progress-sheet.mjs +760 -0
- package/dist/progress-sheet.mjs.map +1 -0
- package/dist/progress-stat.d.mts +26 -0
- package/dist/progress-stat.d.mts.map +1 -0
- package/dist/progress-stat.mjs +54 -0
- package/dist/progress-stat.mjs.map +1 -0
- package/dist/progress.d.mts +13 -0
- package/dist/progress.d.mts.map +1 -0
- package/dist/progress.mjs +32 -0
- package/dist/progress.mjs.map +1 -0
- package/dist/prompt-input.d.mts +108 -0
- package/dist/prompt-input.d.mts.map +1 -0
- package/dist/prompt-input.mjs +400 -0
- package/dist/prompt-input.mjs.map +1 -0
- package/dist/property-list.d.mts +37 -0
- package/dist/property-list.d.mts.map +1 -0
- package/dist/property-list.mjs +60 -0
- package/dist/property-list.mjs.map +1 -0
- package/dist/push-panel.d.mts +75 -0
- package/dist/push-panel.d.mts.map +1 -0
- package/dist/push-panel.mjs +182 -0
- package/dist/push-panel.mjs.map +1 -0
- package/dist/radio-group.d.mts +9 -0
- package/dist/radio-group.d.mts.map +1 -0
- package/dist/radio-group.mjs +27 -0
- package/dist/radio-group.mjs.map +1 -0
- package/dist/record-detail-shell.d.mts +46 -0
- package/dist/record-detail-shell.d.mts.map +1 -0
- package/dist/record-detail-shell.mjs +29 -0
- package/dist/record-detail-shell.mjs.map +1 -0
- package/dist/resizable.d.mts +11 -0
- package/dist/resizable.d.mts.map +1 -0
- package/dist/resizable.mjs +23 -0
- package/dist/resizable.mjs.map +1 -0
- package/dist/resize-handle.d.mts +19 -0
- package/dist/resize-handle.d.mts.map +1 -0
- package/dist/resize-handle.mjs +45 -0
- package/dist/resize-handle.mjs.map +1 -0
- package/dist/responder-detail-panel.d.mts +72 -0
- package/dist/responder-detail-panel.d.mts.map +1 -0
- package/dist/responder-detail-panel.mjs +232 -0
- package/dist/responder-detail-panel.mjs.map +1 -0
- package/dist/rule-row.d.mts +63 -0
- package/dist/rule-row.d.mts.map +1 -0
- package/dist/rule-row.mjs +97 -0
- package/dist/rule-row.mjs.map +1 -0
- package/dist/schedule-week-bar.d.mts +24 -0
- package/dist/schedule-week-bar.d.mts.map +1 -0
- package/dist/schedule-week-bar.mjs +99 -0
- package/dist/schedule-week-bar.mjs.map +1 -0
- package/dist/score-gauge.d.mts +24 -0
- package/dist/score-gauge.d.mts.map +1 -0
- package/dist/score-gauge.mjs +73 -0
- package/dist/score-gauge.mjs.map +1 -0
- package/dist/scroll-area.d.mts +27 -0
- package/dist/scroll-area.d.mts.map +1 -0
- package/dist/scroll-area.mjs +35 -0
- package/dist/scroll-area.mjs.map +1 -0
- package/dist/search-filter-bar.d.mts +22 -0
- package/dist/search-filter-bar.d.mts.map +1 -0
- package/dist/search-filter-bar.mjs +56 -0
- package/dist/search-filter-bar.mjs.map +1 -0
- package/dist/section-header.d.mts +22 -0
- package/dist/section-header.d.mts.map +1 -0
- package/dist/section-header.mjs +32 -0
- package/dist/section-header.mjs.map +1 -0
- package/dist/section-panel.d.mts +47 -0
- package/dist/section-panel.d.mts.map +1 -0
- package/dist/section-panel.mjs +78 -0
- package/dist/section-panel.mjs.map +1 -0
- package/dist/section.d.mts +15 -0
- package/dist/section.d.mts.map +1 -0
- package/dist/section.mjs +34 -0
- package/dist/section.mjs.map +1 -0
- package/dist/segmented-control.d.mts +26 -0
- package/dist/segmented-control.d.mts.map +1 -0
- package/dist/segmented-control.mjs +70 -0
- package/dist/segmented-control.mjs.map +1 -0
- package/dist/select.d.mts +87 -0
- package/dist/select.d.mts.map +1 -0
- package/dist/select.mjs +280 -0
- package/dist/select.mjs.map +1 -0
- package/dist/selectable-card.d.mts +39 -0
- package/dist/selectable-card.d.mts.map +1 -0
- package/dist/selectable-card.mjs +102 -0
- package/dist/selectable-card.mjs.map +1 -0
- package/dist/separator.d.mts +8 -0
- package/dist/separator.d.mts.map +1 -0
- package/dist/separator.mjs +18 -0
- package/dist/separator.mjs.map +1 -0
- package/dist/services/chatService.d.mts +11 -0
- package/dist/services/chatService.d.mts.map +1 -0
- package/dist/services/chatService.mjs +44 -0
- package/dist/services/chatService.mjs.map +1 -0
- package/dist/setup-steps-checklist.d.mts +50 -0
- package/dist/setup-steps-checklist.d.mts.map +1 -0
- package/dist/setup-steps-checklist.mjs +183 -0
- package/dist/setup-steps-checklist.mjs.map +1 -0
- package/dist/sheet.d.mts +41 -0
- package/dist/sheet.d.mts.map +1 -0
- package/dist/sheet.mjs +71 -0
- package/dist/sheet.mjs.map +1 -0
- package/dist/side-menu.d.mts +61 -0
- package/dist/side-menu.d.mts.map +1 -0
- package/dist/side-menu.mjs +160 -0
- package/dist/side-menu.mjs.map +1 -0
- package/dist/sidebar.d.mts +36 -0
- package/dist/sidebar.d.mts.map +1 -0
- package/dist/sidebar.mjs +159 -0
- package/dist/sidebar.mjs.map +1 -0
- package/dist/single-house-view.d.mts +13 -0
- package/dist/single-house-view.d.mts.map +1 -0
- package/dist/single-house-view.mjs +506 -0
- package/dist/single-house-view.mjs.map +1 -0
- package/dist/site-image-viewer/batches.mjs +362 -0
- package/dist/site-image-viewer/batches.mjs.map +1 -0
- package/dist/site-image-viewer/blocks-zone-1a.mjs +1815 -0
- package/dist/site-image-viewer/blocks-zone-1a.mjs.map +1 -0
- package/dist/site-image-viewer/blocks-zone-1b.mjs +2623 -0
- package/dist/site-image-viewer/blocks-zone-1b.mjs.map +1 -0
- package/dist/site-image-viewer/legend-items.d.mts +6 -0
- package/dist/site-image-viewer/legend-items.d.mts.map +1 -0
- package/dist/site-image-viewer/legend-items.mjs +104 -0
- package/dist/site-image-viewer/legend-items.mjs.map +1 -0
- package/dist/site-image-viewer/milestone-ramp.d.mts +81 -0
- package/dist/site-image-viewer/milestone-ramp.d.mts.map +1 -0
- package/dist/site-image-viewer/milestone-ramp.mjs +112 -0
- package/dist/site-image-viewer/milestone-ramp.mjs.map +1 -0
- package/dist/site-image-viewer/phases.mjs +60 -0
- package/dist/site-image-viewer/phases.mjs.map +1 -0
- package/dist/site-image-viewer/site-legend.d.mts +20 -0
- package/dist/site-image-viewer/site-legend.d.mts.map +1 -0
- package/dist/site-image-viewer/site-legend.mjs +113 -0
- package/dist/site-image-viewer/site-legend.mjs.map +1 -0
- package/dist/site-image-viewer/types.d.mts +32 -0
- package/dist/site-image-viewer/types.d.mts.map +1 -0
- package/dist/site-image-viewer/types.mjs +1 -0
- package/dist/site-image-viewer/villa-hover-card.d.mts +15 -0
- package/dist/site-image-viewer/villa-hover-card.d.mts.map +1 -0
- package/dist/site-image-viewer/villa-hover-card.mjs +48 -0
- package/dist/site-image-viewer/villa-hover-card.mjs.map +1 -0
- package/dist/site-image-viewer/villas.mjs +34494 -0
- package/dist/site-image-viewer/villas.mjs.map +1 -0
- package/dist/site-image-viewer/zone1b-villas.mjs +36211 -0
- package/dist/site-image-viewer/zone1b-villas.mjs.map +1 -0
- package/dist/site-image-viewer/zones-marketing.mjs +114 -0
- package/dist/site-image-viewer/zones-marketing.mjs.map +1 -0
- package/dist/site-image-viewer/zones.mjs +114 -0
- package/dist/site-image-viewer/zones.mjs.map +1 -0
- package/dist/site-image-viewer-fixtures.d.mts +44 -0
- package/dist/site-image-viewer-fixtures.d.mts.map +1 -0
- package/dist/site-image-viewer-fixtures.mjs +112 -0
- package/dist/site-image-viewer-fixtures.mjs.map +1 -0
- package/dist/site-image-viewer.d.mts +98 -0
- package/dist/site-image-viewer.d.mts.map +1 -0
- package/dist/site-image-viewer.mjs +501 -0
- package/dist/site-image-viewer.mjs.map +1 -0
- package/dist/site-panel.d.mts +123 -0
- package/dist/site-panel.d.mts.map +1 -0
- package/dist/site-panel.mjs +1413 -0
- package/dist/site-panel.mjs.map +1 -0
- package/dist/site-reality-viewer.d.mts +46 -0
- package/dist/site-reality-viewer.d.mts.map +1 -0
- package/dist/site-reality-viewer.mjs +436 -0
- package/dist/site-reality-viewer.mjs.map +1 -0
- package/dist/site-toolbar.d.mts +54 -0
- package/dist/site-toolbar.d.mts.map +1 -0
- package/dist/site-toolbar.mjs +110 -0
- package/dist/site-toolbar.mjs.map +1 -0
- package/dist/skeleton.d.mts +6 -0
- package/dist/skeleton.d.mts.map +1 -0
- package/dist/skeleton.mjs +14 -0
- package/dist/skeleton.mjs.map +1 -0
- package/dist/slider.d.mts +8 -0
- package/dist/slider.d.mts.map +1 -0
- package/dist/slider.mjs +20 -0
- package/dist/slider.mjs.map +1 -0
- package/dist/sonner.d.mts +8 -0
- package/dist/sonner.d.mts.map +1 -0
- package/dist/sonner.mjs +20 -0
- package/dist/sonner.mjs.map +1 -0
- package/dist/spinner.d.mts +12 -0
- package/dist/spinner.d.mts.map +1 -0
- package/dist/spinner.mjs +38 -0
- package/dist/spinner.mjs.map +1 -0
- package/dist/stack.d.mts +18 -0
- package/dist/stack.d.mts.map +1 -0
- package/dist/stack.mjs +61 -0
- package/dist/stack.mjs.map +1 -0
- package/dist/stage-content.d.mts +13 -0
- package/dist/stage-content.d.mts.map +1 -0
- package/dist/stage-content.mjs +664 -0
- package/dist/stage-content.mjs.map +1 -0
- package/dist/status-dot.d.mts +18 -0
- package/dist/status-dot.d.mts.map +1 -0
- package/dist/status-dot.mjs +89 -0
- package/dist/status-dot.mjs.map +1 -0
- package/dist/stepper.d.mts +19 -0
- package/dist/stepper.d.mts.map +1 -0
- package/dist/stepper.mjs +113 -0
- package/dist/stepper.mjs.map +1 -0
- package/dist/styles.css +1 -0
- package/dist/styles.tw4.css +1 -0
- package/dist/switch.d.mts +12 -0
- package/dist/switch.d.mts.map +1 -0
- package/dist/switch.mjs +17 -0
- package/dist/switch.mjs.map +1 -0
- package/dist/tab-list.d.mts +33 -0
- package/dist/tab-list.d.mts.map +1 -0
- package/dist/tab-list.mjs +90 -0
- package/dist/tab-list.mjs.map +1 -0
- package/dist/table.d.mts +14 -0
- package/dist/table.d.mts.map +1 -0
- package/dist/table.mjs +60 -0
- package/dist/table.mjs.map +1 -0
- package/dist/tabs.d.mts +42 -0
- package/dist/tabs.d.mts.map +1 -0
- package/dist/tabs.mjs +258 -0
- package/dist/tabs.mjs.map +1 -0
- package/dist/task-monitor.d.mts +70 -0
- package/dist/task-monitor.d.mts.map +1 -0
- package/dist/task-monitor.mjs +319 -0
- package/dist/task-monitor.mjs.map +1 -0
- package/dist/text.d.mts +18 -0
- package/dist/text.d.mts.map +1 -0
- package/dist/text.mjs +60 -0
- package/dist/text.mjs.map +1 -0
- package/dist/textarea.d.mts +7 -0
- package/dist/textarea.d.mts.map +1 -0
- package/dist/textarea.mjs +15 -0
- package/dist/textarea.mjs.map +1 -0
- package/dist/thinking-pill.d.mts +15 -0
- package/dist/thinking-pill.d.mts.map +1 -0
- package/dist/thinking-pill.mjs +28 -0
- package/dist/thinking-pill.mjs.map +1 -0
- package/dist/thumbnail.d.mts +20 -0
- package/dist/thumbnail.d.mts.map +1 -0
- package/dist/thumbnail.mjs +81 -0
- package/dist/thumbnail.mjs.map +1 -0
- package/dist/time-input.d.mts +15 -0
- package/dist/time-input.d.mts.map +1 -0
- package/dist/time-input.mjs +21 -0
- package/dist/time-input.mjs.map +1 -0
- package/dist/time-scrubber.d.mts +93 -0
- package/dist/time-scrubber.d.mts.map +1 -0
- package/dist/time-scrubber.mjs +420 -0
- package/dist/time-scrubber.mjs.map +1 -0
- package/dist/timeline-range-selector.d.mts +30 -0
- package/dist/timeline-range-selector.d.mts.map +1 -0
- package/dist/timeline-range-selector.mjs +232 -0
- package/dist/timeline-range-selector.mjs.map +1 -0
- package/dist/timestamp-picker.d.mts +32 -0
- package/dist/timestamp-picker.d.mts.map +1 -0
- package/dist/timestamp-picker.mjs +143 -0
- package/dist/timestamp-picker.mjs.map +1 -0
- package/dist/timestamp.d.mts +15 -0
- package/dist/timestamp.d.mts.map +1 -0
- package/dist/timestamp.mjs +61 -0
- package/dist/timestamp.mjs.map +1 -0
- package/dist/toast.d.mts +18 -0
- package/dist/toast.d.mts.map +1 -0
- package/dist/toast.mjs +59 -0
- package/dist/toast.mjs.map +1 -0
- package/dist/toaster.d.mts +5 -0
- package/dist/toaster.d.mts.map +1 -0
- package/dist/toaster.mjs +23 -0
- package/dist/toaster.mjs.map +1 -0
- package/dist/toggle-group.d.mts +16 -0
- package/dist/toggle-group.d.mts.map +1 -0
- package/dist/toggle-group.mjs +41 -0
- package/dist/toggle-group.mjs.map +1 -0
- package/dist/toggle.d.mts +16 -0
- package/dist/toggle.d.mts.map +1 -0
- package/dist/toggle.mjs +38 -0
- package/dist/toggle.mjs.map +1 -0
- package/dist/tokenizer.d.mts +23 -0
- package/dist/tokenizer.d.mts.map +1 -0
- package/dist/tokenizer.mjs +87 -0
- package/dist/tokenizer.mjs.map +1 -0
- package/dist/tones.d.mts +59 -0
- package/dist/tones.d.mts.map +1 -0
- package/dist/tones.mjs +177 -0
- package/dist/tones.mjs.map +1 -0
- package/dist/tool-call.d.mts +29 -0
- package/dist/tool-call.d.mts.map +1 -0
- package/dist/tool-call.mjs +89 -0
- package/dist/tool-call.mjs.map +1 -0
- package/dist/toolbar-color-picker.d.mts +50 -0
- package/dist/toolbar-color-picker.d.mts.map +1 -0
- package/dist/toolbar-color-picker.mjs +238 -0
- package/dist/toolbar-color-picker.mjs.map +1 -0
- package/dist/toolbar-pager.d.mts +17 -0
- package/dist/toolbar-pager.d.mts.map +1 -0
- package/dist/toolbar-pager.mjs +40 -0
- package/dist/toolbar-pager.mjs.map +1 -0
- package/dist/toolbar-stats.d.mts +34 -0
- package/dist/toolbar-stats.d.mts.map +1 -0
- package/dist/toolbar-stats.mjs +53 -0
- package/dist/toolbar-stats.mjs.map +1 -0
- package/dist/toolbar.d.mts +98 -0
- package/dist/toolbar.d.mts.map +1 -0
- package/dist/toolbar.mjs +86 -0
- package/dist/toolbar.mjs.map +1 -0
- package/dist/tooltip.d.mts +30 -0
- package/dist/tooltip.d.mts.map +1 -0
- package/dist/tooltip.mjs +83 -0
- package/dist/tooltip.mjs.map +1 -0
- package/dist/tree-list.d.mts +38 -0
- package/dist/tree-list.d.mts.map +1 -0
- package/dist/tree-list.mjs +95 -0
- package/dist/tree-list.mjs.map +1 -0
- package/dist/tree-row.d.mts +84 -0
- package/dist/tree-row.d.mts.map +1 -0
- package/dist/tree-row.mjs +150 -0
- package/dist/tree-row.mjs.map +1 -0
- package/dist/trend-chart.d.mts +28 -0
- package/dist/trend-chart.d.mts.map +1 -0
- package/dist/trend-chart.mjs +33 -0
- package/dist/trend-chart.mjs.map +1 -0
- package/dist/turn-timer.d.mts +23 -0
- package/dist/turn-timer.d.mts.map +1 -0
- package/dist/turn-timer.mjs +51 -0
- package/dist/turn-timer.mjs.map +1 -0
- package/dist/typeahead-item.d.mts +34 -0
- package/dist/typeahead-item.d.mts.map +1 -0
- package/dist/typeahead-item.mjs +74 -0
- package/dist/typeahead-item.mjs.map +1 -0
- package/dist/types/chat.d.mts +66 -0
- package/dist/types/chat.d.mts.map +1 -0
- package/dist/types/chat.mjs +1 -0
- package/dist/types.d.mts +44 -0
- package/dist/types.d.mts.map +1 -0
- package/dist/types.mjs +49 -0
- package/dist/types.mjs.map +1 -0
- package/dist/typography.d.mts +17 -0
- package/dist/typography.d.mts.map +1 -0
- package/dist/typography.mjs +75 -0
- package/dist/typography.mjs.map +1 -0
- package/dist/use-debounced-value.d.mts +11 -0
- package/dist/use-debounced-value.d.mts.map +1 -0
- package/dist/use-debounced-value.mjs +25 -0
- package/dist/use-debounced-value.mjs.map +1 -0
- package/dist/use-document-dir.d.mts +15 -0
- package/dist/use-document-dir.d.mts.map +1 -0
- package/dist/use-document-dir.mjs +33 -0
- package/dist/use-document-dir.mjs.map +1 -0
- package/dist/use-persistent-state.d.mts +9 -0
- package/dist/use-persistent-state.d.mts.map +1 -0
- package/dist/use-persistent-state.mjs +29 -0
- package/dist/use-persistent-state.mjs.map +1 -0
- package/dist/use-toast.d.mts +47 -0
- package/dist/use-toast.d.mts.map +1 -0
- package/dist/use-toast.mjs +119 -0
- package/dist/use-toast.mjs.map +1 -0
- package/dist/vertical-zoom-tools.d.mts +27 -0
- package/dist/vertical-zoom-tools.d.mts.map +1 -0
- package/dist/vertical-zoom-tools.mjs +66 -0
- package/dist/vertical-zoom-tools.mjs.map +1 -0
- package/dist/view-tab-bar.d.mts +75 -0
- package/dist/view-tab-bar.d.mts.map +1 -0
- package/dist/view-tab-bar.mjs +80 -0
- package/dist/view-tab-bar.mjs.map +1 -0
- package/dist/viewer-toolbar.d.mts +41 -0
- package/dist/viewer-toolbar.d.mts.map +1 -0
- package/dist/viewer-toolbar.mjs +271 -0
- package/dist/viewer-toolbar.mjs.map +1 -0
- package/dist/violation-list.d.mts +26 -0
- package/dist/violation-list.d.mts.map +1 -0
- package/dist/violation-list.mjs +53 -0
- package/dist/violation-list.mjs.map +1 -0
- package/dist/walkthrough-modal.d.mts +12 -0
- package/dist/walkthrough-modal.d.mts.map +1 -0
- package/dist/walkthrough-modal.mjs +28 -0
- package/dist/walkthrough-modal.mjs.map +1 -0
- package/dist/walkthrough-tile.d.mts +17 -0
- package/dist/walkthrough-tile.d.mts.map +1 -0
- package/dist/walkthrough-tile.mjs +75 -0
- package/dist/walkthrough-tile.mjs.map +1 -0
- package/dist/week-selector.d.mts +45 -0
- package/dist/week-selector.d.mts.map +1 -0
- package/dist/week-selector.mjs +101 -0
- package/dist/week-selector.mjs.map +1 -0
- package/dist/widget-card.d.mts +18 -0
- package/dist/widget-card.d.mts.map +1 -0
- package/dist/widget-card.mjs +46 -0
- package/dist/widget-card.mjs.map +1 -0
- package/dist/wizard-dialog.d.mts +68 -0
- package/dist/wizard-dialog.d.mts.map +1 -0
- package/dist/wizard-dialog.mjs +108 -0
- package/dist/wizard-dialog.mjs.map +1 -0
- package/dist/work-item-card.d.mts +38 -0
- package/dist/work-item-card.d.mts.map +1 -0
- package/dist/work-item-card.mjs +231 -0
- package/dist/work-item-card.mjs.map +1 -0
- package/dist/worker-profile.d.mts +244 -0
- package/dist/worker-profile.d.mts.map +1 -0
- package/dist/worker-profile.mjs +621 -0
- package/dist/worker-profile.mjs.map +1 -0
- package/dist/zoom-tools.d.mts +29 -0
- package/dist/zoom-tools.d.mts.map +1 -0
- package/dist/zoom-tools.mjs +94 -0
- package/dist/zoom-tools.mjs.map +1 -0
- package/package.json +1792 -0
- package/skills/core-ui-charts/SKILL.md +243 -0
- package/skills/core-ui-chat/SKILL.md +260 -0
- package/skills/core-ui-components/SKILL.md +299 -0
- package/skills/core-ui-composition/SKILL.md +186 -0
- package/skills/core-ui-data-table/SKILL.md +243 -0
- package/skills/core-ui-forms/SKILL.md +289 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"building-viewer.mjs","names":[],"sources":["../src/building-viewer.tsx"],"sourcesContent":["import {cn} from \"@corensystem/coren-utils\";\nimport {\n\tBox,\n\tHand,\n\tHome,\n\tLayers,\n\tLayoutGrid,\n\tMinus,\n\tPlane,\n\tPlus,\n\tRotate3d,\n\tSatellite,\n\tScan,\n\tSlidersHorizontal,\n\tTag,\n\tX,\n} from \"lucide-react\";\n/**\n * BuildingViewer — the CONTROLLED map/canvas region of CaptureUiEnhanced.\n *\n * Extracted verbatim (JSX + logic) from `pages/capture-ui-enhanced.tsx` (map wrapper 3026–3274 minus the\n * top-centre SiteToolbar, plus the Layers overlay 3646–3767 and the `RealityMeshCanvas` child 488–745).\n * It owns NO shared/business state — every value it renders arrives as a prop and every change it wants is\n * requested through an `on*` callback (the host runs the navigation reducer). Its only local state is the\n * Layers-overlay open flag and the canvas child's own DOM/interaction state.\n *\n * ============================ INTERACTIONS THIS WIDGET OWNS ============================\n * 3D reality canvas (RealityMeshCanvas — internal, canvas-only child):\n * • Footprint CLICK → `onSelectVilla(plot)` (host resolves villaByPlot, hops zone, openVilla)\n * • Footprint HOVER → local `hoverCode` → hover chip (code · zone · batch · %) [local only]\n * • 3D-tools toolbar: Zoom in / Zoom out / Reset view / Satellite (top-down) → imperative viewer calls\n * • 3D-tools Pan / Orbit → local `navMode` + `viewer.setInteractionMode(...)` [local only]\n * • Camera reactions: `selectedPlot` change → fitVilla; entering Reality w/o selection → resetView;\n * a villa pre-selected in Plan is carried in via `selectedPlot`\n * • Lazy `import(\"./footprint-viewer\")` → `createFootprintViewer`; the created API is surfaced through\n * `onViewerReady(api)` (host stores it in realityViewerRef; ST reads isZoomedIn there, not here)\n * • Layer syncing: mesh/model visibility, model opacity, labels, colour mode all pushed to the viewer\n * from the corresponding props via effects\n * 2D SiteImageViewer (plan / satellite branch):\n * • Polygon CLICK → leaf: `onSelectVilla(id)` · parent (isParent): `onDrillDown(id)`\n * • Internal SPA/Construction legend toggle → `onMapModeChange(m)`\n * Layers overlay (belongs to the viewer, not the reports sheet):\n * • Layers button → toggle local `layersOpen`; overlay X → close it [local only]\n * • 3D body switches/slider → `onMesh3dOnChange` / `onModel3dOnChange` / `onModel3dOpacityChange`\n * / `onProgressColoursChange` / `onShowLabelsChange`\n * • 2D body switches → `onShowPolygonsChange` / `onShowLabelsChange` (+ read-only Satellite/Drone rows)\n *\n * ============================= ANIMATIONS THIS WIDGET OWNS =============================\n * • Map wrapper parallax: `translateY(-reportScrollY)` while `chromeHidden` (reportsOpen) ← reportScrollY\n * • 3D layer wrapper: `transition-all duration-500 ease-in-out` + `scale-[0.95] rounded-[25.26px]\n * overflow-hidden` (mapScaledOut) + `blur-sm` (mapBlurred), `hidden` when `mode!==\"3d\"`\n * • Plan-image backdrop `<img>`: per-frame opacity/blur/scale driven by the camera (`onBackdrop`, willChange)\n * • Static radial vignette\n * • Centre spinner while `showSpinner` (mapPhase===\"out\" || mapLoading)\n * • Jump toast enter/leave: `animate-in fade-in slide-in-from-top-4` / `animate-out fade-out\n * slide-out-to-top-4 fill-mode-forwards`, `duration-300 ease-out` (host owns the timers → jumpToastLeaving)\n * • Chrome fade: `chromeFade` (opacity 500 + pointer-events-none while reportsOpen) on toast + Layers control\n * • Layers control follow: `transition-[left] duration-300 ease-in-out` driven by `layersOffsetLeft`\n */\nimport {useEffect, useRef, useState} from \"react\";\n\nimport {Button} from \"./button\";\nimport type {FootprintViewer} from \"./footprint-viewer\";\nimport {type MapMode, SiteImageViewer, styleForVilla, type Villa as SiteVilla} from \"./site-image-viewer\";\nimport {Slider} from \"./slider\";\nimport {Spinner} from \"./spinner\";\nimport {Switch} from \"./switch\";\nimport {Toolbar, ToolbarButton, ToolbarSeparator} from \"./toolbar\";\nimport {HoverTooltip, TooltipProvider} from \"./tooltip\";\n\nexport type {MapMode};\n\n/** Structural mirror of the host's (non-exported) `SatelliteBasemap`. */\nexport type BuildingViewerSatelliteBasemap = {\n\tbackgroundUrl: string;\n\tvillas: SiteVilla[];\n\timageWidth: number;\n\timageHeight: number;\n};\n\ntype ViewId = \"villa\" | \"batch\";\ntype ViewMode = \"plan\" | \"satellite\" | \"3d\";\ntype LevelId = \"block\" | \"batch\" | \"zone\" | \"phase\";\n\nexport type {ViewId, ViewMode, LevelId};\n\n/**\n * The 3D view — the headless projected-footprints viewer (`createFootprintViewer`): the DroneDeploy\n * reality-capture mesh (Cesium 3D Tiles) with every villa's ground footprint painted DOWN onto the mesh\n * surface, coloured by construction progress (no IFC fragment). Mounts the WebGL canvas into a container and\n * disposes on unmount. Assets are served from the app's public dir (`/footprints.json`, `/house-progress.json`,\n * `/house-progress-IMA.json`, `/worker.mjs`, `/reality-mesh/…`). Villa code (`${model}-${plot}`) is the\n * identity; hover surfaces its zone + batch via `getVillaRecord`. Canvas-only: three/@thatopen are reached\n * solely through the lazy `import(\"./footprint-viewer\")`; the created API is opaque and surfaced via `onReady`.\n */\nfunction RealityMeshCanvas({\n\tactive,\n\tmeshOn,\n\tmeshOpacity,\n\tmodelOn,\n\tmodelOpacity,\n\tprogressColours,\n\tmapMode,\n\tshowLabels,\n\tselectedPlot,\n\tvisiblePlots,\n\tonSelectVilla,\n\tonReady,\n}: {\n\t/** True while the Reality view is the visible mode — used to reset the camera to the open pose on entry. */\n\tactive: boolean;\n\tmeshOn: boolean;\n\tmeshOpacity: number;\n\tmodelOn: boolean;\n\tmodelOpacity: number;\n\tprogressColours: boolean;\n\t/** Legend colour mode — SPA milestone ramp (\"progress\") vs variance (\"variance\"). */\n\tmapMode: MapMode;\n\tshowLabels: boolean;\n\t/** Plot number of the villa selected in the left rail — jumps the 3D camera to it. */\n\tselectedPlot?: string;\n\t/** Search/filter whitelist (plot numbers): only these footprints paint; `null`/undefined = show all. */\n\tvisiblePlots?: string[] | null;\n\t/** Fired with the plot number when a villa is clicked in the 3D scene (opens its details). */\n\tonSelectVilla?: (plot: string) => void;\n\t/** Receives the live viewer so the page can read its zoom/selection when switching modes. */\n\tonReady?: (api: FootprintViewer) => void;\n}) {\n\tconst ref = useRef<HTMLDivElement>(null);\n\tconst bgRef = useRef<HTMLImageElement>(null); // plan-image backdrop; styled per-frame from the camera\n\tconst viewerRef = useRef<FootprintViewer | null>(null);\n\tconst plotToCode = useRef<Map<string, string>>(new Map());\n\t// Always call the latest handler from the viewer's (create-once) onSelect callback.\n\tconst onSelectRef = useRef(onSelectVilla);\n\tonSelectRef.current = onSelectVilla;\n\tconst onReadyRef = useRef(onReady);\n\tonReadyRef.current = onReady;\n\t// Latest selected plot, read inside the create-once viewer callback so a villa selected in Plan (before the\n\t// viewer even exists) carries into Reality the first time it's opened.\n\tconst selectedPlotRef = useRef(selectedPlot);\n\tselectedPlotRef.current = selectedPlot;\n\t// Latest filter whitelist, read inside the create-once viewer callback so a filter that's already active when\n\t// Reality first mounts is applied on load (not just on later changes).\n\tconst visiblePlotsRef = useRef(visiblePlots);\n\tvisiblePlotsRef.current = visiblePlots;\n\t// Resolve plot numbers to the viewer's `${model}-${plot}` codes (dropping any that aren't in the scene).\n\tconst plotsToCodes = (plots: string[]) =>\n\t\tplots.map((p) => plotToCode.current.get(p)).filter((c): c is string => Boolean(c));\n\tconst [error, setError] = useState(false);\n\t// Villa code under the cursor (for the hover chip that surfaces zone + batch).\n\tconst [hoverCode, setHoverCode] = useState<string | null>(null);\n\t// Left-drag interaction mode for the 3D tools (orbit vs pan).\n\n\t// Recolour every footprint for the active legend mode (SPA vs variance) using the same resolver the 2D map\n\t// and legend use, so the 3D colours stay in lockstep with them. Reads each villa's actual/planned straight\n\t// off the viewer's merged progress records (both zones), so no extra fetch is needed. Only takes effect\n\t// while progress colours are on (otherwise the footprints keep the viewer's default milestone colours).\n\tconst applyColours = () => {\n\t\tconst v = viewerRef.current;\n\t\tif (!v || !progressColours) return;\n\t\tconst map: Record<string, string> = {};\n\t\tfor (const code of v.getVillaCodes()) {\n\t\t\tconst r = v.getVillaRecord(code);\n\t\t\tif (!r) continue;\n\t\t\tmap[code] = styleForVilla(\n\t\t\t\t{linkedLbsItemId: 1, approvedProgressPercent: r.actual ?? null, plannedProgressPercent: r.planned ?? null},\n\t\t\t\tmapMode,\n\t\t\t).fill;\n\t\t}\n\t\tv.setVillaColours(map);\n\t};\n\n\tuseEffect(() => {\n\t\tconst container = ref.current;\n\t\tif (!container) return;\n\t\tlet disposed = false;\n\t\t// Dynamically import the footprint viewer so its @thatopen/three deps only load when 3D actually mounts.\n\t\timport(\"./footprint-viewer\")\n\t\t\t.then(({createFootprintViewer}) =>\n\t\t\t\tcreateFootprintViewer(container, {\n\t\t\t\t\tmeshOpacity,\n\t\t\t\t\tprojectionStrength: modelOpacity,\n\t\t\t\t\tcolorMode: progressColours ? \"progress\" : \"off\",\n\t\t\t\t\t// Transparent canvas so the plan-image backdrop (rendered as a DOM <img> below) shows behind the mesh.\n\t\t\t\t\ttransparent: true,\n\t\t\t\t\t// Clicking a footprint in the 3D scene → open its details (keyed by plot number).\n\t\t\t\t\tonSelect: (code) => {\n\t\t\t\t\t\tif (code) onSelectRef.current?.(code.split(\"-\").pop() ?? code);\n\t\t\t\t\t},\n\t\t\t\t\t// Hovering a footprint surfaces its villa code + zone + batch (via the chip below).\n\t\t\t\t\tonHover: (code) => setHoverCode(code),\n\t\t\t\t\t// Drive the plan-image backdrop from the camera: fade + blur as you zoom in, scale with the model.\n\t\t\t\t\tonBackdrop: ({opacity, blurPx, scale}) => {\n\t\t\t\t\t\tconst el = bgRef.current;\n\t\t\t\t\t\tif (!el) return;\n\t\t\t\t\t\tel.style.opacity = String(opacity);\n\t\t\t\t\t\tel.style.filter = `blur(${blurPx}px)`;\n\t\t\t\t\t\tel.style.transform = `scale(${scale})`;\n\t\t\t\t\t},\n\t\t\t\t}),\n\t\t\t)\n\t\t\t.then((v) => {\n\t\t\t\tif (disposed) {\n\t\t\t\t\tv.dispose();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tviewerRef.current = v;\n\t\t\t\tonReadyRef.current?.(v); // let the page read zoom/selection when switching modes\n\t\t\t\t// Dev aid for tuning the open camera pose: orbit to the view you want, then run\n\t\t\t\t// `window.__realityViewer.getCameraPose()` in the console and share the numbers to bake them in.\n\t\t\t\t(window as unknown as {__realityViewer?: unknown}).__realityViewer = v;\n\t\t\t\tv.setMeshVisible(meshOn);\n\t\t\t\tv.setModelVisible(modelOn);\n\t\t\t\t// Index villa plot numbers → footprint codes so a left-rail click can jump to the exact villa.\n\t\t\t\tfor (const code of v.getVillaCodes()) plotToCode.current.set(code.split(\"-\").pop() ?? code, code);\n\t\t\t\tapplyColours();\n\t\t\t\t// Carry a villa selected in Plan into Reality on first open (the viewer didn't exist when it was picked).\n\t\t\t\tconst preCode = selectedPlotRef.current ? (plotToCode.current.get(selectedPlotRef.current) ?? null) : null;\n\t\t\t\tif (preCode) {\n\t\t\t\t\tv.selectVilla(preCode);\n\t\t\t\t\tvoid v.fitVilla(preCode);\n\t\t\t\t}\n\t\t\t\t// Apply any search/filter that's already active when Reality first mounts.\n\t\t\t\tconst preVisible = visiblePlotsRef.current;\n\t\t\t\tif (preVisible) v.setVisibleVillas(plotsToCodes(preVisible));\n\t\t\t})\n\t\t\t.catch((err) => {\n\t\t\t\tconsole.error(\"Footprint viewer failed to start:\", err);\n\t\t\t\tsetError(true);\n\t\t\t});\n\t\treturn () => {\n\t\t\tdisposed = true;\n\t\t\tviewerRef.current?.dispose();\n\t\t\tviewerRef.current = null;\n\t\t};\n\t\t// Created once; live changes are pushed through the effects below.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, []);\n\t// Push Layers-panel changes to the viewer.\n\tuseEffect(() => void viewerRef.current?.setMeshVisible(meshOn), [meshOn]);\n\tuseEffect(() => void viewerRef.current?.setMeshOpacity(meshOpacity), [meshOpacity]);\n\tuseEffect(() => void viewerRef.current?.setModelVisible(modelOn), [modelOn]);\n\tuseEffect(() => void viewerRef.current?.setModelOpacity(modelOpacity), [modelOpacity]);\n\tuseEffect(() => void viewerRef.current?.setLabelsVisible(showLabels), [showLabels]);\n\t// Push the search/filter whitelist to the viewer so 3D shows the same subset as the 2D map + rail. Keyed on\n\t// the joined plot list so a new-but-equal array doesn't churn the texture redraw; `null` clears the filter.\n\tconst visibleKey = visiblePlots ? visiblePlots.join(\"|\") : null;\n\tuseEffect(() => {\n\t\tconst v = viewerRef.current;\n\t\tif (!v) return;\n\t\tv.setVisibleVillas(visiblePlots ? plotsToCodes(visiblePlots) : null);\n\t\t// visiblePlots is captured via visibleKey (its stable string form) to avoid array-identity re-runs.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [visibleKey]);\n\tuseEffect(() => {\n\t\tviewerRef.current?.setColourMode(progressColours ? \"progress\" : \"material\");\n\t\tapplyColours();\n\t\t// applyColours reads mapMode/progressColours refs; re-run when either changes.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [progressColours, mapMode]);\n\t// Keep the viewer's selection in sync with the rail (resolve the plot number to the 3D code) and frame it.\n\t// Clearing the selection (closing the villa) deselects — the whitelist clears and the camera eases back.\n\tuseEffect(() => {\n\t\tconst v = viewerRef.current;\n\t\tif (!v) return;\n\t\tconst code = selectedPlot ? (plotToCode.current.get(selectedPlot) ?? null) : null;\n\t\t// Only push the selection in when it differs from the viewer's own. A 3D scene click already selected the\n\t\t// villa internally (and reported it up via onSelect), so this avoids a select → openVilla → effect → select\n\t\t// loop while still framing the villa.\n\t\tif (v.getSelectedVilla() !== code) void v.selectVilla(code);\n\t\tif (code) void v.fitVilla(code);\n\t\t// Re-run on `active` too: switching Plan → Reality must re-apply + frame the current selection.\n\t}, [selectedPlot, active]);\n\t// The viewer stays mounted when you leave Reality (so the mesh never re-streams), so re-opening it would\n\t// otherwise keep wherever the camera was last orbited. Reset to the canonical open pose whenever Reality\n\t// becomes the active view — unless a specific villa is framed (then honour that selection instead).\n\tuseEffect(() => {\n\t\t// CAMERA-TUNER: while the dev sliders are on they own the pose, so skip the auto-reset on entering Reality.\n\t\tif (active && !selectedPlot) void viewerRef.current?.resetView();\n\t\t// Only re-run on entering Reality; selectedPlot is intentionally not a dep.\n\t\t// eslint-disable-next-line react-hooks/exhaustive-deps\n\t}, [active]);\n\t// Hovered villa's record → the code · zone · batch · progress chip (read straight off the viewer).\n\tconst hoverRec = hoverCode && viewerRef.current ? viewerRef.current.getVillaRecord(hoverCode) : null;\n\treturn (\n\t\t<div className=\"wwc:absolute wwc:inset-0 wwc:size-full\">\n\t\t\t{/* Plan-image backdrop behind the (transparent) 3D canvas — same image + object-cover fit as the Plan\n view. Its opacity/blur/scale are driven per-frame from the camera (see onBackdrop): blurred at rest,\n fading + blurring more as you zoom in (gone by ~30%), scaling with the model, and fading on tilt/rotate. */}\n\t\t\t<img\n\t\t\t\tref={bgRef}\n\t\t\t\tsrc=\"/phase-blueprint.webp\"\n\t\t\t\talt=\"\"\n\t\t\t\tclassName=\"wwc:pointer-events-none wwc:absolute wwc:inset-0 wwc:size-full wwc:object-cover\"\n\t\t\t\tstyle={{\n\t\t\t\t\topacity: 1,\n\t\t\t\t\tfilter: \"blur(4px)\",\n\t\t\t\t\ttransform: \"scale(1)\",\n\t\t\t\t\ttransformOrigin: \"center\",\n\t\t\t\t\twillChange: \"opacity, filter, transform\",\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<div ref={ref} className=\"wwc:absolute wwc:inset-0 wwc:size-full\" />\n\t\t\t{/* Soft vignette around the outer edge of the view. */}\n\t\t\t<div\n\t\t\t\tclassName=\"wwc:pointer-events-none wwc:absolute wwc:inset-0\"\n\t\t\t\tstyle={{background: \"radial-gradient(ellipse at center, transparent 55%, rgba(0,0,0,0.55) 100%)\"}}\n\t\t\t/>\n\t\t\t{/* NOTE: the 3D-tools toolbar is rendered by BuildingViewer OUTSIDE this canvas (which lives in the\n scaled/blurred map wrapper), so the map transition never pulls it. See the sibling in BuildingViewer. */}\n\t\t\t{hoverRec ? (\n\t\t\t\t<div className=\"wwc:pointer-events-none wwc:absolute wwc:left-1/2 wwc:top-3 wwc:z-10 wwc:flex wwc:-translate-x-1/2 wwc:items-center wwc:gap-2 wwc:rounded-md wwc:bg-black/80 wwc:px-2.5 wwc:py-1 wwc:text-xs wwc:font-medium wwc:text-white wwc:shadow-lg wwc:backdrop-blur-sm\">\n\t\t\t\t\t<span className=\"wwc:font-semibold\">{hoverRec.code}</span>\n\t\t\t\t\t<span className=\"wwc:text-white/60\">Zone {hoverRec.zone ?? \"—\"}</span>\n\t\t\t\t\t<span className=\"wwc:text-white/60\">Batch {hoverRec.batch ?? \"—\"}</span>\n\t\t\t\t\t{hoverRec.actual != null ? <span className=\"wwc:text-white/60\">{hoverRec.actual}%</span> : null}\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t\t{error ? (\n\t\t\t\t<div className=\"wwc:absolute wwc:inset-0 wwc:flex wwc:items-center wwc:justify-center wwc:bg-zinc-900 wwc:text-sm wwc:text-white/60\">\n\t\t\t\t\t3D model unavailable\n\t\t\t\t</div>\n\t\t\t) : null}\n\t\t</div>\n\t);\n}\n\n/** The plan-view map data the host resolves from zoneVilla / levelView. */\nexport type BuildingViewerMapData = {\n\tvillas: SiteVilla[];\n\t/**\n\t * Optional block-hull polygons for this location (same pixel space as `villas`). When set on the villa\n\t * (leaf) view, the plan shows block-name labels while fully zoomed out and swaps to villa chips once zoomed\n\t * in past 10% — matching the 3D reality view's Block → Villa label hand-off. Omit on parent grouping levels.\n\t */\n\tblocks?: SiteVilla[];\n\tbackgroundUrl: string;\n\timageWidth: number;\n\timageHeight: number;\n\t/** Stable React key the host computes: isParent ? level : `villa-${currentLocation}`. */\n\tcontentKey: string;\n};\n\nexport type BuildingViewerProps = {\n\t// ---- view axes (read-only) ----\n\tmode: ViewMode;\n\tview: ViewId;\n\tlevel: LevelId;\n\tcurrentLocation: string;\n\t/** view === \"batch\" && level !== \"batch\" — parent view draws grouping polygons + drills down. */\n\tisParent: boolean;\n\n\t// ---- data the map draws ----\n\tmap: BuildingViewerMapData;\n\tsatelliteBasemap: BuildingViewerSatelliteBasemap | null;\n\n\t// ---- selection (read-only; host owns) ----\n\t/** SiteImageViewer highlight: detailOpen && !isParent ? selectedId : undefined. */\n\tselectedVillaId?: string;\n\t/** 3D camera target: detailOpen && selectedId ? selectedNumber : undefined. */\n\tselectedPlot?: string;\n\t/** Search/filter whitelist (plot numbers): the 3D view paints only these footprints; `null` = show all. */\n\tvisiblePlots?: string[] | null;\n\n\t// ---- colour mode ----\n\tmapMode: MapMode;\n\n\t// ---- 3D layer state ----\n\tmesh3dOn: boolean;\n\tmesh3dOpacity: number; // constant 1 today\n\tmodel3dOn: boolean;\n\tmodel3dOpacity: number; // 0..1\n\tprogressColours: boolean;\n\tshowLabels: boolean;\n\tshowPolygons: boolean;\n\t/** threeDLoaded || mode === \"3d\" — keep the mesh mounted across Plan↔Reality. */\n\tkeep3dMounted: boolean;\n\n\t// ---- transition / chrome (read-only, host-owned machine) ----\n\tmapScaledOut: boolean;\n\tmapBlurred: boolean;\n\tshowSpinner: boolean; // mapPhase === \"out\" || mapLoading\n\t/** reportsOpen — hide the viewer's own hover card/legend/zoom tools + fade chrome. */\n\tchromeHidden: boolean;\n\t/** transition-opacity duration-500 + opacity-0 pointer-events-none when reportsOpen. */\n\tchromeFade: string;\n\t/** Map wrapper translateY(-reportScrollY) parallax during report scroll. */\n\treportScrollY: number;\n\n\t// ---- jump toast (host fires it, BV renders it) ----\n\tjumpToast: string | null;\n\tjumpToastLeaving: boolean;\n\n\t// ---- Layers overlay positioning (host-computed geometry) ----\n\t/** Precomputed left offset: 412 detailOpen / 372 searchOpen / 340 sidebarFull / 12. */\n\tlayersOffsetLeft: number;\n\t/** Noun for the polygon toggle row (\"Villas\"/\"Zones\"/…). */\n\tpolyNoun: string;\n\t/** 2D vs 3D branch for the Layers panel body (defaults to `mode === \"3d\"`). */\n\thide3dLayers?: boolean;\n\n\t// ================= CALLBACKS OUT =================\n\t/** 3D footprint click (passes plot code) OR 2D leaf polygon click (passes villa id).\n\t * Host resolves villaByPlot, hops currentLocation if cross-zone, then openVilla. */\n\tonSelectVilla: (idOrPlot: string) => void;\n\t/** 2D parent-view polygon click → host.drillDownLevel(id). */\n\tonDrillDown: (id: string) => void;\n\t/** SiteImageViewer's internal SPA/Construction legend toggle. */\n\tonMapModeChange: (m: MapMode) => void;\n\t/** Surfaces the lazy-created FootprintViewer to the host (stored in realityViewerRef). */\n\tonViewerReady: (api: FootprintViewer) => void;\n\n\t// Layers overlay switches → shared state\n\tonMesh3dOnChange: (b: boolean) => void;\n\tonModel3dOnChange: (b: boolean) => void;\n\tonModel3dOpacityChange: (n: number) => void;\n\tonProgressColoursChange: (b: boolean) => void;\n\tonShowLabelsChange: (b: boolean) => void;\n\tonShowPolygonsChange: (b: boolean) => void;\n};\n\ntype LayerRow = {\n\tid: string;\n\tlabel: string;\n\ticon: typeof Home;\n\tchecked: boolean;\n\tonToggle?: (v: boolean) => void;\n};\n\nexport function BuildingViewer({\n\tmode,\n\tview,\n\tlevel,\n\tisParent,\n\tmap,\n\tsatelliteBasemap,\n\tselectedVillaId,\n\tselectedPlot,\n\tvisiblePlots,\n\tmapMode,\n\tmesh3dOn,\n\tmesh3dOpacity,\n\tmodel3dOn,\n\tmodel3dOpacity,\n\tprogressColours,\n\tshowLabels,\n\tshowPolygons,\n\tkeep3dMounted,\n\tmapScaledOut,\n\tmapBlurred,\n\tshowSpinner,\n\tchromeHidden,\n\tchromeFade,\n\treportScrollY,\n\tjumpToast,\n\tjumpToastLeaving,\n\tlayersOffsetLeft,\n\tpolyNoun,\n\thide3dLayers,\n\tonSelectVilla,\n\tonDrillDown,\n\tonMapModeChange,\n\tonViewerReady,\n\tonMesh3dOnChange,\n\tonModel3dOnChange,\n\tonModel3dOpacityChange,\n\tonProgressColoursChange,\n\tonShowLabelsChange,\n\tonShowPolygonsChange,\n}: BuildingViewerProps) {\n\t// Map layers now live in an overlay ON the canvas, toggled by the Layers button — closed to start.\n\tconst [layersOpen, setLayersOpen] = useState(false);\n\t// The 3D-tools toolbar lives OUT here (a sibling of the scaled/blurred map wrapper) so the map transition\n\t// never pulls it. It drives the viewer through this ref, which RealityMeshCanvas fills via onReady.\n\tconst realityViewerRef = useRef<FootprintViewer | null>(null);\n\tconst [navMode, setNavMode] = useState<\"orbit\" | \"pan\">(\"orbit\");\n\n\t// The Satellite basemap for the current context, when picked. Drives both the 2D branch below and the\n\t// read-only Satellite row in the Layers overlay.\n\tconst showSatellite = mode === \"satellite\" && satelliteBasemap != null;\n\t// The Layers overlay branches to the 3D body (inline switches) unless overridden.\n\tconst show3dLayers = hide3dLayers != null ? !hide3dLayers && mode === \"3d\" : mode === \"3d\";\n\n\t// Map-layers control — the toggles reflect what's actually drawn on the current 2D view. Satellite/Drone\n\t// rows have no polygon overlay, so those show read-only.\n\tconst twoDLayers: LayerRow[] = showSatellite\n\t\t? [{id: \"basemap\", label: \"Satellite basemap\", icon: Satellite, checked: true}]\n\t\t: [\n\t\t\t\t{\n\t\t\t\t\tid: \"polygons\",\n\t\t\t\t\tlabel: `${polyNoun} polygons`,\n\t\t\t\t\ticon: LayoutGrid,\n\t\t\t\t\tchecked: showPolygons,\n\t\t\t\t\tonToggle: onShowPolygonsChange,\n\t\t\t\t},\n\t\t\t\t{id: \"labels\", label: `${polyNoun} labels`, icon: Tag, checked: showLabels, onToggle: onShowLabelsChange},\n\t\t\t\t{id: \"ortho\", label: \"Drone ortho\", icon: Layers, checked: true},\n\t\t\t];\n\n\treturn (\n\t\t<>\n\t\t\t{/* Map canvas (base layer) — the real Site Image Viewer widget: the ROSHN Almanar aerial\n (\"Zone 1 - A\") with the real villa footprint polygons coloured by construction progress.\n The widget owns its own hover progress card + SPA/Construction legend. The floating left\n panel above and the map-layers overlay below sit ON TOP of it. Background image is served\n by the app (apps/storybook/public/site-background.webp). */}\n\t\t\t<div\n\t\t\t\tclassName=\"wwc:relative wwc:flex wwc:min-w-0 wwc:flex-1 wwc:overflow-hidden wwc:bg-zinc-800\"\n\t\t\t\tstyle={chromeHidden ? {transform: `translateY(${-reportScrollY}px)`} : undefined}\n\t\t\t>\n\t\t\t\t{/* The transition (zoom-out to the grey frame + blur) is applied to the MAP LAYER ONLY — the\n SiteImageViewer scales its own map internally so its zoom tools + legend stay put. The Drone\n iframe has no such controls, so it's wrapped here directly. */}\n\t\t\t\t{/* 3D reality model — kept mounted while at the villa/batch level so flipping to the 2D plan and\n back never reloads the mesh; hidden (display:none) behind the 2D map when not in 3D mode. */}\n\t\t\t\t{keep3dMounted && (\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"wwc:absolute wwc:inset-0 wwc:origin-center wwc:transition-all wwc:duration-500 wwc:ease-in-out\",\n\t\t\t\t\t\t\tmode !== \"3d\" && \"wwc:hidden\",\n\t\t\t\t\t\t\tmapScaledOut && \"wwc:scale-[0.95] wwc:overflow-hidden wwc:rounded-[25.26px]\",\n\t\t\t\t\t\t\tmapBlurred && \"wwc:blur-sm\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<RealityMeshCanvas\n\t\t\t\t\t\t\tactive={mode === \"3d\"}\n\t\t\t\t\t\t\tonReady={(api) => {\n\t\t\t\t\t\t\t\trealityViewerRef.current = api;\n\t\t\t\t\t\t\t\tonViewerReady(api);\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tmeshOn={mesh3dOn}\n\t\t\t\t\t\t\tmeshOpacity={mesh3dOpacity}\n\t\t\t\t\t\t\tmodelOn={model3dOn}\n\t\t\t\t\t\t\tmodelOpacity={model3dOpacity}\n\t\t\t\t\t\t\tprogressColours={progressColours}\n\t\t\t\t\t\t\tmapMode={mapMode}\n\t\t\t\t\t\t\tshowLabels={showLabels}\n\t\t\t\t\t\t\tselectedPlot={selectedPlot}\n\t\t\t\t\t\t\tvisiblePlots={visiblePlots}\n\t\t\t\t\t\t\tonSelectVilla={(plot) => onSelectVilla(plot)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t{/* 3D model tools — a SIBLING of the scaled/blurred 3D wrapper (so the map transition never pulls\n it), reusing the plan zoom-tool primitives. Zoom uses plain +/− like the plan view. */}\n\t\t\t\t{mode === \"3d\" && (\n\t\t\t\t\t<TooltipProvider delayDuration={200}>\n\t\t\t\t\t\t<Toolbar\n\t\t\t\t\t\t\torientation=\"vertical\"\n\t\t\t\t\t\t\taria-label=\"3D tools\"\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"wwc:absolute wwc:right-3 wwc:top-3 wwc:z-20 wwc:w-10 wwc:gap-0 wwc:py-1 wwc:transition-opacity\",\n\t\t\t\t\t\t\t\tchromeFade,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<HoverTooltip content=\"Zoom in\" side=\"left\">\n\t\t\t\t\t\t\t\t<ToolbarButton icon label=\"Zoom in\" onClick={() => realityViewerRef.current?.zoomIn()}>\n\t\t\t\t\t\t\t\t\t<Plus className=\"wwc:size-4\" />\n\t\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t\t</HoverTooltip>\n\t\t\t\t\t\t\t<ToolbarSeparator orientation=\"horizontal\" className=\"wwc:mx-0 wwc:my-0.5 wwc:w-full\" />\n\t\t\t\t\t\t\t<HoverTooltip content=\"Zoom out\" side=\"left\">\n\t\t\t\t\t\t\t\t<ToolbarButton icon label=\"Zoom out\" onClick={() => realityViewerRef.current?.zoomOut()}>\n\t\t\t\t\t\t\t\t\t<Minus className=\"wwc:size-4\" />\n\t\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t\t</HoverTooltip>\n\t\t\t\t\t\t\t<ToolbarSeparator orientation=\"horizontal\" className=\"wwc:mx-0 wwc:my-0.5 wwc:w-full\" />\n\t\t\t\t\t\t\t<HoverTooltip content=\"Reset view\" side=\"left\">\n\t\t\t\t\t\t\t\t<ToolbarButton icon label=\"Reset view\" onClick={() => realityViewerRef.current?.resetView()}>\n\t\t\t\t\t\t\t\t\t<Scan className=\"wwc:size-4\" />\n\t\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t\t</HoverTooltip>\n\t\t\t\t\t\t\t<HoverTooltip content=\"Satellite (top-down)\" side=\"left\">\n\t\t\t\t\t\t\t\t<ToolbarButton icon label=\"Satellite view\" onClick={() => realityViewerRef.current?.topDownView()}>\n\t\t\t\t\t\t\t\t\t<Satellite className=\"wwc:size-4\" />\n\t\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t\t</HoverTooltip>\n\t\t\t\t\t\t\t<ToolbarSeparator orientation=\"horizontal\" className=\"wwc:mx-0 wwc:my-1 wwc:w-full\" />\n\t\t\t\t\t\t\t<HoverTooltip content=\"Pan\" side=\"left\">\n\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\ticon\n\t\t\t\t\t\t\t\t\tlabel=\"Pan\"\n\t\t\t\t\t\t\t\t\tactive={navMode === \"pan\"}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tsetNavMode(\"pan\");\n\t\t\t\t\t\t\t\t\t\trealityViewerRef.current?.setInteractionMode(\"pan\");\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Hand className=\"wwc:size-4\" />\n\t\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t\t</HoverTooltip>\n\t\t\t\t\t\t\t<HoverTooltip content=\"Orbit\" side=\"left\">\n\t\t\t\t\t\t\t\t<ToolbarButton\n\t\t\t\t\t\t\t\t\ticon\n\t\t\t\t\t\t\t\t\tlabel=\"Orbit\"\n\t\t\t\t\t\t\t\t\tactive={navMode === \"orbit\"}\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tsetNavMode(\"orbit\");\n\t\t\t\t\t\t\t\t\t\trealityViewerRef.current?.setInteractionMode(\"orbit\");\n\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Rotate3d className=\"wwc:size-4\" />\n\t\t\t\t\t\t\t\t</ToolbarButton>\n\t\t\t\t\t\t\t</HoverTooltip>\n\t\t\t\t\t\t</Toolbar>\n\t\t\t\t\t</TooltipProvider>\n\t\t\t\t)}\n\t\t\t\t{mode === \"3d\" ? null : showSatellite && satelliteBasemap ? (\n\t\t\t\t\t<SiteImageViewer\n\t\t\t\t\t\tkey={`sat-${view}-${level}`}\n\t\t\t\t\t\tclassName=\"wwc:size-full\"\n\t\t\t\t\t\tbackgroundUrl={satelliteBasemap.backgroundUrl}\n\t\t\t\t\t\tvillas={satelliteBasemap.villas}\n\t\t\t\t\t\timageWidth={satelliteBasemap.imageWidth}\n\t\t\t\t\t\timageHeight={satelliteBasemap.imageHeight}\n\t\t\t\t\t\tmapMode={mapMode}\n\t\t\t\t\t\tonMapModeChange={onMapModeChange}\n\t\t\t\t\t\tonSelectVilla={isParent ? (id) => onDrillDown(String(id)) : (id) => onSelectVilla(String(id))}\n\t\t\t\t\t\tfocusOnSelect={!isParent}\n\t\t\t\t\t\tselectedVillaId={selectedVillaId}\n\t\t\t\t\t\tonRefresh={() => {}}\n\t\t\t\t\t\trefreshLabel=\"Updated 14 min ago\"\n\t\t\t\t\t\t// Parent grouping levels (phase/zone/batch/block) hide progress: every polygon renders one grey.\n\t\t\t\t\t\tmonochrome={isParent}\n\t\t\t\t\t\tmapScaledOut={mapScaledOut}\n\t\t\t\t\t\tmapBlurred={mapBlurred}\n\t\t\t\t\t\tchromeHidden={chromeHidden}\n\t\t\t\t\t/>\n\t\t\t\t) : (\n\t\t\t\t\t<SiteImageViewer\n\t\t\t\t\t\tkey={map.contentKey}\n\t\t\t\t\t\tclassName=\"wwc:size-full\"\n\t\t\t\t\t\tbackgroundUrl={map.backgroundUrl}\n\t\t\t\t\t\tvillas={map.villas}\n\t\t\t\t\t\tblocks={isParent ? undefined : map.blocks}\n\t\t\t\t\t\timageWidth={map.imageWidth}\n\t\t\t\t\t\timageHeight={map.imageHeight}\n\t\t\t\t\t\tmapMode={mapMode}\n\t\t\t\t\t\tonMapModeChange={onMapModeChange}\n\t\t\t\t\t\tonSelectVilla={isParent ? (id) => onDrillDown(String(id)) : (id) => onSelectVilla(String(id))}\n\t\t\t\t\t\tfocusOnSelect={!isParent}\n\t\t\t\t\t\tselectedVillaId={selectedVillaId}\n\t\t\t\t\t\tonRefresh={() => {}}\n\t\t\t\t\t\trefreshLabel=\"Updated 14 min ago\"\n\t\t\t\t\t\tshowPolygons={showPolygons}\n\t\t\t\t\t\t// Parent grouping levels (phase/zone/batch/block) hide progress: every polygon renders one grey.\n\t\t\t\t\t\tmonochrome={isParent}\n\t\t\t\t\t\tshowLabels={showLabels}\n\t\t\t\t\t\tmapScaledOut={mapScaledOut}\n\t\t\t\t\t\tmapBlurred={mapBlurred}\n\t\t\t\t\t\tchromeHidden={chromeHidden}\n\t\t\t\t\t/>\n\t\t\t\t)}\n\n\t\t\t\t{/* Loading spinner (centre) — shown while the next location loads; visuals don't swap yet. */}\n\t\t\t\t{showSpinner && (\n\t\t\t\t\t<div className=\"wwc:pointer-events-none wwc:absolute wwc:inset-0 wwc:z-30 wwc:flex wwc:items-center wwc:justify-center\">\n\t\t\t\t\t\t<span className=\"wwc:flex wwc:size-12 wwc:items-center wwc:justify-center wwc:rounded-full wwc:bg-card/90 wwc:shadow-lg wwc:backdrop-blur-sm\">\n\t\t\t\t\t\t\t<Spinner className=\"wwc:size-6 wwc:text-primary\" />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\n\t\t\t\t{/* Jump toast — a single line under the toolbar announcing a jump down to the villa level. The\n OUTER div only centres it (its `-translate-x-1/2` owns `transform`); the INNER div runs the\n slide/fade so the animation's own transform doesn't fight the centring. Enter: fade + slide\n down from under the toolbar; leave: fade + slide back up. */}\n\t\t\t\t{jumpToast ? (\n\t\t\t\t\t<div className={cn(\"wwc:absolute wwc:left-1/2 wwc:top-[84px] wwc:z-20 wwc:-translate-x-1/2\", chromeFade)}>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"wwc:duration-300 wwc:ease-out\",\n\t\t\t\t\t\t\t\tjumpToastLeaving\n\t\t\t\t\t\t\t\t\t? \"wwc:animate-out wwc:fade-out wwc:slide-out-to-top-4 wwc:fill-mode-forwards\"\n\t\t\t\t\t\t\t\t\t: \"wwc:animate-in wwc:fade-in wwc:slide-in-from-top-4\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"wwc:whitespace-nowrap wwc:rounded-full wwc:border wwc:border-border wwc:bg-card/95 wwc:px-3.5 wwc:py-1.5 wwc:text-sm wwc:font-medium wwc:shadow-lg wwc:backdrop-blur-sm\">\n\t\t\t\t\t\t\t\t<span className=\"wwc:text-muted-foreground\">Jumped to </span>\n\t\t\t\t\t\t\t\t<span className=\"wwc:text-foreground\">{jumpToast}</span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t) : null}\n\t\t\t</div>\n\n\t\t\t{/* ===== Map-layers control — a button + its overlay, floating ON the canvas =====\n Placement follows the sidebar: when the full-height search panel is open it animates to\n sit BESIDE the panel; when the floating rail fills the canvas height it shifts beside it;\n otherwise it rests in the bottom-left corner, under the sidebar. */}\n\t\t\t<div\n\t\t\t\tclassName=\"wwc:absolute wwc:bottom-3 wwc:z-30 wwc:transition-[left] wwc:duration-300 wwc:ease-in-out\"\n\t\t\t\tstyle={{left: layersOffsetLeft}}\n\t\t\t>\n\t\t\t\t<div className={chromeFade}>\n\t\t\t\t\t{layersOpen && (\n\t\t\t\t\t\t<div className=\"wwc:absolute wwc:bottom-full wwc:left-0 wwc:mb-2 wwc:w-[300px] wwc:overflow-hidden wwc:rounded-lg wwc:border wwc:border-border wwc:bg-card wwc:shadow-xl\">\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:justify-between wwc:border-b wwc:border-border wwc:px-3 wwc:py-2.5\">\n\t\t\t\t\t\t\t\t<span className=\"wwc:flex wwc:items-center wwc:gap-2 wwc:text-sm wwc:font-semibold\">\n\t\t\t\t\t\t\t\t\t<Layers className=\"wwc:size-4 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\tMap layers\n\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\ticon\n\t\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\t\taria-label=\"Close map layers\"\n\t\t\t\t\t\t\t\t\tonClick={() => setLayersOpen(false)}\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<X className=\"wwc:size-4\" />\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:flex-col wwc:gap-1 wwc:p-2\">\n\t\t\t\t\t\t\t\t{show3dLayers ? (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{/* Reality mesh — toggle */}\n\t\t\t\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2.5 wwc:rounded-md wwc:px-2 wwc:py-2\">\n\t\t\t\t\t\t\t\t\t\t\t<Box className=\"wwc:size-4 wwc:shrink-0 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wwc:min-w-0 wwc:flex-1 wwc:truncate wwc:text-sm\">Reality mesh</span>\n\t\t\t\t\t\t\t\t\t\t\t<Switch checked={mesh3dOn} onCheckedChange={onMesh3dOnChange} aria-label=\"Reality mesh\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{/* Progress model — toggle + opacity */}\n\t\t\t\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:flex-col wwc:gap-2 wwc:rounded-md wwc:px-2 wwc:py-2\">\n\t\t\t\t\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2.5\">\n\t\t\t\t\t\t\t\t\t\t\t\t<LayoutGrid className=\"wwc:size-4 wwc:shrink-0 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"wwc:min-w-0 wwc:flex-1 wwc:truncate wwc:text-sm\">Progress model</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<Switch checked={model3dOn} onCheckedChange={onModel3dOnChange} aria-label=\"Progress model\" />\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t{model3dOn ? (\n\t\t\t\t\t\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2 wwc:pl-6\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t<Slider\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tvalue={[Math.round(model3dOpacity * 100)]}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tmax={100}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tstep={5}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonValueChange={(v) => onModel3dOpacityChange((v[0] ?? 0) / 100)}\n\t\t\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Progress model opacity\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"wwc:flex-1\"\n\t\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"wwc:w-9 wwc:shrink-0 wwc:text-right wwc:text-[11px] wwc:tabular-nums wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t{Math.round(model3dOpacity * 100)}%\n\t\t\t\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{/* Progress colours — toggle */}\n\t\t\t\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2.5 wwc:rounded-md wwc:px-2 wwc:py-2\">\n\t\t\t\t\t\t\t\t\t\t\t<Tag className=\"wwc:size-4 wwc:shrink-0 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wwc:min-w-0 wwc:flex-1 wwc:truncate wwc:text-sm\">Progress colours</span>\n\t\t\t\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\t\t\t\tchecked={progressColours}\n\t\t\t\t\t\t\t\t\t\t\t\tdisabled={!model3dOn}\n\t\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={onProgressColoursChange}\n\t\t\t\t\t\t\t\t\t\t\t\taria-label=\"Progress colours\"\n\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t{/* Villa labels — toggle (shares state with the 2D labels layer) */}\n\t\t\t\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2.5 wwc:rounded-md wwc:px-2 wwc:py-2\">\n\t\t\t\t\t\t\t\t\t\t\t<Tag className=\"wwc:size-4 wwc:shrink-0 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t<span className=\"wwc:min-w-0 wwc:flex-1 wwc:truncate wwc:text-sm\">Villa labels</span>\n\t\t\t\t\t\t\t\t\t\t\t<Switch checked={showLabels} onCheckedChange={onShowLabelsChange} aria-label=\"Villa labels\" />\n\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\ttwoDLayers.map((row) => {\n\t\t\t\t\t\t\t\t\t\tconst Icon = row.icon;\n\t\t\t\t\t\t\t\t\t\tconst readOnly = !row.onToggle;\n\t\t\t\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t\t\t\t<div\n\t\t\t\t\t\t\t\t\t\t\t\tkey={row.id}\n\t\t\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\"wwc:flex wwc:flex-row wwc:items-center wwc:gap-2.5 wwc:rounded-md wwc:px-2 wwc:py-2\",\n\t\t\t\t\t\t\t\t\t\t\t\t\treadOnly && \"wwc:opacity-60\",\n\t\t\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t<Icon className=\"wwc:size-4 wwc:shrink-0 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t\t\t\t\t\t\t<span className=\"wwc:min-w-0 wwc:flex-1 wwc:truncate wwc:text-sm\">{row.label}</span>\n\t\t\t\t\t\t\t\t\t\t\t\t<Switch\n\t\t\t\t\t\t\t\t\t\t\t\t\tchecked={row.checked}\n\t\t\t\t\t\t\t\t\t\t\t\t\tdisabled={readOnly}\n\t\t\t\t\t\t\t\t\t\t\t\t\tonCheckedChange={(checked) => row.onToggle?.(checked)}\n\t\t\t\t\t\t\t\t\t\t\t\t\taria-label={row.label}\n\t\t\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\n\t\t\t\t\t{/* Layers control — a regular pill button (matching the Legend button), toggling the overlay. */}\n\t\t\t\t\t<button\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\taria-label=\"Map layers\"\n\t\t\t\t\t\taria-expanded={layersOpen}\n\t\t\t\t\t\tonClick={() => setLayersOpen((o) => !o)}\n\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\"wwc:flex wwc:items-center wwc:gap-2 wwc:rounded-lg wwc:border wwc:border-border wwc:bg-card/95 wwc:px-3 wwc:py-2 wwc:text-sm wwc:font-medium wwc:shadow-lg wwc:backdrop-blur-sm wwc:transition-colors wwc:hover:bg-accent\",\n\t\t\t\t\t\t\tlayersOpen && \"wwc:border-primary wwc:text-primary\",\n\t\t\t\t\t\t)}\n\t\t\t\t\t>\n\t\t\t\t\t\t<SlidersHorizontal className=\"wwc:size-4\" />\n\t\t\t\t\t\tLayers\n\t\t\t\t\t</button>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</>\n\t);\n}\n\nexport default BuildingViewer;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+FA,SAAS,kBAAkB,EAC1B,QACA,QACA,aACA,SACA,cACA,iBACA,SACA,YACA,cACA,cACA,eACA,WAoBE;CACF,MAAM,MAAM,OAAuB,IAAI;CACvC,MAAM,QAAQ,OAAyB,IAAI;CAC3C,MAAM,YAAY,OAA+B,IAAI;CACrD,MAAM,aAAa,uBAA4B,IAAI,IAAI,CAAC;CAExD,MAAM,cAAc,OAAO,aAAa;CACxC,YAAY,UAAU;CACtB,MAAM,aAAa,OAAO,OAAO;CACjC,WAAW,UAAU;CAGrB,MAAM,kBAAkB,OAAO,YAAY;CAC3C,gBAAgB,UAAU;CAG1B,MAAM,kBAAkB,OAAO,YAAY;CAC3C,gBAAgB,UAAU;CAE1B,MAAM,gBAAgB,UACrB,MAAM,KAAK,MAAM,WAAW,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,MAAmB,QAAQ,CAAC,CAAC;CAClF,MAAM,CAAC,OAAO,YAAY,SAAS,KAAK;CAExC,MAAM,CAAC,WAAW,gBAAgB,SAAwB,IAAI;CAO9D,MAAM,qBAAqB;EAC1B,MAAM,IAAI,UAAU;EACpB,IAAI,CAAC,KAAK,CAAC,iBAAiB;EAC5B,MAAM,MAA8B,CAAC;EACrC,KAAK,MAAM,QAAQ,EAAE,cAAc,GAAG;GACrC,MAAM,IAAI,EAAE,eAAe,IAAI;GAC/B,IAAI,CAAC,GAAG;GACR,IAAI,QAAQ,cACX;IAAC,iBAAiB;IAAG,yBAAyB,EAAE,UAAU;IAAM,wBAAwB,EAAE,WAAW;GAAI,GACzG,OACD,CAAC,CAAC;EACH;EACA,EAAE,gBAAgB,GAAG;CACtB;CAEA,gBAAgB;EACf,MAAM,YAAY,IAAI;EACtB,IAAI,CAAC,WAAW;EAChB,IAAI,WAAW;EAEf,OAAO,yBAAqB,CAC1B,MAAM,EAAC,4BACP,sBAAsB,WAAW;GAChC;GACA,oBAAoB;GACpB,WAAW,kBAAkB,aAAa;GAE1C,aAAa;GAEb,WAAW,SAAS;IACnB,IAAI,MAAM,YAAY,UAAU,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,IAAI;GAC9D;GAEA,UAAU,SAAS,aAAa,IAAI;GAEpC,aAAa,EAAC,SAAS,QAAQ,YAAW;IACzC,MAAM,KAAK,MAAM;IACjB,IAAI,CAAC,IAAI;IACT,GAAG,MAAM,UAAU,OAAO,OAAO;IACjC,GAAG,MAAM,SAAS,QAAQ,OAAO;IACjC,GAAG,MAAM,YAAY,SAAS,MAAM;GACrC;EACD,CAAC,CACF,CAAC,CACA,MAAM,MAAM;GACZ,IAAI,UAAU;IACb,EAAE,QAAQ;IACV;GACD;GACA,UAAU,UAAU;GACpB,WAAW,UAAU,CAAC;GAGtB,OAAmD,kBAAkB;GACrE,EAAE,eAAe,MAAM;GACvB,EAAE,gBAAgB,OAAO;GAEzB,KAAK,MAAM,QAAQ,EAAE,cAAc,GAAG,WAAW,QAAQ,IAAI,KAAK,MAAM,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,IAAI;GAChG,aAAa;GAEb,MAAM,UAAU,gBAAgB,UAAW,WAAW,QAAQ,IAAI,gBAAgB,OAAO,KAAK,OAAQ;GACtG,IAAI,SAAS;IACZ,EAAE,YAAY,OAAO;IACrB,EAAO,SAAS,OAAO;GACxB;GAEA,MAAM,aAAa,gBAAgB;GACnC,IAAI,YAAY,EAAE,iBAAiB,aAAa,UAAU,CAAC;EAC5D,CAAC,CAAC,CACD,OAAO,QAAQ;GACf,QAAQ,MAAM,qCAAqC,GAAG;GACtD,SAAS,IAAI;EACd,CAAC;EACF,aAAa;GACZ,WAAW;GACX,UAAU,SAAS,QAAQ;GAC3B,UAAU,UAAU;EACrB;CAGD,GAAG,CAAC,CAAC;CAEL,gBAAgB,KAAK,UAAU,SAAS,eAAe,MAAM,GAAG,CAAC,MAAM,CAAC;CACxE,gBAAgB,KAAK,UAAU,SAAS,eAAe,WAAW,GAAG,CAAC,WAAW,CAAC;CAClF,gBAAgB,KAAK,UAAU,SAAS,gBAAgB,OAAO,GAAG,CAAC,OAAO,CAAC;CAC3E,gBAAgB,KAAK,UAAU,SAAS,gBAAgB,YAAY,GAAG,CAAC,YAAY,CAAC;CACrF,gBAAgB,KAAK,UAAU,SAAS,iBAAiB,UAAU,GAAG,CAAC,UAAU,CAAC;CAGlF,MAAM,aAAa,eAAe,aAAa,KAAK,GAAG,IAAI;CAC3D,gBAAgB;EACf,MAAM,IAAI,UAAU;EACpB,IAAI,CAAC,GAAG;EACR,EAAE,iBAAiB,eAAe,aAAa,YAAY,IAAI,IAAI;CAGpE,GAAG,CAAC,UAAU,CAAC;CACf,gBAAgB;EACf,UAAU,SAAS,cAAc,kBAAkB,aAAa,UAAU;EAC1E,aAAa;CAGd,GAAG,CAAC,iBAAiB,OAAO,CAAC;CAG7B,gBAAgB;EACf,MAAM,IAAI,UAAU;EACpB,IAAI,CAAC,GAAG;EACR,MAAM,OAAO,eAAgB,WAAW,QAAQ,IAAI,YAAY,KAAK,OAAQ;EAI7E,IAAI,EAAE,iBAAiB,MAAM,MAAM,EAAO,YAAY,IAAI;EAC1D,IAAI,MAAM,EAAO,SAAS,IAAI;CAE/B,GAAG,CAAC,cAAc,MAAM,CAAC;CAIzB,gBAAgB;EAEf,IAAI,UAAU,CAAC,cAAc,UAAe,SAAS,UAAU;CAGhE,GAAG,CAAC,MAAM,CAAC;CAEX,MAAM,WAAW,aAAa,UAAU,UAAU,UAAU,QAAQ,eAAe,SAAS,IAAI;CAChG,OACC,qBAAC,OAAD;EAAK,WAAU;EAAf,UAAA;GAIC,oBAAC,OAAD;IACC,KAAK;IACL,KAAI;IACJ,KAAI;IACJ,WAAU;IACV,OAAO;KACN,SAAS;KACT,QAAQ;KACR,WAAW;KACX,iBAAiB;KACjB,YAAY;IACb;GACA,CAAA;GACD,oBAAC,OAAD;IAAU;IAAK,WAAU;GAA0C,CAAA;GAEnE,oBAAC,OAAD;IACC,WAAU;IACV,OAAO,EAAC,YAAY,6EAA4E;GAChG,CAAA;GAGA,WACA,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA;KACC,oBAAC,QAAD;MAAM,WAAU;MAAqB,UAAA,SAAS;KAAW,CAAA;KACzD,qBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CAAoC,SAAM,SAAS,QAAQ,GAAU;;KACrE,qBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CAAoC,UAAO,SAAS,SAAS,GAAU;;KACtE,SAAS,UAAU,OAAO,qBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CAAqC,SAAS,QAAO,GAAO;KAAI,CAAA,IAAA;IACvF;GACF,CAAA,IAAA;GACH,QACA,oBAAC,OAAD;IAAK,WAAU;IAAsH,UAAA;GAEhI,CAAA,IACF;EACA;;AAEP;AAwGA,SAAgB,eAAe,EAC9B,MACA,MACA,OACA,UACA,KACA,kBACA,iBACA,cACA,cACA,SACA,UACA,eACA,WACA,gBACA,iBACA,YACA,cACA,eACA,cACA,YACA,aACA,cACA,YACA,eACA,WACA,kBACA,kBACA,UACA,cACA,eACA,aACA,iBACA,eACA,kBACA,mBACA,wBACA,yBACA,oBACA,wBACuB;CAEvB,MAAM,CAAC,YAAY,iBAAiB,SAAS,KAAK;CAGlD,MAAM,mBAAmB,OAA+B,IAAI;CAC5D,MAAM,CAAC,SAAS,cAAc,SAA0B,OAAO;CAI/D,MAAM,gBAAgB,SAAS,eAAe,oBAAoB;CAElE,MAAM,eAAe,gBAAgB,OAAO,CAAC,gBAAgB,SAAS,OAAO,SAAS;CAItF,MAAM,aAAyB,gBAC5B,CAAC;EAAC,IAAI;EAAW,OAAO;EAAqB,MAAM;EAAW,SAAS;CAAI,CAAC,IAC5E;EACA;GACC,IAAI;GACJ,OAAO,GAAG,SAAS;GACnB,MAAM;GACN,SAAS;GACT,UAAU;EACX;EACA;GAAC,IAAI;GAAU,OAAO,GAAG,SAAS;GAAU,MAAM;GAAK,SAAS;GAAY,UAAU;EAAkB;EACxG;GAAC,IAAI;GAAS,OAAO;GAAe,MAAM;GAAQ,SAAS;EAAI;CAChE;CAEF,OACC,qBAAA,YAAA,EAAA,UAAA,CAMC,qBAAC,OAAD;EACC,WAAU;EACV,OAAO,eAAe,EAAC,WAAW,cAAc,CAAC,cAAc,KAAI,IAAI,KAAA;EAFxE,UAAA;GASE,iBACA,oBAAC,OAAD;IACC,WAAW,GACV,kGACA,SAAS,QAAQ,cACjB,gBAAgB,8DAChB,cAAc,aACf;IAEA,UAAA,oBAAC,mBAAD;KACC,QAAQ,SAAS;KACjB,UAAU,QAAQ;MACjB,iBAAiB,UAAU;MAC3B,cAAc,GAAG;KAClB;KACA,QAAQ;KACR,aAAa;KACb,SAAS;KACT,cAAc;KACG;KACR;KACG;KACE;KACA;KACd,gBAAgB,SAAS,cAAc,IAAI;IAC3C,CAAA;GACG,CAAA;GAIL,SAAS,QACT,oBAAC,iBAAD;IAAiB,eAAe;IAC/B,UAAA,qBAAC,SAAD;KACC,aAAY;KACZ,cAAW;KACX,WAAW,GACV,kGACA,UACD;KAND,UAAA;MAQC,oBAAC,cAAD;OAAc,SAAQ;OAAU,MAAK;OACpC,UAAA,oBAAC,eAAD;QAAe,MAAA;QAAK,OAAM;QAAU,eAAe,iBAAiB,SAAS,OAAO;QACnF,UAAA,oBAAC,MAAD,EAAM,WAAU,aAAc,CAAA;OAChB,CAAA;MACF,CAAA;MACd,oBAAC,kBAAD;OAAkB,aAAY;OAAa,WAAU;MAAkC,CAAA;MACvF,oBAAC,cAAD;OAAc,SAAQ;OAAW,MAAK;OACrC,UAAA,oBAAC,eAAD;QAAe,MAAA;QAAK,OAAM;QAAW,eAAe,iBAAiB,SAAS,QAAQ;QACrF,UAAA,oBAAC,OAAD,EAAO,WAAU,aAAc,CAAA;OACjB,CAAA;MACF,CAAA;MACd,oBAAC,kBAAD;OAAkB,aAAY;OAAa,WAAU;MAAkC,CAAA;MACvF,oBAAC,cAAD;OAAc,SAAQ;OAAa,MAAK;OACvC,UAAA,oBAAC,eAAD;QAAe,MAAA;QAAK,OAAM;QAAa,eAAe,iBAAiB,SAAS,UAAU;QACzF,UAAA,oBAAC,MAAD,EAAM,WAAU,aAAc,CAAA;OAChB,CAAA;MACF,CAAA;MACd,oBAAC,cAAD;OAAc,SAAQ;OAAuB,MAAK;OACjD,UAAA,oBAAC,eAAD;QAAe,MAAA;QAAK,OAAM;QAAiB,eAAe,iBAAiB,SAAS,YAAY;QAC/F,UAAA,oBAAC,WAAD,EAAW,WAAU,aAAc,CAAA;OACrB,CAAA;MACF,CAAA;MACd,oBAAC,kBAAD;OAAkB,aAAY;OAAa,WAAU;MAAgC,CAAA;MACrF,oBAAC,cAAD;OAAc,SAAQ;OAAM,MAAK;OAChC,UAAA,oBAAC,eAAD;QACC,MAAA;QACA,OAAM;QACN,QAAQ,YAAY;QACpB,eAAe;SACd,WAAW,KAAK;SAChB,iBAAiB,SAAS,mBAAmB,KAAK;QACnD;QAEA,UAAA,oBAAC,MAAD,EAAM,WAAU,aAAc,CAAA;OAChB,CAAA;MACF,CAAA;MACd,oBAAC,cAAD;OAAc,SAAQ;OAAQ,MAAK;OAClC,UAAA,oBAAC,eAAD;QACC,MAAA;QACA,OAAM;QACN,QAAQ,YAAY;QACpB,eAAe;SACd,WAAW,OAAO;SAClB,iBAAiB,SAAS,mBAAmB,OAAO;QACrD;QAEA,UAAA,oBAAC,UAAD,EAAU,WAAU,aAAc,CAAA;OACpB,CAAA;MACF,CAAA;KACN;;GACO,CAAA;GAEjB,SAAS,OAAO,OAAO,iBAAiB,mBACxC,oBAAC,iBAAD;IAEC,WAAU;IACV,eAAe,iBAAiB;IAChC,QAAQ,iBAAiB;IACzB,YAAY,iBAAiB;IAC7B,aAAa,iBAAiB;IACrB;IACQ;IACjB,eAAe,YAAY,OAAO,YAAY,OAAO,EAAE,CAAC,KAAK,OAAO,cAAc,OAAO,EAAE,CAAC;IAC5F,eAAe,CAAC;IACC;IACjB,iBAAiB,CAAC;IAClB,cAAa;IAEb,YAAY;IACE;IACF;IACE;GACd,GAlBK,OAAO,KAAK,GAAG,OAkBpB,IAED,oBAAC,iBAAD;IAEC,WAAU;IACV,eAAe,IAAI;IACnB,QAAQ,IAAI;IACZ,QAAQ,WAAW,KAAA,IAAY,IAAI;IACnC,YAAY,IAAI;IAChB,aAAa,IAAI;IACR;IACQ;IACjB,eAAe,YAAY,OAAO,YAAY,OAAO,EAAE,CAAC,KAAK,OAAO,cAAc,OAAO,EAAE,CAAC;IAC5F,eAAe,CAAC;IACC;IACjB,iBAAiB,CAAC;IAClB,cAAa;IACC;IAEd,YAAY;IACA;IACE;IACF;IACE;GACd,GArBK,IAAI,UAqBT;GAID,eACA,oBAAC,OAAD;IAAK,WAAU;IACd,UAAA,oBAAC,QAAD;KAAM,WAAU;KACf,UAAA,oBAAC,SAAD,EAAS,WAAU,8BAA+B,CAAA;IAC7C,CAAA;GACF,CAAA;GAOL,YACA,oBAAC,OAAD;IAAK,WAAW,GAAG,0EAA0E,UAAU;IACtG,UAAA,oBAAC,OAAD;KACC,WAAW,GACV,iCACA,mBACG,+EACA,oDACJ;KAEA,UAAA,qBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACC,oBAAC,QAAD;OAAM,WAAU;OAA4B,UAAA;MAAgB,CAAA,GAC5D,oBAAC,QAAD;OAAM,WAAU;OAAuB,UAAA;MAAgB,CAAA,CACnD;;IACD,CAAA;GACD,CAAA,IACF;EACA;CAML,CAAA,GAAA,oBAAC,OAAD;EACC,WAAU;EACV,OAAO,EAAC,MAAM,iBAAgB;EAE9B,UAAA,qBAAC,OAAD;GAAK,WAAW;GAAhB,UAAA,CACE,cACA,qBAAC,OAAD;IAAK,WAAU;IAAf,UAAA,CACC,qBAAC,OAAD;KAAK,WAAU;KAAf,UAAA,CACC,qBAAC,QAAD;MAAM,WAAU;MAAhB,UAAA,CACC,oBAAC,QAAD,EAAQ,WAAU,uCAAwC,CAAA,GAAC,YAEtD;KACN,CAAA,GAAA,oBAAC,QAAD;MACC,MAAA;MACA,MAAK;MACL,SAAQ;MACR,cAAW;MACX,eAAe,cAAc,KAAK;MAElC,UAAA,oBAAC,GAAD,EAAG,WAAU,aAAc,CAAA;KACpB,CAAA,CACJ;IACL,CAAA,GAAA,oBAAC,OAAD;KAAK,WAAU;KACb,UAAA,eACA,qBAAA,YAAA,EAAA,UAAA;MAEC,qBAAC,OAAD;OAAK,WAAU;OAAf,UAAA;QACC,oBAAC,KAAD,EAAK,WAAU,oDAAqD,CAAA;QACpE,oBAAC,QAAD;SAAM,WAAU;SAAkD,UAAA;QAAkB,CAAA;QACpF,oBAAC,QAAD;SAAQ,SAAS;SAAU,iBAAiB;SAAkB,cAAW;QAAgB,CAAA;OACrF;;MAEL,qBAAC,OAAD;OAAK,WAAU;OAAf,UAAA,CACC,qBAAC,OAAD;QAAK,WAAU;QAAf,UAAA;SACC,oBAAC,YAAD,EAAY,WAAU,oDAAqD,CAAA;SAC3E,oBAAC,QAAD;UAAM,WAAU;UAAkD,UAAA;SAAoB,CAAA;SACtF,oBAAC,QAAD;UAAQ,SAAS;UAAW,iBAAiB;UAAmB,cAAW;SAAkB,CAAA;QACzF;OACJ,CAAA,GAAA,YACA,qBAAC,OAAD;QAAK,WAAU;QAAf,UAAA,CACC,oBAAC,QAAD;SACC,OAAO,CAAC,KAAK,MAAM,iBAAiB,GAAG,CAAC;SACxC,KAAK;SACL,MAAM;SACN,gBAAgB,MAAM,wBAAwB,EAAE,MAAM,KAAK,GAAG;SAC9D,cAAW;SACX,WAAU;QACV,CAAA,GACD,qBAAC,QAAD;SAAM,WAAU;SAAhB,UAAA,CACE,KAAK,MAAM,iBAAiB,GAAG,GAAE,GAC7B;QACF,CAAA,CAAA;OACF,CAAA,IAAA,IACA;;MAEL,qBAAC,OAAD;OAAK,WAAU;OAAf,UAAA;QACC,oBAAC,KAAD,EAAK,WAAU,oDAAqD,CAAA;QACpE,oBAAC,QAAD;SAAM,WAAU;SAAkD,UAAA;QAAsB,CAAA;QACxF,oBAAC,QAAD;SACC,SAAS;SACT,UAAU,CAAC;SACX,iBAAiB;SACjB,cAAW;QACX,CAAA;OACG;;MAEL,qBAAC,OAAD;OAAK,WAAU;OAAf,UAAA;QACC,oBAAC,KAAD,EAAK,WAAU,oDAAqD,CAAA;QACpE,oBAAC,QAAD;SAAM,WAAU;SAAkD,UAAA;QAAkB,CAAA;QACpF,oBAAC,QAAD;SAAQ,SAAS;SAAY,iBAAiB;SAAoB,cAAW;QAAgB,CAAA;OACzF;;KACJ,EAAA,CAAA,IAEF,WAAW,KAAK,QAAQ;MACvB,MAAM,OAAO,IAAI;MACjB,MAAM,WAAW,CAAC,IAAI;MACtB,OACC,qBAAC,OAAD;OAEC,WAAW,GACV,uFACA,YAAY,gBACb;OALD,UAAA;QAOC,oBAAC,MAAD,EAAM,WAAU,oDAAqD,CAAA;QACrE,oBAAC,QAAD;SAAM,WAAU;SAAmD,UAAA,IAAI;QAAY,CAAA;QACnF,oBAAC,QAAD;SACC,SAAS,IAAI;SACb,UAAU;SACV,kBAAkB,YAAY,IAAI,WAAW,OAAO;SACpD,cAAY,IAAI;QAChB,CAAA;OACG;MAdC,GAAA,IAAI,EAcL;KAEP,CAAC;IAEE,CAAA,CACD;GAIN,CAAA,GAAA,qBAAC,UAAD;IACC,MAAK;IACL,cAAW;IACX,iBAAe;IACf,eAAe,eAAe,MAAM,CAAC,CAAC;IACtC,WAAW,GACV,6NACA,cAAc,qCACf;IARD,UAAA,CAUC,oBAAC,mBAAD,EAAmB,WAAU,aAAc,CAAA,GAAC,QAErC;GACJ,CAAA,CAAA;;CACD,CAAA,CACJ,EAAA,CAAA;AAEJ"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/button-group.d.ts
|
|
3
|
+
/** Groups related buttons together with consistent spacing and styling. */
|
|
4
|
+
declare const ButtonGroup: React.ForwardRefExoticComponent<React.HTMLAttributes<HTMLDivElement> & React.RefAttributes<HTMLDivElement>>;
|
|
5
|
+
declare const ButtonGroupItem: React.ForwardRefExoticComponent<React.ButtonHTMLAttributes<HTMLButtonElement> & React.RefAttributes<HTMLButtonElement>>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { ButtonGroup, ButtonGroupItem };
|
|
8
|
+
//# sourceMappingURL=button-group.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-group.d.mts","names":[],"sources":["../src/button-group.tsx"],"mappings":";;;cAIM,aAAW,MAAA,0BAAA,MAAA,eAAA,kBAAA,MAAA,cAAA;cAWX,iBAAe,MAAA,0BAAA,MAAA,qBAAA,qBAAA,MAAA,cAAA"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { cn } from "@corensystem/coren-utils";
|
|
2
|
+
import * as React from "react";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
//#region src/button-group.tsx
|
|
5
|
+
/** Groups related buttons together with consistent spacing and styling. */
|
|
6
|
+
const ButtonGroup = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("div", {
|
|
7
|
+
ref,
|
|
8
|
+
className: cn("wwc:inline-flex wwc:items-center wwc:justify-center wwc:rounded-md", className),
|
|
9
|
+
...props
|
|
10
|
+
}));
|
|
11
|
+
ButtonGroup.displayName = "ButtonGroup";
|
|
12
|
+
const ButtonGroupItem = React.forwardRef(({ className, ...props }, ref) => /* @__PURE__ */ jsx("button", {
|
|
13
|
+
ref,
|
|
14
|
+
className: cn("wwc:inline-flex wwc:items-center wwc:justify-center wwc:gap-2 wwc:whitespace-nowrap wwc:text-sm wwc:font-medium wwc:transition-colors wwc:[&_svg]:pointer-events-none wwc:[&_svg]:size-4 wwc:[&_svg]:shrink-0", "wwc:focus-visible:outline-none wwc:focus-visible:ring-1 wwc:focus-visible:ring-ring", "wwc:disabled:pointer-events-none wwc:disabled:opacity-50", "wwc:border wwc:border-input wwc:bg-card wwc:hover:bg-accent wwc:hover:text-accent-foreground", "wwc:h-9 wwc:px-4 wwc:py-2", "wwc:rounded-none wwc:border-r-0 wwc:first:rounded-l-md wwc:last:rounded-r-md wwc:last:border-r", className),
|
|
15
|
+
...props
|
|
16
|
+
}));
|
|
17
|
+
ButtonGroupItem.displayName = "ButtonGroupItem";
|
|
18
|
+
//#endregion
|
|
19
|
+
export { ButtonGroup, ButtonGroupItem };
|
|
20
|
+
|
|
21
|
+
//# sourceMappingURL=button-group.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button-group.mjs","names":[],"sources":["../src/button-group.tsx"],"sourcesContent":["import {cn} from \"@corensystem/coren-utils\";\nimport * as React from \"react\";\n\n/** Groups related buttons together with consistent spacing and styling. */\nconst ButtonGroup = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({className, ...props}, ref) => (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={cn(\"wwc:inline-flex wwc:items-center wwc:justify-center wwc:rounded-md\", className)}\n\t\t\t{...props}\n\t\t/>\n\t),\n);\nButtonGroup.displayName = \"ButtonGroup\";\n\nconst ButtonGroupItem = React.forwardRef<HTMLButtonElement, React.ButtonHTMLAttributes<HTMLButtonElement>>(\n\t({className, ...props}, ref) => (\n\t\t<button\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t\"wwc:inline-flex wwc:items-center wwc:justify-center wwc:gap-2 wwc:whitespace-nowrap wwc:text-sm wwc:font-medium wwc:transition-colors wwc:[&_svg]:pointer-events-none wwc:[&_svg]:size-4 wwc:[&_svg]:shrink-0\",\n\t\t\t\t\"wwc:focus-visible:outline-none wwc:focus-visible:ring-1 wwc:focus-visible:ring-ring\",\n\t\t\t\t\"wwc:disabled:pointer-events-none wwc:disabled:opacity-50\",\n\t\t\t\t\"wwc:border wwc:border-input wwc:bg-card wwc:hover:bg-accent wwc:hover:text-accent-foreground\",\n\t\t\t\t\"wwc:h-9 wwc:px-4 wwc:py-2\",\n\t\t\t\t\"wwc:rounded-none wwc:border-r-0 wwc:first:rounded-l-md wwc:last:rounded-r-md wwc:last:border-r\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t),\n);\nButtonGroupItem.displayName = \"ButtonGroupItem\";\n\nexport {ButtonGroup, ButtonGroupItem};\n"],"mappings":";;;;;AAIA,MAAM,cAAc,MAAM,YACxB,EAAC,WAAW,GAAG,SAAQ,QACvB,oBAAC,OAAD;CACM;CACL,WAAW,GAAG,sEAAsE,SAAS;CAC7F,GAAI;AACJ,CAAA,CAEH;AACA,YAAY,cAAc;AAE1B,MAAM,kBAAkB,MAAM,YAC5B,EAAC,WAAW,GAAG,SAAQ,QACvB,oBAAC,UAAD;CACM;CACL,WAAW,GACV,iNACA,uFACA,4DACA,gGACA,6BACA,kGACA,SACD;CACA,GAAI;AACJ,CAAA,CAEH;AACA,gBAAgB,cAAc"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { VariantProps } from "class-variance-authority";
|
|
3
|
+
//#region src/button.d.ts
|
|
4
|
+
declare const buttonVariants: (props?: ({
|
|
5
|
+
variant?: "link" | "default" | "destructive" | "secondary" | "outline" | "ghost" | null | undefined;
|
|
6
|
+
size?: "default" | "sm" | "lg" | null | undefined;
|
|
7
|
+
icon?: boolean | null | undefined;
|
|
8
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
9
|
+
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {
|
|
10
|
+
asChild?: boolean;
|
|
11
|
+
loading?: boolean;
|
|
12
|
+
/** Hover/focus hint. Icon-only buttons should always set this — the icon alone is not a label. */
|
|
13
|
+
tooltip?: React.ReactNode;
|
|
14
|
+
/** Which side the tooltip opens on. Defaults to "top". */
|
|
15
|
+
tooltipSide?: "top" | "right" | "bottom" | "left";
|
|
16
|
+
}
|
|
17
|
+
/** An interactive element that triggers an action when clicked. */
|
|
18
|
+
declare const Button: React.ForwardRefExoticComponent<ButtonProps & React.RefAttributes<HTMLButtonElement>>;
|
|
19
|
+
//#endregion
|
|
20
|
+
export { Button, buttonVariants };
|
|
21
|
+
//# sourceMappingURL=button.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.d.mts","names":[],"sources":["../src/button.tsx"],"mappings":";;;cAQM,iBAAc;;;;6CAuCnB;iBAEgB,oBACR,MAAM,qBAAqB,oBAAoB,oBAAoB;EAC3E;EACA;;EAEA,UAAU,MAAM;;EAEhB;;;cAIK,QAAM,MAAA,0BAAA,cAAA,MAAA,cAAA"}
|
package/dist/button.mjs
ADDED
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
import { Spinner } from "./spinner.mjs";
|
|
2
|
+
import { HoverTooltip } from "./tooltip.mjs";
|
|
3
|
+
import { cn } from "@corensystem/coren-utils";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { cva } from "class-variance-authority";
|
|
7
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
8
|
+
//#region src/button.tsx
|
|
9
|
+
const buttonVariants = cva("wwc:inline-flex wwc:items-center wwc:justify-center wwc:gap-1.5 wwc:whitespace-nowrap wwc:rounded-md wwc:text-sm wwc:font-medium wwc:transition-colors wwc:focus-visible:outline-none wwc:focus-visible:ring-1 wwc:focus-visible:ring-ring wwc:disabled:pointer-events-none wwc:disabled:opacity-50 wwc:[&_svg]:pointer-events-none wwc:[&_svg]:size-4 wwc:[&_svg]:shrink-0", {
|
|
10
|
+
variants: {
|
|
11
|
+
variant: {
|
|
12
|
+
default: "wwc:bg-primary wwc:text-primary-foreground wwc:shadow wwc:hover:bg-primary/90",
|
|
13
|
+
destructive: "wwc:bg-destructive wwc:text-destructive-foreground wwc:shadow-sm wwc:hover:bg-destructive/90",
|
|
14
|
+
outline: "wwc:border wwc:border-border wwc:dark:border-foreground/30 wwc:bg-card wwc:shadow-sm wwc:hover:bg-accent wwc:hover:text-accent-foreground",
|
|
15
|
+
secondary: "wwc:bg-secondary wwc:text-secondary-foreground wwc:shadow-sm wwc:hover:bg-secondary/80",
|
|
16
|
+
ghost: "wwc:hover:bg-accent wwc:hover:text-accent-foreground",
|
|
17
|
+
link: "wwc:text-primary wwc:underline-offset-4 wwc:hover:underline"
|
|
18
|
+
},
|
|
19
|
+
size: {
|
|
20
|
+
default: "wwc:h-8 wwc:px-4 wwc:py-2",
|
|
21
|
+
sm: "wwc:h-8 wwc:rounded-md wwc:px-3 wwc:text-xs",
|
|
22
|
+
lg: "wwc:h-10 wwc:rounded-md wwc:px-8"
|
|
23
|
+
},
|
|
24
|
+
icon: {
|
|
25
|
+
true: "wwc:p-0 wwc:gap-0",
|
|
26
|
+
false: ""
|
|
27
|
+
}
|
|
28
|
+
},
|
|
29
|
+
compoundVariants: [
|
|
30
|
+
{
|
|
31
|
+
icon: true,
|
|
32
|
+
size: "default",
|
|
33
|
+
class: "wwc:w-8"
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
icon: true,
|
|
37
|
+
size: "sm",
|
|
38
|
+
class: "wwc:w-8"
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
icon: true,
|
|
42
|
+
size: "lg",
|
|
43
|
+
class: "wwc:w-10"
|
|
44
|
+
}
|
|
45
|
+
],
|
|
46
|
+
defaultVariants: {
|
|
47
|
+
variant: "default",
|
|
48
|
+
size: "default",
|
|
49
|
+
icon: false
|
|
50
|
+
}
|
|
51
|
+
});
|
|
52
|
+
/** An interactive element that triggers an action when clicked. */
|
|
53
|
+
const Button = React.forwardRef(({ className, variant, size, icon, asChild = false, loading = false, children, disabled, tooltip, tooltipSide = "top", ...props }, ref) => {
|
|
54
|
+
const Comp = asChild ? Slot : "button";
|
|
55
|
+
const isIconOnly = icon === true || !children && React.Children.count(children) === 0;
|
|
56
|
+
const button = /* @__PURE__ */ jsx(Comp, {
|
|
57
|
+
className: cn(buttonVariants({
|
|
58
|
+
variant,
|
|
59
|
+
size,
|
|
60
|
+
icon,
|
|
61
|
+
className
|
|
62
|
+
})),
|
|
63
|
+
ref,
|
|
64
|
+
disabled: disabled || loading,
|
|
65
|
+
...props,
|
|
66
|
+
children: loading ? isIconOnly ? /* @__PURE__ */ jsx(Spinner, { className: "wwc:h-4 wwc:w-4" }) : /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx(Spinner, { className: "wwc:h-4 wwc:w-4" }), children] }) : children
|
|
67
|
+
});
|
|
68
|
+
if (tooltip === void 0) return button;
|
|
69
|
+
return /* @__PURE__ */ jsx(HoverTooltip, {
|
|
70
|
+
content: tooltip,
|
|
71
|
+
side: tooltipSide,
|
|
72
|
+
children: button
|
|
73
|
+
});
|
|
74
|
+
});
|
|
75
|
+
Button.displayName = "Button";
|
|
76
|
+
//#endregion
|
|
77
|
+
export { Button, buttonVariants };
|
|
78
|
+
|
|
79
|
+
//# sourceMappingURL=button.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.mjs","names":[],"sources":["../src/button.tsx"],"sourcesContent":["import {cn} from \"@corensystem/coren-utils\";\nimport {Slot} from \"@radix-ui/react-slot\";\nimport {type VariantProps, cva} from \"class-variance-authority\";\nimport * as React from \"react\";\n\nimport {Spinner} from \"./spinner\";\nimport {HoverTooltip} from \"./tooltip\";\n\nconst buttonVariants = cva(\n\t// gap-1.5 (6px) matches the nav tabs and suits a 32px control with a 16px icon. The gap is the\n\t// ONLY spacing between icon and label — icons must not carry their own mr-*/ml-*, or it doubles.\n\t\"wwc:inline-flex wwc:items-center wwc:justify-center wwc:gap-1.5 wwc:whitespace-nowrap wwc:rounded-md wwc:text-sm wwc:font-medium wwc:transition-colors wwc:focus-visible:outline-none wwc:focus-visible:ring-1 wwc:focus-visible:ring-ring wwc:disabled:pointer-events-none wwc:disabled:opacity-50 wwc:[&_svg]:pointer-events-none wwc:[&_svg]:size-4 wwc:[&_svg]:shrink-0\",\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: \"wwc:bg-primary wwc:text-primary-foreground wwc:shadow wwc:hover:bg-primary/90\",\n\t\t\t\tdestructive: \"wwc:bg-destructive wwc:text-destructive-foreground wwc:shadow-sm wwc:hover:bg-destructive/90\",\n\t\t\t\toutline:\n\t\t\t\t\t\"wwc:border wwc:border-border wwc:dark:border-foreground/30 wwc:bg-card wwc:shadow-sm wwc:hover:bg-accent wwc:hover:text-accent-foreground\",\n\t\t\t\tsecondary: \"wwc:bg-secondary wwc:text-secondary-foreground wwc:shadow-sm wwc:hover:bg-secondary/80\",\n\t\t\t\tghost: \"wwc:hover:bg-accent wwc:hover:text-accent-foreground\",\n\t\t\t\tlink: \"wwc:text-primary wwc:underline-offset-4 wwc:hover:underline\",\n\t\t\t},\n\t\t\t// 32px is the app's control height — table headers, pagination, toolbars and every\n\t\t\t// icon button sit on it. `default` and `sm` share that height and differ in padding\n\t\t\t// and type size; `lg` is the deliberate step up for a prominent CTA.\n\t\t\tsize: {\n\t\t\t\tdefault: \"wwc:h-8 wwc:px-4 wwc:py-2\",\n\t\t\t\tsm: \"wwc:h-8 wwc:rounded-md wwc:px-3 wwc:text-xs\",\n\t\t\t\tlg: \"wwc:h-10 wwc:rounded-md wwc:px-8\",\n\t\t\t},\n\t\t\ticon: {\n\t\t\t\ttrue: \"wwc:p-0 wwc:gap-0\",\n\t\t\t\tfalse: \"\",\n\t\t\t},\n\t\t},\n\t\tcompoundVariants: [\n\t\t\t{icon: true, size: \"default\", class: \"wwc:w-8\"},\n\t\t\t{icon: true, size: \"sm\", class: \"wwc:w-8\"},\n\t\t\t{icon: true, size: \"lg\", class: \"wwc:w-10\"},\n\t\t],\n\t\tdefaultVariants: {\n\t\t\tvariant: \"default\",\n\t\t\tsize: \"default\",\n\t\t\ticon: false,\n\t\t},\n\t},\n);\n\nexport interface ButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>, VariantProps<typeof buttonVariants> {\n\tasChild?: boolean;\n\tloading?: boolean;\n\t/** Hover/focus hint. Icon-only buttons should always set this — the icon alone is not a label. */\n\ttooltip?: React.ReactNode;\n\t/** Which side the tooltip opens on. Defaults to \"top\". */\n\ttooltipSide?: \"top\" | \"right\" | \"bottom\" | \"left\";\n}\n\n/** An interactive element that triggers an action when clicked. */\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tvariant,\n\t\t\tsize,\n\t\t\ticon,\n\t\t\tasChild = false,\n\t\t\tloading = false,\n\t\t\tchildren,\n\t\t\tdisabled,\n\t\t\ttooltip,\n\t\t\ttooltipSide = \"top\",\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst Comp = asChild ? Slot : \"button\";\n\n\t\tconst isIconOnly = icon === true || (!children && React.Children.count(children) === 0);\n\n\t\tconst button = (\n\t\t\t<Comp\n\t\t\t\tclassName={cn(buttonVariants({variant, size, icon, className}))}\n\t\t\t\tref={ref}\n\t\t\t\tdisabled={disabled || loading}\n\t\t\t\t{...props}\n\t\t\t>\n\t\t\t\t{loading ? (\n\t\t\t\t\tisIconOnly ? (\n\t\t\t\t\t\t<Spinner className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t<Spinner className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t{children}\n\t\t\t\t\t\t</>\n\t\t\t\t\t)\n\t\t\t\t) : (\n\t\t\t\t\tchildren\n\t\t\t\t)}\n\t\t\t</Comp>\n\t\t);\n\n\t\tif (tooltip === undefined) return button;\n\n\t\t// Self-contained provider so a tooltip works without the consumer mounting one.\n\t\t// Note: when the Button is itself an `asChild` trigger (Popover/Dropdown), wrap the\n\t\t// *trigger* in a HoverTooltip instead — the wrapper would swallow the trigger's props here.\n\t\treturn (\n\t\t\t<HoverTooltip content={tooltip} side={tooltipSide}>\n\t\t\t\t{button}\n\t\t\t</HoverTooltip>\n\t\t);\n\t},\n);\nButton.displayName = \"Button\";\n\nexport {Button, buttonVariants};\n"],"mappings":";;;;;;;;AAQA,MAAM,iBAAiB,IAGtB,+WACA;CACC,UAAU;EACT,SAAS;GACR,SAAS;GACT,aAAa;GACb,SACC;GACD,WAAW;GACX,OAAO;GACP,MAAM;EACP;EAIA,MAAM;GACL,SAAS;GACT,IAAI;GACJ,IAAI;EACL;EACA,MAAM;GACL,MAAM;GACN,OAAO;EACR;CACD;CACA,kBAAkB;EACjB;GAAC,MAAM;GAAM,MAAM;GAAW,OAAO;EAAS;EAC9C;GAAC,MAAM;GAAM,MAAM;GAAM,OAAO;EAAS;EACzC;GAAC,MAAM;GAAM,MAAM;GAAM,OAAO;EAAU;CAC3C;CACA,iBAAiB;EAChB,SAAS;EACT,MAAM;EACN,MAAM;CACP;AACD,CACD;;AAaA,MAAM,SAAS,MAAM,YAEnB,EACC,WACA,SACA,MACA,MACA,UAAU,OACV,UAAU,OACV,UACA,UACA,SACA,cAAc,OACd,GAAG,SAEJ,QACI;CACJ,MAAM,OAAO,UAAU,OAAO;CAE9B,MAAM,aAAa,SAAS,QAAS,CAAC,YAAY,MAAM,SAAS,MAAM,QAAQ,MAAM;CAErF,MAAM,SACL,oBAAC,MAAD;EACC,WAAW,GAAG,eAAe;GAAC;GAAS;GAAM;GAAM;EAAS,CAAC,CAAC;EACzD;EACL,UAAU,YAAY;EACtB,GAAI;EAEH,UAAA,UACA,aACC,oBAAC,SAAD,EAAS,WAAU,kBAAmB,CAAA,IAEtC,qBAAA,YAAA,EAAA,UAAA,CACC,oBAAC,SAAD,EAAS,WAAU,kBAAmB,CAAA,GACrC,QACA,EAAA,CAAA,IAGH;CAEI,CAAA;CAGP,IAAI,YAAY,KAAA,GAAW,OAAO;CAKlC,OACC,oBAAC,cAAD;EAAc,SAAS;EAAS,MAAM;EACpC,UAAA;CACY,CAAA;AAEhB,CACD;AACA,OAAO,cAAc"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
//#region src/calendar-view.d.ts
|
|
3
|
+
export type CalendarEventTone = "neutral" | "primary" | "success" | "warning" | "danger" | "info";
|
|
4
|
+
export interface CalendarEvent {
|
|
5
|
+
id: string;
|
|
6
|
+
/** Date the event is anchored on. */
|
|
7
|
+
date: Date;
|
|
8
|
+
/** Optional short identifier rendered before the title (e.g. "ASMOB-11"). */
|
|
9
|
+
identifier?: string;
|
|
10
|
+
/** Event title. */
|
|
11
|
+
title: string;
|
|
12
|
+
/** Visual tone — drives the left border color. Defaults to "neutral". */
|
|
13
|
+
tone?: CalendarEventTone;
|
|
14
|
+
}
|
|
15
|
+
export interface CalendarViewProps {
|
|
16
|
+
/** Controls which month is visible. Pair with onMonthChange. */
|
|
17
|
+
month?: Date;
|
|
18
|
+
/** Initial month for uncontrolled use. Defaults to today's month. */
|
|
19
|
+
defaultMonth?: Date;
|
|
20
|
+
/** Fires when the user navigates to a new month via the prev / next / Today buttons. */
|
|
21
|
+
onMonthChange?: (month: Date) => void;
|
|
22
|
+
/** Day to highlight as "today". Defaults to new Date(). */
|
|
23
|
+
today?: Date;
|
|
24
|
+
/** Day-of-week the grid starts on. Defaults to Monday (1). */
|
|
25
|
+
weekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;
|
|
26
|
+
events?: CalendarEvent[];
|
|
27
|
+
/** Fires when an empty area inside a day cell is clicked. */
|
|
28
|
+
onDayClick?: (date: Date) => void;
|
|
29
|
+
/** Fires when an event chip is clicked. */
|
|
30
|
+
onEventClick?: (event: CalendarEvent) => void;
|
|
31
|
+
/**
|
|
32
|
+
* When set, an "+ Add work item" affordance appears in each cell on hover.
|
|
33
|
+
* Receives the date the action was triggered on.
|
|
34
|
+
*/
|
|
35
|
+
onAddItem?: (date: Date) => void;
|
|
36
|
+
/** Label for the add-item affordance. Defaults to "Add work item". */
|
|
37
|
+
addItemLabel?: string;
|
|
38
|
+
/**
|
|
39
|
+
* Slot rendered on the right side of the header (next to "Today"). Use for
|
|
40
|
+
* an Options dropdown, view-mode switcher, etc.
|
|
41
|
+
*/
|
|
42
|
+
headerActions?: React.ReactNode;
|
|
43
|
+
className?: string;
|
|
44
|
+
}
|
|
45
|
+
export declare function CalendarView({ month, defaultMonth, onMonthChange, today, weekStartsOn, events, onDayClick, onEventClick, onAddItem, addItemLabel, headerActions, className }: CalendarViewProps): import("react/jsx-runtime").JSX.Element;
|
|
46
|
+
//#endregion
|
|
47
|
+
//# sourceMappingURL=calendar-view.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-view.d.mts","names":[],"sources":["../src/calendar-view.tsx"],"mappings":";;YAkBY;iBAWK;EAChB;;EAEA,MAAM;;EAEN;;EAEA;;EAEA,OAAO;;iBAGS;;EAEhB,QAAQ;;EAER,eAAe;;EAEf,iBAAiB,OAAO;;EAGxB,QAAQ;;EAGR;EAEA,SAAS;;EAGT,cAAc,MAAM;;EAEpB,gBAAgB,OAAO;;;;;EAKvB,aAAa,MAAM;;EAEnB;;;;;EAMA,gBAAgB,MAAM;EAEtB;;wBA6Be,eACf,OACA,cACA,eACA,OACA,cACA,QACA,YACA,cACA,WACA,cACA,eACA,aACE,gDAAiB,IAAA"}
|
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
import { Button } from "./button.mjs";
|
|
2
|
+
import { cn } from "@corensystem/coren-utils";
|
|
3
|
+
import { ChevronLeft, ChevronRight, Plus } from "lucide-react";
|
|
4
|
+
import * as React from "react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
import { addMonths, eachDayOfInterval, endOfMonth, endOfWeek, format, isSameMonth, startOfDay, startOfMonth, startOfWeek, subMonths } from "date-fns";
|
|
7
|
+
//#region src/calendar-view.tsx
|
|
8
|
+
const toneBorderClass = {
|
|
9
|
+
neutral: "wwc:border-l-muted-foreground",
|
|
10
|
+
primary: "wwc:border-l-primary",
|
|
11
|
+
success: "wwc:border-l-emerald-500",
|
|
12
|
+
warning: "wwc:border-l-amber-500",
|
|
13
|
+
danger: "wwc:border-l-destructive",
|
|
14
|
+
info: "wwc:border-l-sky-500"
|
|
15
|
+
};
|
|
16
|
+
function CalendarEventChip({ event, onClick }) {
|
|
17
|
+
const tone = event.tone ?? "neutral";
|
|
18
|
+
const interactive = !!onClick;
|
|
19
|
+
return /* @__PURE__ */ jsxs("button", {
|
|
20
|
+
type: "button",
|
|
21
|
+
onClick: interactive ? (e) => {
|
|
22
|
+
e.stopPropagation();
|
|
23
|
+
onClick(event);
|
|
24
|
+
} : void 0,
|
|
25
|
+
className: cn("wwc:flex wwc:w-full wwc:items-center wwc:gap-1.5 wwc:rounded wwc:border wwc:border-border wwc:border-l-[3px] wwc:bg-card wwc:px-1.5 wwc:py-1 wwc:text-left wwc:text-xs wwc:leading-tight wwc:text-foreground", interactive && "wwc:hover:bg-accent/50 wwc:transition-colors", toneBorderClass[tone]),
|
|
26
|
+
children: [event.identifier && /* @__PURE__ */ jsx("span", {
|
|
27
|
+
className: "wwc:font-medium wwc:text-muted-foreground",
|
|
28
|
+
children: event.identifier
|
|
29
|
+
}), /* @__PURE__ */ jsx("span", {
|
|
30
|
+
className: "wwc:truncate",
|
|
31
|
+
children: event.title
|
|
32
|
+
})]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function CalendarView({ month, defaultMonth, onMonthChange, today = /* @__PURE__ */ new Date(), weekStartsOn = 1, events = [], onDayClick, onEventClick, onAddItem, addItemLabel = "Add work item", headerActions, className }) {
|
|
36
|
+
const isControlled = month !== void 0;
|
|
37
|
+
const [internalMonth, setInternalMonth] = React.useState(() => startOfMonth(defaultMonth ?? /* @__PURE__ */ new Date()));
|
|
38
|
+
const currentMonth = isControlled ? startOfMonth(month) : internalMonth;
|
|
39
|
+
const setMonth = React.useCallback((next) => {
|
|
40
|
+
const normalized = startOfMonth(next);
|
|
41
|
+
if (!isControlled) setInternalMonth(normalized);
|
|
42
|
+
onMonthChange?.(normalized);
|
|
43
|
+
}, [isControlled, onMonthChange]);
|
|
44
|
+
const monthStart = startOfMonth(currentMonth);
|
|
45
|
+
const monthEnd = endOfMonth(currentMonth);
|
|
46
|
+
const gridStart = startOfWeek(monthStart, { weekStartsOn });
|
|
47
|
+
const gridEnd = endOfWeek(monthEnd, { weekStartsOn });
|
|
48
|
+
const days = React.useMemo(() => eachDayOfInterval({
|
|
49
|
+
start: gridStart,
|
|
50
|
+
end: gridEnd
|
|
51
|
+
}), [gridStart, gridEnd]);
|
|
52
|
+
const weekdays = React.useMemo(() => {
|
|
53
|
+
const start = gridStart;
|
|
54
|
+
return Array.from({ length: 7 }, (_, i) => format(new Date(start.getTime() + i * 864e5), "EEE"));
|
|
55
|
+
}, [gridStart]);
|
|
56
|
+
const eventsByDay = React.useMemo(() => {
|
|
57
|
+
const map = /* @__PURE__ */ new Map();
|
|
58
|
+
for (const ev of events) {
|
|
59
|
+
const key = startOfDay(ev.date).getTime();
|
|
60
|
+
(map.get(key) || map.set(key, []).get(key)).push(ev);
|
|
61
|
+
}
|
|
62
|
+
return map;
|
|
63
|
+
}, [events]);
|
|
64
|
+
const todayKey = startOfDay(today).getTime();
|
|
65
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
66
|
+
className: cn("wwc:flex wwc:flex-col wwc:rounded-xl wwc:border wwc:border-border wwc:bg-card", className),
|
|
67
|
+
children: [
|
|
68
|
+
/* @__PURE__ */ jsxs("div", {
|
|
69
|
+
className: "wwc:flex wwc:items-center wwc:gap-2 wwc:px-4 wwc:py-3",
|
|
70
|
+
children: [
|
|
71
|
+
/* @__PURE__ */ jsx(Button, {
|
|
72
|
+
variant: "ghost",
|
|
73
|
+
icon: true,
|
|
74
|
+
className: "wwc:h-7 wwc:w-7",
|
|
75
|
+
onClick: () => setMonth(subMonths(currentMonth, 1)),
|
|
76
|
+
"aria-label": "Previous month",
|
|
77
|
+
children: /* @__PURE__ */ jsx(ChevronLeft, { className: "wwc:h-4 wwc:w-4" })
|
|
78
|
+
}),
|
|
79
|
+
/* @__PURE__ */ jsx(Button, {
|
|
80
|
+
variant: "ghost",
|
|
81
|
+
icon: true,
|
|
82
|
+
className: "wwc:h-7 wwc:w-7",
|
|
83
|
+
onClick: () => setMonth(addMonths(currentMonth, 1)),
|
|
84
|
+
"aria-label": "Next month",
|
|
85
|
+
children: /* @__PURE__ */ jsx(ChevronRight, { className: "wwc:h-4 wwc:w-4" })
|
|
86
|
+
}),
|
|
87
|
+
/* @__PURE__ */ jsx("h2", {
|
|
88
|
+
className: "wwc:ml-1 wwc:text-lg wwc:font-bold wwc:text-foreground",
|
|
89
|
+
children: format(currentMonth, "MMMM yyyy")
|
|
90
|
+
}),
|
|
91
|
+
/* @__PURE__ */ jsx("div", { className: "wwc:flex-1" }),
|
|
92
|
+
/* @__PURE__ */ jsx(Button, {
|
|
93
|
+
variant: "secondary",
|
|
94
|
+
size: "sm",
|
|
95
|
+
className: "wwc:h-7",
|
|
96
|
+
onClick: () => setMonth(today),
|
|
97
|
+
children: "Today"
|
|
98
|
+
}),
|
|
99
|
+
headerActions
|
|
100
|
+
]
|
|
101
|
+
}),
|
|
102
|
+
/* @__PURE__ */ jsx("div", {
|
|
103
|
+
style: {
|
|
104
|
+
display: "grid",
|
|
105
|
+
gridTemplateColumns: "repeat(7, minmax(0, 1fr))"
|
|
106
|
+
},
|
|
107
|
+
className: "wwc:border-t wwc:border-border wwc:bg-muted/40",
|
|
108
|
+
children: weekdays.map((d) => /* @__PURE__ */ jsx("div", {
|
|
109
|
+
className: "wwc:border-r wwc:border-border wwc:px-3 wwc:py-2 wwc:text-sm wwc:text-muted-foreground last:wwc:border-r-0",
|
|
110
|
+
children: d
|
|
111
|
+
}, d))
|
|
112
|
+
}),
|
|
113
|
+
/* @__PURE__ */ jsx("div", {
|
|
114
|
+
style: {
|
|
115
|
+
display: "grid",
|
|
116
|
+
gridTemplateColumns: "repeat(7, minmax(0, 1fr))",
|
|
117
|
+
gridAutoRows: "1fr"
|
|
118
|
+
},
|
|
119
|
+
children: days.map((day) => {
|
|
120
|
+
const inMonth = isSameMonth(day, currentMonth);
|
|
121
|
+
const isToday = startOfDay(day).getTime() === todayKey;
|
|
122
|
+
const isFirstOfMonth = day.getDate() === 1;
|
|
123
|
+
const dayEvents = eventsByDay.get(startOfDay(day).getTime()) ?? [];
|
|
124
|
+
const dayLabel = isFirstOfMonth ? format(day, "MMM d") : format(day, "d");
|
|
125
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
126
|
+
role: onDayClick ? "button" : void 0,
|
|
127
|
+
tabIndex: onDayClick ? 0 : void 0,
|
|
128
|
+
onClick: onDayClick ? () => onDayClick(day) : void 0,
|
|
129
|
+
style: { minHeight: "120px" },
|
|
130
|
+
className: cn("wwc:group wwc:relative wwc:flex wwc:flex-col wwc:gap-1 wwc:border-r wwc:border-t wwc:border-border wwc:p-2 last:wwc:border-r-0", onDayClick && "wwc:cursor-pointer"),
|
|
131
|
+
children: [/* @__PURE__ */ jsx("div", {
|
|
132
|
+
className: "wwc:flex wwc:items-center wwc:justify-end",
|
|
133
|
+
children: isToday ? /* @__PURE__ */ jsx("span", {
|
|
134
|
+
className: "wwc:flex wwc:h-6 wwc:min-w-6 wwc:items-center wwc:justify-center wwc:rounded-full wwc:bg-primary wwc:px-1.5 wwc:text-xs wwc:font-semibold wwc:text-primary-foreground",
|
|
135
|
+
"aria-current": "date",
|
|
136
|
+
children: dayLabel
|
|
137
|
+
}) : /* @__PURE__ */ jsx("span", {
|
|
138
|
+
className: cn("wwc:px-1 wwc:text-xs", inMonth ? "wwc:text-foreground" : "wwc:text-muted-foreground/60"),
|
|
139
|
+
children: dayLabel
|
|
140
|
+
})
|
|
141
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
142
|
+
className: "wwc:flex wwc:flex-col wwc:gap-1",
|
|
143
|
+
children: [dayEvents.map((ev) => /* @__PURE__ */ jsx(CalendarEventChip, {
|
|
144
|
+
event: ev,
|
|
145
|
+
onClick: onEventClick
|
|
146
|
+
}, ev.id)), onAddItem && /* @__PURE__ */ jsxs("button", {
|
|
147
|
+
type: "button",
|
|
148
|
+
onClick: (e) => {
|
|
149
|
+
e.stopPropagation();
|
|
150
|
+
onAddItem(day);
|
|
151
|
+
},
|
|
152
|
+
className: "wwc:flex wwc:w-full wwc:items-center wwc:gap-1.5 wwc:rounded wwc:border wwc:border-border wwc:bg-card wwc:px-1.5 wwc:py-1 wwc:text-xs wwc:text-muted-foreground wwc:opacity-0 wwc:transition-opacity wwc:hover:bg-accent/40 wwc:hover:text-foreground wwc:group-hover:opacity-100 wwc:focus-visible:opacity-100",
|
|
153
|
+
children: [/* @__PURE__ */ jsx(Plus, { className: "wwc:h-3 wwc:w-3" }), addItemLabel]
|
|
154
|
+
})]
|
|
155
|
+
})]
|
|
156
|
+
}, day.toISOString());
|
|
157
|
+
})
|
|
158
|
+
})
|
|
159
|
+
]
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
//#endregion
|
|
163
|
+
export { CalendarView };
|
|
164
|
+
|
|
165
|
+
//# sourceMappingURL=calendar-view.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar-view.mjs","names":[],"sources":["../src/calendar-view.tsx"],"sourcesContent":["import {cn} from \"@corensystem/coren-utils\";\nimport {\n\taddMonths,\n\teachDayOfInterval,\n\tendOfMonth,\n\tendOfWeek,\n\tformat,\n\tisSameMonth,\n\tstartOfDay,\n\tstartOfMonth,\n\tstartOfWeek,\n\tsubMonths,\n} from \"date-fns\";\nimport {ChevronLeft, ChevronRight, Plus} from \"lucide-react\";\nimport * as React from \"react\";\n\nimport {Button} from \"./button\";\n\nexport type CalendarEventTone = \"neutral\" | \"primary\" | \"success\" | \"warning\" | \"danger\" | \"info\";\n\nconst toneBorderClass: Record<CalendarEventTone, string> = {\n\tneutral: \"wwc:border-l-muted-foreground\",\n\tprimary: \"wwc:border-l-primary\",\n\tsuccess: \"wwc:border-l-emerald-500\",\n\twarning: \"wwc:border-l-amber-500\",\n\tdanger: \"wwc:border-l-destructive\",\n\tinfo: \"wwc:border-l-sky-500\",\n};\n\nexport interface CalendarEvent {\n\tid: string;\n\t/** Date the event is anchored on. */\n\tdate: Date;\n\t/** Optional short identifier rendered before the title (e.g. \"ASMOB-11\"). */\n\tidentifier?: string;\n\t/** Event title. */\n\ttitle: string;\n\t/** Visual tone — drives the left border color. Defaults to \"neutral\". */\n\ttone?: CalendarEventTone;\n}\n\nexport interface CalendarViewProps {\n\t/** Controls which month is visible. Pair with onMonthChange. */\n\tmonth?: Date;\n\t/** Initial month for uncontrolled use. Defaults to today's month. */\n\tdefaultMonth?: Date;\n\t/** Fires when the user navigates to a new month via the prev / next / Today buttons. */\n\tonMonthChange?: (month: Date) => void;\n\n\t/** Day to highlight as \"today\". Defaults to new Date(). */\n\ttoday?: Date;\n\n\t/** Day-of-week the grid starts on. Defaults to Monday (1). */\n\tweekStartsOn?: 0 | 1 | 2 | 3 | 4 | 5 | 6;\n\n\tevents?: CalendarEvent[];\n\n\t/** Fires when an empty area inside a day cell is clicked. */\n\tonDayClick?: (date: Date) => void;\n\t/** Fires when an event chip is clicked. */\n\tonEventClick?: (event: CalendarEvent) => void;\n\t/**\n\t * When set, an \"+ Add work item\" affordance appears in each cell on hover.\n\t * Receives the date the action was triggered on.\n\t */\n\tonAddItem?: (date: Date) => void;\n\t/** Label for the add-item affordance. Defaults to \"Add work item\". */\n\taddItemLabel?: string;\n\n\t/**\n\t * Slot rendered on the right side of the header (next to \"Today\"). Use for\n\t * an Options dropdown, view-mode switcher, etc.\n\t */\n\theaderActions?: React.ReactNode;\n\n\tclassName?: string;\n}\n\nfunction CalendarEventChip({event, onClick}: {event: CalendarEvent; onClick?: (event: CalendarEvent) => void}) {\n\tconst tone = event.tone ?? \"neutral\";\n\tconst interactive = !!onClick;\n\treturn (\n\t\t<button\n\t\t\ttype=\"button\"\n\t\t\tonClick={\n\t\t\t\tinteractive\n\t\t\t\t\t? (e) => {\n\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\tonClick(event);\n\t\t\t\t\t\t}\n\t\t\t\t\t: undefined\n\t\t\t}\n\t\t\tclassName={cn(\n\t\t\t\t\"wwc:flex wwc:w-full wwc:items-center wwc:gap-1.5 wwc:rounded wwc:border wwc:border-border wwc:border-l-[3px] wwc:bg-card wwc:px-1.5 wwc:py-1 wwc:text-left wwc:text-xs wwc:leading-tight wwc:text-foreground\",\n\t\t\t\tinteractive && \"wwc:hover:bg-accent/50 wwc:transition-colors\",\n\t\t\t\ttoneBorderClass[tone],\n\t\t\t)}\n\t\t>\n\t\t\t{event.identifier && <span className=\"wwc:font-medium wwc:text-muted-foreground\">{event.identifier}</span>}\n\t\t\t<span className=\"wwc:truncate\">{event.title}</span>\n\t\t</button>\n\t);\n}\n\nexport function CalendarView({\n\tmonth,\n\tdefaultMonth,\n\tonMonthChange,\n\ttoday = new Date(),\n\tweekStartsOn = 1,\n\tevents = [],\n\tonDayClick,\n\tonEventClick,\n\tonAddItem,\n\taddItemLabel = \"Add work item\",\n\theaderActions,\n\tclassName,\n}: CalendarViewProps) {\n\tconst isControlled = month !== undefined;\n\tconst [internalMonth, setInternalMonth] = React.useState<Date>(() => startOfMonth(defaultMonth ?? new Date()));\n\tconst currentMonth = isControlled ? startOfMonth(month) : internalMonth;\n\n\tconst setMonth = React.useCallback(\n\t\t(next: Date) => {\n\t\t\tconst normalized = startOfMonth(next);\n\t\t\tif (!isControlled) setInternalMonth(normalized);\n\t\t\tonMonthChange?.(normalized);\n\t\t},\n\t\t[isControlled, onMonthChange],\n\t);\n\n\tconst monthStart = startOfMonth(currentMonth);\n\tconst monthEnd = endOfMonth(currentMonth);\n\tconst gridStart = startOfWeek(monthStart, {weekStartsOn});\n\tconst gridEnd = endOfWeek(monthEnd, {weekStartsOn});\n\tconst days = React.useMemo(() => eachDayOfInterval({start: gridStart, end: gridEnd}), [gridStart, gridEnd]);\n\n\tconst weekdays = React.useMemo(() => {\n\t\tconst start = gridStart;\n\t\treturn Array.from({length: 7}, (_, i) => format(new Date(start.getTime() + i * 86400000), \"EEE\"));\n\t}, [gridStart]);\n\n\tconst eventsByDay = React.useMemo(() => {\n\t\tconst map = new Map<number, CalendarEvent[]>();\n\t\tfor (const ev of events) {\n\t\t\tconst key = startOfDay(ev.date).getTime();\n\t\t\t(map.get(key) || map.set(key, []).get(key)!).push(ev);\n\t\t}\n\t\treturn map;\n\t}, [events]);\n\n\tconst todayKey = startOfDay(today).getTime();\n\n\treturn (\n\t\t<div className={cn(\"wwc:flex wwc:flex-col wwc:rounded-xl wwc:border wwc:border-border wwc:bg-card\", className)}>\n\t\t\t{/* Header */}\n\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2 wwc:px-4 wwc:py-3\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\ticon\n\t\t\t\t\tclassName=\"wwc:h-7 wwc:w-7\"\n\t\t\t\t\tonClick={() => setMonth(subMonths(currentMonth, 1))}\n\t\t\t\t\taria-label=\"Previous month\"\n\t\t\t\t>\n\t\t\t\t\t<ChevronLeft className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t</Button>\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\ticon\n\t\t\t\t\tclassName=\"wwc:h-7 wwc:w-7\"\n\t\t\t\t\tonClick={() => setMonth(addMonths(currentMonth, 1))}\n\t\t\t\t\taria-label=\"Next month\"\n\t\t\t\t>\n\t\t\t\t\t<ChevronRight className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t</Button>\n\t\t\t\t<h2 className=\"wwc:ml-1 wwc:text-lg wwc:font-bold wwc:text-foreground\">{format(currentMonth, \"MMMM yyyy\")}</h2>\n\t\t\t\t<div className=\"wwc:flex-1\" />\n\t\t\t\t<Button variant=\"secondary\" size=\"sm\" className=\"wwc:h-7\" onClick={() => setMonth(today)}>\n\t\t\t\t\tToday\n\t\t\t\t</Button>\n\t\t\t\t{headerActions}\n\t\t\t</div>\n\n\t\t\t{/* Weekday header */}\n\t\t\t<div\n\t\t\t\tstyle={{display: \"grid\", gridTemplateColumns: \"repeat(7, minmax(0, 1fr))\"}}\n\t\t\t\tclassName=\"wwc:border-t wwc:border-border wwc:bg-muted/40\"\n\t\t\t>\n\t\t\t\t{weekdays.map((d) => (\n\t\t\t\t\t<div\n\t\t\t\t\t\tkey={d}\n\t\t\t\t\t\tclassName=\"wwc:border-r wwc:border-border wwc:px-3 wwc:py-2 wwc:text-sm wwc:text-muted-foreground last:wwc:border-r-0\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{d}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\t\t\t</div>\n\n\t\t\t{/* Day grid */}\n\t\t\t<div style={{display: \"grid\", gridTemplateColumns: \"repeat(7, minmax(0, 1fr))\", gridAutoRows: \"1fr\"}}>\n\t\t\t\t{days.map((day) => {\n\t\t\t\t\tconst inMonth = isSameMonth(day, currentMonth);\n\t\t\t\t\tconst isToday = startOfDay(day).getTime() === todayKey;\n\t\t\t\t\tconst isFirstOfMonth = day.getDate() === 1;\n\t\t\t\t\tconst dayEvents = eventsByDay.get(startOfDay(day).getTime()) ?? [];\n\t\t\t\t\tconst dayLabel = isFirstOfMonth ? format(day, \"MMM d\") : format(day, \"d\");\n\t\t\t\t\treturn (\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tkey={day.toISOString()}\n\t\t\t\t\t\t\trole={onDayClick ? \"button\" : undefined}\n\t\t\t\t\t\t\ttabIndex={onDayClick ? 0 : undefined}\n\t\t\t\t\t\t\tonClick={onDayClick ? () => onDayClick(day) : undefined}\n\t\t\t\t\t\t\tstyle={{minHeight: \"120px\"}}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\"wwc:group wwc:relative wwc:flex wwc:flex-col wwc:gap-1 wwc:border-r wwc:border-t wwc:border-border wwc:p-2 last:wwc:border-r-0\",\n\t\t\t\t\t\t\t\tonDayClick && \"wwc:cursor-pointer\",\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:justify-end\">\n\t\t\t\t\t\t\t\t{isToday ? (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName=\"wwc:flex wwc:h-6 wwc:min-w-6 wwc:items-center wwc:justify-center wwc:rounded-full wwc:bg-primary wwc:px-1.5 wwc:text-xs wwc:font-semibold wwc:text-primary-foreground\"\n\t\t\t\t\t\t\t\t\t\taria-current=\"date\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{dayLabel}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\t\"wwc:px-1 wwc:text-xs\",\n\t\t\t\t\t\t\t\t\t\t\tinMonth ? \"wwc:text-foreground\" : \"wwc:text-muted-foreground/60\",\n\t\t\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{dayLabel}\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:flex-col wwc:gap-1\">\n\t\t\t\t\t\t\t\t{dayEvents.map((ev) => (\n\t\t\t\t\t\t\t\t\t<CalendarEventChip key={ev.id} event={ev} onClick={onEventClick} />\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t\t{onAddItem && (\n\t\t\t\t\t\t\t\t\t<button\n\t\t\t\t\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\t\t\t\t\tonClick={(e) => {\n\t\t\t\t\t\t\t\t\t\t\te.stopPropagation();\n\t\t\t\t\t\t\t\t\t\t\tonAddItem(day);\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tclassName=\"wwc:flex wwc:w-full wwc:items-center wwc:gap-1.5 wwc:rounded wwc:border wwc:border-border wwc:bg-card wwc:px-1.5 wwc:py-1 wwc:text-xs wwc:text-muted-foreground wwc:opacity-0 wwc:transition-opacity wwc:hover:bg-accent/40 wwc:hover:text-foreground wwc:group-hover:opacity-100 wwc:focus-visible:opacity-100\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t<Plus className=\"wwc:h-3 wwc:w-3\" />\n\t\t\t\t\t\t\t\t\t\t{addItemLabel}\n\t\t\t\t\t\t\t\t\t</button>\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t);\n\t\t\t\t})}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import * as React from "react";
|
|
2
|
+
import { DayPicker } from "react-day-picker";
|
|
3
|
+
//#region src/calendar.d.ts
|
|
4
|
+
export type CalendarProps = React.ComponentProps<typeof DayPicker> & {
|
|
5
|
+
/** Visual density. `"compact"` shrinks day cells, text, nav, and spacing. */
|
|
6
|
+
size?: "default" | "compact";
|
|
7
|
+
};
|
|
8
|
+
/** Date picker calendar built on react-day-picker with single, range, and multi-select modes. */
|
|
9
|
+
declare function Calendar({ className, classNames, showOutsideDays, size, ...props }: CalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare namespace Calendar {
|
|
11
|
+
var displayName: string;
|
|
12
|
+
}
|
|
13
|
+
//#endregion
|
|
14
|
+
export { Calendar };
|
|
15
|
+
//# sourceMappingURL=calendar.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.d.mts","names":[],"sources":["../src/calendar.tsx"],"mappings":";;;YAUY,gBAAgB,MAAM,sBAAsB;;EAEvD;;;iBAoBQ,WAAU,WAAW,YAAY,iBAAwB,SAAqB,SAAQ,4CAAa,IAAA;kBAAnG;MAAA"}
|