@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":"core-admin-panel.mjs","names":["UsersIcon"],"sources":["../../src/pages/core-admin-panel.tsx"],"sourcesContent":["import type {ColumnDef} from \"@tanstack/react-table\";\n\nimport {cn} from \"@corensystem/coren-utils\";\nimport {\n\tArchive,\n\tArchiveRestore,\n\tArrowRight,\n\tBan,\n\tBuilding2,\n\tChevronLeft,\n\tCopy,\n\tExternalLink,\n\tEye,\n\tFolderKanban,\n\tHome,\n\tMapPin,\n\tMoreHorizontal,\n\tPencil,\n\tPlus,\n\tSave,\n\tSearch,\n\tShieldCheck,\n\tUpload,\n\tUserCheck,\n\tUsers as UsersIcon,\n} from \"lucide-react\";\nimport {useEffect, useMemo, useRef, useState} from \"react\";\n\nimport {\n\tAlertDialog,\n\tAlertDialogAction,\n\tAlertDialogCancel,\n\tAlertDialogContent,\n\tAlertDialogDescription,\n\tAlertDialogFooter,\n\tAlertDialogHeader,\n\tAlertDialogTitle,\n} from \"../alert-dialog\";\nimport {Badge} from \"../badge\";\nimport {Button} from \"../button\";\nimport {Card, CardContent, CardDescription, CardHeader, CardTitle} from \"../card\";\nimport {Checkbox} from \"../checkbox\";\nimport {Combobox} from \"../combobox\";\nimport {DataTable, DataTableColumnHeader} from \"../data-table\";\nimport {DatePicker} from \"../date-picker\";\nimport {\n\tDialog,\n\tDialogContent,\n\tDialogDescription,\n\tDialogFooter,\n\tDialogHeader,\n\tDialogTitle,\n\tDialogTrigger,\n} from \"../dialog\";\nimport {DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger} from \"../dropdown-menu\";\nimport {Empty} from \"../empty\";\nimport {FormActionBar} from \"../form-action-bar\";\nimport {Input} from \"../input\";\nimport {Label} from \"../label\";\nimport {MultiSelect} from \"../multi-select\";\nimport {CoreAppSidebar, type SidebarNavGroup} from \"../navigation/core-app-sidebar\";\nimport {CoreAppTopBar} from \"../navigation/core-app-top-bar\";\nimport {\n\tPermissionMatrix,\n\ttype PermissionMatrixCategory,\n\ttype PermissionMatrixGroup,\n\ttype PermissionMatrixPermission,\n} from \"../permission-matrix\";\nimport {PropertyList, PropertyRow} from \"../property-list\";\nimport {SectionPanel} from \"../section-panel\";\nimport {Select, SelectContent, SelectItem, SelectTrigger, SelectValue} from \"../select\";\nimport {Skeleton} from \"../skeleton\";\nimport {Toaster, toast} from \"../sonner\";\nimport {Tabs, TabsList, TabsTrigger} from \"../tabs\";\nimport {ARAMCO_LOGO, DIRIYAH_LOGO, NEOM_LOGO, QIDDIYA_LOGO, RED_SEA_LOGO, ROSHN_LOGO} from \"./org-logos\";\n\n// Admin Panel — a full app-shell template: CoreAppSidebar + CoreAppTopBar around three admin surfaces\n// (Projects, Permissions, Users) selected from the sidebar.\n\ntype TabId = \"home\" | \"projects\" | \"permissions\" | \"users\";\n\nconst NAV_ITEMS: {id: TabId; label: string; icon: React.ComponentType<{className?: string}>}[] = [\n\t{id: \"home\", label: \"Overview\", icon: Home},\n\t{id: \"projects\", label: \"Projects\", icon: FolderKanban},\n\t{id: \"permissions\", label: \"Roles\", icon: ShieldCheck},\n\t{id: \"users\", label: \"Users\", icon: UsersIcon},\n];\n\nconst ADMIN_GROUPS: SidebarNavGroup[] = [{items: NAV_ITEMS}];\n\nconst ADD_LABEL: Record<TabId, string> = {\n\thome: \"\",\n\tprojects: \"New project\",\n\tpermissions: \"New role\",\n\tusers: \"Invite user\",\n};\n\n// ── Projects ──\n\ntype Project = {\n\tid: string;\n\tname: string;\n\tprojectType: string;\n\tcontractType: string;\n\tcontractDuration: string;\n\tstartDate: string;\n\tcountry: string;\n\ttimeZone: string;\n\tcreatedAt: string;\n\tcreatedBy: string;\n\tstatus: \"Active\" | \"Archived\";\n};\n\nconst RIYADH_TZ = \"Asia/Riyadh UTC +03:00\";\nconst KSA = \"Saudi Arabia\";\n\nconst PROJECTS: Project[] = [\n\t{\n\t\tid: \"p1\",\n\t\tstatus: \"Active\",\n\t\tname: \"ISSD_BI-10-13202\",\n\t\tprojectType: \"-\",\n\t\tcontractType: \"-\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"12 Jan 2023\",\n\t\tcreatedBy: \"Layla Nasser\",\n\t},\n\t{\n\t\tid: \"p2\",\n\t\tstatus: \"Active\",\n\t\tname: \"Fadhili GIP PKG 1\",\n\t\tprojectType: \"-\",\n\t\tcontractType: \"-\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"03 Feb 2023\",\n\t\tcreatedBy: \"Ahmed Raza\",\n\t},\n\t{\n\t\tid: \"p3\",\n\t\tstatus: \"Active\",\n\t\tname: \"Jazan Refinery-Boiler Pkg.\",\n\t\tprojectType: \"Refinery\",\n\t\tcontractType: \"-\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"21 Feb 2023\",\n\t\tcreatedBy: \"Maya Khan\",\n\t},\n\t{\n\t\tid: \"p4\",\n\t\tstatus: \"Active\",\n\t\tname: \"Khurais\",\n\t\tprojectType: \"-\",\n\t\tcontractType: \"-\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"09 Mar 2023\",\n\t\tcreatedBy: \"Sara Idris\",\n\t},\n\t{\n\t\tid: \"p5\",\n\t\tstatus: \"Active\",\n\t\tname: \"Phase-3, Package-8\",\n\t\tprojectType: \"Pipelines\",\n\t\tcontractType: \"Remeasurable\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"28 Mar 2023\",\n\t\tcreatedBy: \"Omar Farouk\",\n\t},\n\t{\n\t\tid: \"p6\",\n\t\tstatus: \"Archived\",\n\t\tname: \"Jafurah-Phase 2\",\n\t\tprojectType: \"Infrastructure\",\n\t\tcontractType: \"-\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"14 Apr 2023\",\n\t\tcreatedBy: \"Layla Nasser\",\n\t},\n\t{\n\t\tid: \"p7\",\n\t\tstatus: \"Active\",\n\t\tname: \"SRU_Yanbu_Refinery\",\n\t\tprojectType: \"Refinery\",\n\t\tcontractType: \"Cost Plus\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"02 May 2023\",\n\t\tcreatedBy: \"Ahmed Raza\",\n\t},\n\t{\n\t\tid: \"p8\",\n\t\tstatus: \"Active\",\n\t\tname: \"Turaif\",\n\t\tprojectType: \"-\",\n\t\tcontractType: \"-\",\n\t\tcontractDuration: \"-\",\n\t\tstartDate: \"-\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"19 May 2023\",\n\t\tcreatedBy: \"Rania Salem\",\n\t},\n\t{\n\t\tid: \"p9\",\n\t\tstatus: \"Active\",\n\t\tname: \"Shaybah DPCU\",\n\t\tprojectType: \"Airports\",\n\t\tcontractType: \"Lump Sum\",\n\t\tcontractDuration: \"1000 Days\",\n\t\tstartDate: \"06/11/2023\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"01 Jun 2023\",\n\t\tcreatedBy: \"Maya Khan\",\n\t},\n\t{\n\t\tid: \"p10\",\n\t\tstatus: \"Active\",\n\t\tname: \"Sinopec\",\n\t\tprojectType: \"Airports\",\n\t\tcontractType: \"Lump Sum\",\n\t\tcontractDuration: \"1000 Days\",\n\t\tstartDate: \"06/11/2023\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"16 Jun 2023\",\n\t\tcreatedBy: \"Omar Farouk\",\n\t},\n\t{\n\t\tid: \"p11\",\n\t\tstatus: \"Active\",\n\t\tname: \"JC3C4\",\n\t\tprojectType: \"Airports\",\n\t\tcontractType: \"Lump Sum\",\n\t\tcontractDuration: \"1000 Days\",\n\t\tstartDate: \"06/11/2023\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"30 Jun 2023\",\n\t\tcreatedBy: \"Sara Idris\",\n\t},\n\t{\n\t\tid: \"p12\",\n\t\tstatus: \"Archived\",\n\t\tname: \"JTE-5250-300\",\n\t\tprojectType: \"Airports\",\n\t\tcontractType: \"Lump Sum\",\n\t\tcontractDuration: \"1000 Days\",\n\t\tstartDate: \"06/11/2023\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"12 Jul 2023\",\n\t\tcreatedBy: \"Layla Nasser\",\n\t},\n\t{\n\t\tid: \"p13\",\n\t\tstatus: \"Archived\",\n\t\tname: \"SITP\",\n\t\tprojectType: \"Airports\",\n\t\tcontractType: \"Lump Sum\",\n\t\tcontractDuration: \"1000 Days\",\n\t\tstartDate: \"06/11/2023\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"25 Jul 2023\",\n\t\tcreatedBy: \"Rania Salem\",\n\t},\n\t{\n\t\tid: \"p14\",\n\t\tstatus: \"Archived\",\n\t\tname: \"Riyas\",\n\t\tprojectType: \"Airports\",\n\t\tcontractType: \"Lump Sum\",\n\t\tcontractDuration: \"1000 Days\",\n\t\tstartDate: \"06/11/2023\",\n\t\tcountry: KSA,\n\t\ttimeZone: RIYADH_TZ,\n\t\tcreatedAt: \"08 Aug 2023\",\n\t\tcreatedBy: \"Ahmed Raza\",\n\t},\n];\n\n// Integration modules that can be toggled per project.\ntype ModuleDef = {id: string; label: string; enabled: boolean};\nconst MODULES: ModuleDef[] = [\n\t{id: \"drone\", label: \"Drone Deploy\", enabled: false},\n\t{id: \"pcc\", label: \"PCC\", enabled: false},\n\t{id: \"clnc_visit\", label: \"Clinic Visit\", enabled: true},\n\t{id: \"clnc_dashboard\", label: \"Clinic Dashboard\", enabled: true},\n\t{id: \"clnc_settings\", label: \"Clinic Settings\", enabled: true},\n\t{id: \"clnc_worker\", label: \"Clinic Worker\", enabled: true},\n\t{id: \"clnc_doctor\", label: \"Clinic Doctor\", enabled: true},\n\t{id: \"video_wall\", label: \"Video Wall\", enabled: true},\n\t{id: \"playground\", label: \"Playground\", enabled: false},\n\t{id: \"progress_capture\", label: \"Progress Capture\", enabled: false},\n\t{id: \"siteguard\", label: \"Siteguard\", enabled: true},\n\t{id: \"payment\", label: \"Payment\", enabled: false},\n\t{id: \"weatherstation\", label: \"Weather Station\", enabled: false},\n\t{id: \"equipments_tracker\", label: \"Equipment Tracker\", enabled: false},\n\t{id: \"site_support\", label: \"Site Support\", enabled: false},\n\t{id: \"equipments\", label: \"Equipments\", enabled: false},\n\t{id: \"sitesup_issues\", label: \"Site Issues\", enabled: true},\n\t{id: \"sitesup_teams\", label: \"Site Teams\", enabled: true},\n\t{id: \"sitesup_reports\", label: \"Site Reports\", enabled: true},\n\t{id: \"sitesup_playbooks\", label: \"Site Playbooks\", enabled: true},\n\t{id: \"journeys\", label: \"Journeys\", enabled: false},\n\t{id: \"sitesup_automation\", label: \"Site Automation\", enabled: false},\n\t{id: \"ticket_manager\", label: \"Ticket Manager\", enabled: false},\n\t{id: \"anchor_planner\", label: \"Anchor Planner\", enabled: false},\n];\n\nconst muted = (v: string) => (\n\t<span className={v === \"-\" ? \"wwc:text-muted-foreground/50\" : \"wwc:text-muted-foreground\"}>{v}</span>\n);\n\nfunction makeProjectColumns(\n\tonOpen: (p: Project) => void,\n\tonArchive: (p: Project) => void,\n\tonRestore: (p: Project) => void,\n): ColumnDef<Project>[] {\n\treturn [\n\t\t{\n\t\t\taccessorKey: \"name\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Name\" />,\n\t\t\tcell: ({row}) => (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => onOpen(row.original)}\n\t\t\t\t\tclassName=\"wwc:text-left wwc:font-medium wwc:underline wwc:underline-offset-2 wwc:transition-colors wwc:hover:text-primary\"\n\t\t\t\t>\n\t\t\t\t\t{row.original.name}\n\t\t\t\t</button>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"projectType\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Project Type\" />,\n\t\t\tcell: ({row}) => muted(row.original.projectType),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"contractType\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Contract Type\" />,\n\t\t\tcell: ({row}) => muted(row.original.contractType),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"contractDuration\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Contract Duration\" />,\n\t\t\tcell: ({row}) => muted(row.original.contractDuration),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"startDate\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Start Date\" />,\n\t\t\tcell: ({row}) => muted(row.original.startDate),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"country\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Country\" />,\n\t\t\tcell: ({row}) => <span>{row.original.country}</span>,\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"timeZone\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Time Zone\" />,\n\t\t\tcell: ({row}) => muted(row.original.timeZone),\n\t\t},\n\t\t{\n\t\t\tid: \"actions\",\n\t\t\tenableSorting: false,\n\t\t\tmeta: {cellClassName: \"wwc:w-px wwc:max-w-none wwc:overflow-visible wwc:whitespace-nowrap wwc:text-right\"},\n\t\t\tcell: ({row}) => (\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t\t\t<Button variant=\"ghost\" icon aria-label=\"Row actions\" className=\"wwc:h-7 wwc:w-7 wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t<MoreHorizontal className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t<DropdownMenuContent align=\"end\" className=\"wwc:w-48\">\n\t\t\t\t\t\t<DropdownMenuItem onClick={() => onOpen(row.original)}>\n\t\t\t\t\t\t\t<Eye className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\tView details\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t<DropdownMenuItem onClick={() => window.open(\"https://core.com\", \"_blank\", \"noopener\")}>\n\t\t\t\t\t\t\t<ExternalLink className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\tOpen project\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t{row.original.status === \"Archived\" ? (\n\t\t\t\t\t\t\t<DropdownMenuItem onClick={() => onRestore(row.original)}>\n\t\t\t\t\t\t\t\t<ArchiveRestore className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\tRestore project\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\tonClick={() => onArchive(row.original)}\n\t\t\t\t\t\t\t\tclassName=\"wwc:text-destructive focus:wwc:text-destructive\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<Archive className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\tArchive project\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t),\n\t\t},\n\t];\n}\n\nconst moduleDefaults = (): Record<string, boolean> => Object.fromEntries(MODULES.map((m) => [m.id, m.enabled]));\n\n// Option lists for the editable project fields.\nconst PROJECT_TYPES = [\"Buildings\", \"Infrastructure\", \"Refinery\", \"Pipelines\", \"Roads\", \"Airports\", \"Industrial\"];\nconst CONTRACT_TYPES = [\"Lump Sum\", \"Cost Plus\", \"Remeasurable\", \"Unit Price\", \"Turnkey (EPC)\"];\nconst COUNTRIES = [\"Saudi Arabia\", \"United Arab Emirates\", \"Qatar\", \"Kuwait\", \"Bahrain\", \"Oman\", \"Egypt\"];\nconst TIMEZONES = [\n\t\"Asia/Riyadh UTC +03:00\",\n\t\"Asia/Dubai UTC +04:00\",\n\t\"Asia/Qatar UTC +03:00\",\n\t\"Asia/Kuwait UTC +03:00\",\n\t\"Asia/Bahrain UTC +03:00\",\n\t\"Asia/Muscat UTC +04:00\",\n\t\"Africa/Cairo UTC +02:00\",\n];\n\n// A country's default (first) time zone — picking a country auto-selects it in the project form.\nconst COUNTRY_TIMEZONE: Record<string, string> = {\n\t\"Saudi Arabia\": \"Asia/Riyadh UTC +03:00\",\n\t\"United Arab Emirates\": \"Asia/Dubai UTC +04:00\",\n\tQatar: \"Asia/Qatar UTC +03:00\",\n\tKuwait: \"Asia/Kuwait UTC +03:00\",\n\tBahrain: \"Asia/Bahrain UTC +03:00\",\n\tOman: \"Asia/Muscat UTC +04:00\",\n\tEgypt: \"Africa/Cairo UTC +02:00\",\n};\n\n// The editable subset of a project — kept as an all-strings draft so dirty-tracking is a plain JSON compare.\ntype ProjectFields = {\n\tname: string;\n\tprojectType: string;\n\tcontractType: string;\n\tcontractDuration: string; // number of days, without the \"Days\" suffix\n\tstartDate: string; // DD/MM/YYYY\n\tcountry: string;\n\ttimeZone: string;\n};\n\nconst EMPTY_FIELDS: ProjectFields = {\n\tname: \"\",\n\tprojectType: \"\",\n\tcontractType: \"\",\n\tcontractDuration: \"\",\n\tstartDate: \"\",\n\tcountry: \"\",\n\ttimeZone: \"\",\n};\n\nconst unDash = (v: string) => (v === \"-\" ? \"\" : v);\n\nconst fieldsFromProject = (p: Project): ProjectFields => ({\n\tname: p.name,\n\tprojectType: unDash(p.projectType),\n\tcontractType: unDash(p.contractType),\n\tcontractDuration: unDash(p.contractDuration).replace(/\\s*Days$/i, \"\"),\n\tstartDate: unDash(p.startDate),\n\tcountry: unDash(p.country),\n\ttimeZone: unDash(p.timeZone),\n});\n\nconst pad2 = (n: number) => String(n).padStart(2, \"0\");\nconst parseDMY = (s: string): Date | undefined => {\n\tconst m = /^(\\d{1,2})\\/(\\d{1,2})\\/(\\d{4})$/.exec(s.trim());\n\tif (!m) return undefined;\n\treturn new Date(Number(m[3]), Number(m[2]) - 1, Number(m[1]));\n};\nconst formatDMY = (d: Date) => `${pad2(d.getDate())}/${pad2(d.getMonth() + 1)}/${d.getFullYear()}`;\n\n// A labelled select used across the editable project fields.\nfunction FieldSelect({\n\tvalue,\n\tonChange,\n\tplaceholder,\n\toptions,\n\ttriggerClassName = \"wwc:ml-auto wwc:w-full wwc:max-w-sm\",\n}: {\n\tvalue: string;\n\tonChange: (v: string) => void;\n\tplaceholder: string;\n\toptions: string[];\n\ttriggerClassName?: string;\n}) {\n\treturn (\n\t\t<Select value={value || undefined} onValueChange={onChange}>\n\t\t\t<SelectTrigger className={triggerClassName}>\n\t\t\t\t<SelectValue placeholder={placeholder} />\n\t\t\t</SelectTrigger>\n\t\t\t<SelectContent>\n\t\t\t\t{options.map((o) => (\n\t\t\t\t\t<SelectItem key={o} value={o}>\n\t\t\t\t\t\t{o}\n\t\t\t\t\t</SelectItem>\n\t\t\t\t))}\n\t\t\t</SelectContent>\n\t\t</Select>\n\t);\n}\n\nfunction ProjectForm({\n\tmode,\n\tproject,\n\tdraft,\n\tonField,\n\terrors,\n\tmodules,\n\tonToggleModule,\n\tonBack,\n}: {\n\tmode: \"edit\" | \"create\";\n\tproject: Project | null;\n\tdraft: ProjectFields;\n\tonField: <K extends keyof ProjectFields>(key: K, value: ProjectFields[K]) => void;\n\terrors: Record<string, boolean>;\n\tmodules: Record<string, boolean>;\n\tonToggleModule: (id: string, value: boolean) => void;\n\tonBack: () => void;\n}) {\n\tconst enabledCount = MODULES.filter((m) => modules[m.id]).length;\n\tconst [moduleSearch, setModuleSearch] = useState(\"\");\n\tconst filteredModules = MODULES.filter((m) => m.label.toLowerCase().includes(moduleSearch.trim().toLowerCase()));\n\n\treturn (\n\t\t<div className=\"wwc:space-y-6\">\n\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={onBack} className=\"wwc:-ml-2\">\n\t\t\t\t<ChevronLeft className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\tBack to projects\n\t\t\t</Button>\n\n\t\t\t<div>\n\t\t\t\t<h1 className=\"wwc:text-2xl wwc:font-bold wwc:tracking-tight\">\n\t\t\t\t\t{mode === \"create\" ? \"New project\" : project?.name}\n\t\t\t\t</h1>\n\t\t\t\t<p className=\"wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t{mode === \"create\"\n\t\t\t\t\t\t? \"Fill in the details below to create a project.\"\n\t\t\t\t\t\t: `Created ${project?.createdAt} by ${project?.createdBy}`}\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t{/* Project details — an editable form card. */}\n\t\t\t<Card className=\"wwc:shadow-none\">\n\t\t\t\t<CardHeader className=\"wwc:pb-2\">\n\t\t\t\t\t<CardTitle className=\"wwc:text-base\">Project details</CardTitle>\n\t\t\t\t\t<CardDescription>Profile and metadata for this project.</CardDescription>\n\t\t\t\t</CardHeader>\n\t\t\t\t<CardContent>\n\t\t\t\t\t<PropertyList labelWidth=\"12rem\">\n\t\t\t\t\t\t<PropertyRow label=\"Project name\" required align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\tvalue={draft.name}\n\t\t\t\t\t\t\t\t\tonChange={(e) => onField(\"name\", e.target.value)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Project name\"\n\t\t\t\t\t\t\t\t\taria-invalid={!!errors.name || !!errors.nameDup}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\"wwc:w-full\",\n\t\t\t\t\t\t\t\t\t\t(errors.name || errors.nameDup) && \"wwc:border-destructive wwc:focus-visible:ring-destructive\",\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{errors.name ? (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Project name is required.</p>\n\t\t\t\t\t\t\t\t) : errors.nameDup ? (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">\n\t\t\t\t\t\t\t\t\t\tA project with this name already exists.\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Project type\">\n\t\t\t\t\t\t\t<FieldSelect\n\t\t\t\t\t\t\t\tvalue={draft.projectType}\n\t\t\t\t\t\t\t\tonChange={(v) => onField(\"projectType\", v)}\n\t\t\t\t\t\t\t\tplaceholder=\"Choose type\"\n\t\t\t\t\t\t\t\toptions={PROJECT_TYPES}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Contract type\">\n\t\t\t\t\t\t\t<FieldSelect\n\t\t\t\t\t\t\t\tvalue={draft.contractType}\n\t\t\t\t\t\t\t\tonChange={(v) => onField(\"contractType\", v)}\n\t\t\t\t\t\t\t\tplaceholder=\"Select contract type\"\n\t\t\t\t\t\t\t\toptions={CONTRACT_TYPES}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Contract duration\" align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2\">\n\t\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\t\ttype=\"number\"\n\t\t\t\t\t\t\t\t\t\tmin={1}\n\t\t\t\t\t\t\t\t\t\tstep={1}\n\t\t\t\t\t\t\t\t\t\tvalue={draft.contractDuration}\n\t\t\t\t\t\t\t\t\t\tonChange={(e) => onField(\"contractDuration\", e.target.value)}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Duration\"\n\t\t\t\t\t\t\t\t\t\taria-invalid={errors.duration}\n\t\t\t\t\t\t\t\t\t\tclassName={cn(errors.duration && \"wwc:border-destructive wwc:focus-visible:ring-destructive\")}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t<span className=\"wwc:shrink-0 wwc:text-sm wwc:text-muted-foreground\">Days</span>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{errors.duration && (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">\n\t\t\t\t\t\t\t\t\t\tDuration must be a positive whole number of days.\n\t\t\t\t\t\t\t\t\t</p>\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</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Start date\" align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<div className={cn(errors.startDate && \"wwc:rounded-md wwc:ring-1 wwc:ring-destructive\")}>\n\t\t\t\t\t\t\t\t\t<DatePicker\n\t\t\t\t\t\t\t\t\t\tdate={draft.startDate ? parseDMY(draft.startDate) : undefined}\n\t\t\t\t\t\t\t\t\t\tonDateChange={(d) => onField(\"startDate\", d ? formatDMY(d) : \"\")}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Choose date\"\n\t\t\t\t\t\t\t\t\t\tclassName=\"wwc:w-full\"\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{errors.startDate && (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Start date can't be in the future.</p>\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</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Country\" required align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<div className={cn(errors.country && \"wwc:rounded-md wwc:ring-1 wwc:ring-destructive\")}>\n\t\t\t\t\t\t\t\t\t<FieldSelect\n\t\t\t\t\t\t\t\t\t\tvalue={draft.country}\n\t\t\t\t\t\t\t\t\t\tonChange={(v) => {\n\t\t\t\t\t\t\t\t\t\t\tonField(\"country\", v);\n\t\t\t\t\t\t\t\t\t\t\t// Picking a country auto-selects its default time zone.\n\t\t\t\t\t\t\t\t\t\t\tonField(\"timeZone\", COUNTRY_TIMEZONE[v] ?? \"\");\n\t\t\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Select country\"\n\t\t\t\t\t\t\t\t\t\toptions={COUNTRIES}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{errors.country && <p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Country is required.</p>}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Time zone\" required align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<div className={cn(errors.timeZone && \"wwc:rounded-md wwc:ring-1 wwc:ring-destructive\")}>\n\t\t\t\t\t\t\t\t\t<FieldSelect\n\t\t\t\t\t\t\t\t\t\tvalue={draft.timeZone}\n\t\t\t\t\t\t\t\t\t\tonChange={(v) => onField(\"timeZone\", v)}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"Choose time zone\"\n\t\t\t\t\t\t\t\t\t\toptions={TIMEZONES}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{errors.timeZone && (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Time zone is required.</p>\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</PropertyRow>\n\t\t\t\t\t\t{mode === \"edit\" && project ? (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<PropertyRow label=\"Created at\">\n\t\t\t\t\t\t\t\t\t<span className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">{project.createdAt}</span>\n\t\t\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t\t\t<PropertyRow label=\"Created by\">\n\t\t\t\t\t\t\t\t\t<span className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">{project.createdBy}</span>\n\t\t\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</PropertyList>\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\n\t\t\t{/* Module selection — a searchable list below the details card (scales to many modules). */}\n\t\t\t<SectionPanel\n\t\t\t\ttitle=\"Project Integrations\"\n\t\t\t\tcount={`${enabledCount}/${MODULES.length}`}\n\t\t\t\tbodyClassName=\"wwc:divide-y wwc:divide-border\"\n\t\t\t\taction={\n\t\t\t\t\t<div className=\"wwc:relative wwc:w-56\">\n\t\t\t\t\t\t<Search className=\"wwc:absolute wwc:left-2.5 wwc:top-1/2 wwc:h-3.5 wwc:w-3.5 wwc:-translate-y-1/2 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tvalue={moduleSearch}\n\t\t\t\t\t\t\tonChange={(e) => setModuleSearch(e.target.value)}\n\t\t\t\t\t\t\tplaceholder=\"Search modules…\"\n\t\t\t\t\t\t\tclassName=\"wwc:h-8 wwc:pl-8\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t\tempty={\n\t\t\t\t\t<div className=\"wwc:px-2 wwc:py-10 wwc:text-center wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t\tNo modules match “{moduleSearch}”.\n\t\t\t\t\t</div>\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{filteredModules.map((m) => (\n\t\t\t\t\t<label\n\t\t\t\t\t\tkey={m.id}\n\t\t\t\t\t\tclassName=\"wwc:flex wwc:cursor-pointer wwc:items-center wwc:gap-3 wwc:px-2 wwc:py-2.5 wwc:transition-colors wwc:hover:bg-muted/50\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<Checkbox checked={modules[m.id]} onCheckedChange={(v) => onToggleModule(m.id, !!v)} />\n\t\t\t\t\t\t<span className=\"wwc:text-sm\">{m.label}</span>\n\t\t\t\t\t</label>\n\t\t\t\t))}\n\t\t\t</SectionPanel>\n\t\t</div>\n\t);\n}\n\nconst PROJECT_STATUS_TABS = [\"Active\", \"Archived\"] as const;\n\nfunction ProjectsView({onOpen}: {onOpen: (p: Project) => void}) {\n\tconst [statusTab, setStatusTab] = useState<(typeof PROJECT_STATUS_TABS)[number]>(\"Active\");\n\tconst [pendingArchive, setPendingArchive] = useState<Project | null>(null);\n\tconst restore = (p: Project) => toast.success(`Project “${p.name}” restored`);\n\tconst columns = useMemo(() => makeProjectColumns(onOpen, setPendingArchive, restore), [onOpen]);\n\tconst data = PROJECTS.filter((p) => p.status === statusTab);\n\n\treturn (\n\t\t<div className=\"wwc:space-y-4\">\n\t\t\t<Tabs value={statusTab} onValueChange={(v) => setStatusTab(v as (typeof PROJECT_STATUS_TABS)[number])}>\n\t\t\t\t<TabsList>\n\t\t\t\t\t{PROJECT_STATUS_TABS.map((t) => (\n\t\t\t\t\t\t<TabsTrigger key={t} value={t}>\n\t\t\t\t\t\t\t{t}\n\t\t\t\t\t\t\t<span className=\"wwc:ml-1.5 wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t\t{PROJECTS.filter((p) => p.status === t).length}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</TabsTrigger>\n\t\t\t\t\t))}\n\t\t\t\t</TabsList>\n\t\t\t</Tabs>\n\t\t\t<DataTable\n\t\t\t\tkey={statusTab}\n\t\t\t\tcolumns={columns}\n\t\t\t\tdata={data}\n\t\t\t\tsearchKey=\"name\"\n\t\t\t\tsearchPlaceholder=\"Search projects…\"\n\t\t\t\trecordLabel=\"project\"\n\t\t\t\tpageSize={10}\n\t\t\t/>\n\t\t\t<ConfirmDialog\n\t\t\t\topen={!!pendingArchive}\n\t\t\t\ttitle=\"Archive project?\"\n\t\t\t\tdescription={\n\t\t\t\t\t<>\n\t\t\t\t\t\tThis will archive <span className=\"wwc:font-medium wwc:text-foreground\">{pendingArchive?.name}</span>. You\n\t\t\t\t\t\tcan restore it later from the Archived tab.\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tconfirmLabel=\"Archive\"\n\t\t\t\tdestructive\n\t\t\t\tonOpenChange={(o) => !o && setPendingArchive(null)}\n\t\t\t\tonConfirm={() => {\n\t\t\t\t\tif (pendingArchive) toast.success(`Project “${pendingArchive.name}” archived`);\n\t\t\t\t\tsetPendingArchive(null);\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\n// ── Users ──\n\ntype User = {\n\tid: string;\n\tname: string;\n\temail: string;\n\trole: string;\n\tstatus: \"Active\" | \"Deactivated\" | \"Invitation Sent\";\n\tlinkedPeople: string[];\n\tlastLogin: string;\n\tmobile: string;\n\tdialCode: string;\n\tprojects: string[];\n};\n\nconst USERS: User[] = [\n\t{\n\t\tid: \"u1\",\n\t\tstatus: \"Active\",\n\t\tname: \"NGMSA CLINIC\",\n\t\temail: \"Clinic.RNGL@ngmsa.com\",\n\t\trole: \"DIGITAL CLINIC\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"12 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234567\",\n\t\tprojects: [\"Khurais\"],\n\t},\n\t{\n\t\tid: \"u2\",\n\t\tstatus: \"Deactivated\",\n\t\tname: \"MALATESHA HARIJANA\",\n\t\temail: \"Malatesha.Hari@sinohydro.sa\",\n\t\trole: \"DIGITAL CLINIC\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"13 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234568\",\n\t\tprojects: [\"Riyas\"],\n\t},\n\t{\n\t\tid: \"u3\",\n\t\tstatus: \"Active\",\n\t\tname: \"RIYASCLINIC\",\n\t\temail: \"riyasclinic@tecnicasreunidas.es\",\n\t\trole: \"DIGITAL CLINIC\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"13 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234569\",\n\t\tprojects: [\"Riyas\"],\n\t},\n\t{\n\t\tid: \"u4\",\n\t\tstatus: \"Active\",\n\t\tname: \"Arafzal\",\n\t\temail: \"arafzal@tecnicasreunidas.es\",\n\t\trole: \"Site Viewer\",\n\t\tlinkedPeople: [\"Omar Farouk\"],\n\t\tlastLogin: \"12 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234570\",\n\t\tprojects: [\"SITP\", \"JC3C4\"],\n\t},\n\t{\n\t\tid: \"u5\",\n\t\tstatus: \"Invitation Sent\",\n\t\tname: \"Yves Uy\",\n\t\temail: \"zriyas@twareat.com\",\n\t\trole: \"DIGITAL CLINIC\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"13 Jul 2026\",\n\t\tdialCode: \"+971\",\n\t\tmobile: \"551234571\",\n\t\tprojects: [\"Turaif\"],\n\t},\n\t{\n\t\tid: \"u6\",\n\t\tstatus: \"Active\",\n\t\tname: \"Manikandan Lakshmanan\",\n\t\temail: \"mlakshmanan@tecnicasreunidas.es\",\n\t\trole: \"Site Viewer\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"07 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234572\",\n\t\tprojects: [\"JTE-5250-300\"],\n\t},\n\t{\n\t\tid: \"u7\",\n\t\tstatus: \"Deactivated\",\n\t\tname: \"Abdullah Ahmed Aldhafeeri\",\n\t\temail: \"dhafeerirngl@dsco.com.sa\",\n\t\trole: \"Crew Lead\",\n\t\tlinkedPeople: [\"John Dawson\"],\n\t\tlastLogin: \"07 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234573\",\n\t\tprojects: [\"Khurais\", \"Sinopec\"],\n\t},\n\t{\n\t\tid: \"u8\",\n\t\tstatus: \"Invitation Sent\",\n\t\tname: \"Mubashir SCC Operator\",\n\t\temail: \"mubshir.irfan+yanbu-scc@core.com\",\n\t\trole: \"Crew Lead\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"07 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234574\",\n\t\tprojects: [\"SRU_Yanbu_Refinery\"],\n\t},\n\t{\n\t\tid: \"u9\",\n\t\tstatus: \"Active\",\n\t\tname: \"Laura\",\n\t\temail: \"lrivasg@tecnicasreunidas.es\",\n\t\trole: \"Site Viewer\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"02 Jul 2026\",\n\t\tdialCode: \"+34\",\n\t\tmobile: \"612345678\",\n\t\tprojects: [\"SITP\"],\n\t},\n\t{\n\t\tid: \"u10\",\n\t\tstatus: \"Active\",\n\t\tname: \"Layla Nasser\",\n\t\temail: \"layla.n@core.com\",\n\t\trole: \"WeCare Admin\",\n\t\tlinkedPeople: [\"Layla Nasser\"],\n\t\tlastLogin: \"12 Jul 2026\",\n\t\tdialCode: \"+971\",\n\t\tmobile: \"551234575\",\n\t\tprojects: [\"Jafurah-Phase 2\"],\n\t},\n\t{\n\t\tid: \"u11\",\n\t\tstatus: \"Active\",\n\t\tname: \"Omar Farouk\",\n\t\temail: \"omar.f@core.com\",\n\t\trole: \"Compliance Officer\",\n\t\tlinkedPeople: [],\n\t\tlastLogin: \"10 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234576\",\n\t\tprojects: [\"Phase-3, Package-8\"],\n\t},\n\t{\n\t\tid: \"u12\",\n\t\tstatus: \"Active\",\n\t\tname: \"Sara Idris\",\n\t\temail: \"sara.i@core.com\",\n\t\trole: \"Network Administrator\",\n\t\tlinkedPeople: [\"Sara Idris\"],\n\t\tlastLogin: \"09 Jul 2026\",\n\t\tdialCode: \"+966\",\n\t\tmobile: \"551234577\",\n\t\tprojects: [\"Khurais\"],\n\t},\n];\n\nconst DIAL_CODES = [\"+971\", \"+966\", \"+974\", \"+965\", \"+973\", \"+968\", \"+20\", \"+34\"];\nconst PROJECT_NAMES = PROJECTS.map((p) => p.name);\n\n// People a user account can be linked to (e.g. the on-site person / worker profile).\nconst PEOPLE = [\n\t\"Layla Nasser\",\n\t\"Ahmed Raza\",\n\t\"Maya Khan\",\n\t\"Omar Farouk\",\n\t\"Sara Idris\",\n\t\"Rania Salem\",\n\t\"Yusuf Malik\",\n\t\"Nadia Hassan\",\n\t\"Karim Adel\",\n\t\"John Dawson\",\n\t\"Abdullah Alzahrani\",\n\t\"Fatima Noor\",\n\t\"Hassan Ali\",\n\t\"Mona Saleh\",\n\t\"Tariq Aziz\",\n];\n\nfunction makeUserColumns(\n\tonOpen: (u: User) => void,\n\tonDeactivate: (u: User) => void,\n\tonViewRole: (roleName: string) => void,\n): ColumnDef<User>[] {\n\treturn [\n\t\tselectColumn<User>(),\n\t\t{\n\t\t\taccessorKey: \"name\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"User Name\" />,\n\t\t\tcell: ({row}) => (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => onOpen(row.original)}\n\t\t\t\t\tclassName=\"wwc:text-left wwc:font-medium wwc:underline wwc:underline-offset-2 wwc:transition-colors wwc:hover:text-primary\"\n\t\t\t\t>\n\t\t\t\t\t{row.original.name}\n\t\t\t\t</button>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"email\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Email\" />,\n\t\t\tcell: ({row}) => <span className=\"wwc:text-muted-foreground\">{row.original.email}</span>,\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"role\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Role\" />,\n\t\t\tcell: ({row}) => (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => onViewRole(row.original.role)}\n\t\t\t\t\taria-label={`View ${row.original.role} permissions`}\n\t\t\t\t>\n\t\t\t\t\t<Badge variant=\"neutralSoft\" className=\"wwc:cursor-pointer wwc:hover:bg-muted/70\">\n\t\t\t\t\t\t{row.original.role}\n\t\t\t\t\t</Badge>\n\t\t\t\t</button>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"linkedPeople\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Linked Person\" />,\n\t\t\tcell: ({row}) => muted(row.original.linkedPeople[0] ?? \"-\"),\n\t\t},\n\t\t{\n\t\t\taccessorKey: \"lastLogin\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Last Login\" />,\n\t\t\tcell: ({row}) => <span>{row.original.lastLogin}</span>,\n\t\t},\n\t\t{\n\t\t\tid: \"actions\",\n\t\t\tenableSorting: false,\n\t\t\tmeta: {cellClassName: \"wwc:w-px wwc:max-w-none wwc:overflow-visible wwc:whitespace-nowrap wwc:text-right\"},\n\t\t\tcell: ({row}) => {\n\t\t\t\tconst u = row.original;\n\t\t\t\treturn (\n\t\t\t\t\t<DropdownMenu>\n\t\t\t\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\t\ticon\n\t\t\t\t\t\t\t\taria-label=\"Row actions\"\n\t\t\t\t\t\t\t\tclassName=\"wwc:h-7 wwc:w-7 wwc:text-muted-foreground\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t<MoreHorizontal className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t\t<DropdownMenuContent align=\"end\" className=\"wwc:w-48\">\n\t\t\t\t\t\t\t<DropdownMenuItem onClick={() => onOpen(u)}>\n\t\t\t\t\t\t\t\t<Eye className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\tEdit user\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t{u.status === \"Invitation Sent\" ? (\n\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\t\t\tnavigator.clipboard?.writeText(`https://app.core.com/register-user/${u.id}`).catch(() => {});\n\t\t\t\t\t\t\t\t\t\ttoast.success(\"Invitation link copied\");\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<Copy className=\"wwc:mr-2 wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\tCopy invitation link\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t) : u.status === \"Deactivated\" ? (\n\t\t\t\t\t\t\t\t<DropdownMenuItem onClick={() => toast.success(`User “${u.name}” activated`)}>\n\t\t\t\t\t\t\t\t\t<UserCheck className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\tActivate\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<DropdownMenuItem\n\t\t\t\t\t\t\t\t\tonClick={() => onDeactivate(u)}\n\t\t\t\t\t\t\t\t\tclassName=\"wwc:text-destructive focus:wwc:text-destructive\"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t<Ban className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\tDeactivate\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t\t</DropdownMenu>\n\t\t\t\t);\n\t\t\t},\n\t\t},\n\t];\n}\n\ntype UserFields = {\n\temail: string;\n\trole: string;\n\tprojects: string[];\n\tlinkedPeople: string[];\n\tmobile: string;\n\tdialCode: string;\n};\nconst EMPTY_USER: UserFields = {email: \"\", role: \"\", projects: [], linkedPeople: [], mobile: \"\", dialCode: \"+971\"};\nconst fieldsFromUser = (u: User): UserFields => ({\n\temail: u.email,\n\trole: u.role,\n\tprojects: [...u.projects],\n\tlinkedPeople: [...u.linkedPeople],\n\tmobile: u.mobile,\n\tdialCode: u.dialCode,\n});\n\nfunction UserForm({\n\tmode,\n\tuser,\n\tdraft,\n\tonField,\n\terrors,\n\tonBack,\n}: {\n\tmode: \"edit\" | \"create\";\n\tuser: User | null;\n\tdraft: UserFields;\n\tonField: <K extends keyof UserFields>(key: K, value: UserFields[K]) => void;\n\terrors: Record<string, boolean>;\n\tonBack: () => void;\n}) {\n\treturn (\n\t\t<div className=\"wwc:space-y-6\">\n\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={onBack} className=\"wwc:-ml-2\">\n\t\t\t\t<ChevronLeft className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\tBack to users\n\t\t\t</Button>\n\n\t\t\t<div>\n\t\t\t\t<h1 className=\"wwc:text-2xl wwc:font-bold wwc:tracking-tight\">{mode === \"create\" ? \"New user\" : user?.name}</h1>\n\t\t\t\t<p className=\"wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t{mode === \"create\" ? \"Invite a user and assign their role and projects.\" : \"Edit this user’s access.\"}\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<Card className=\"wwc:shadow-none\">\n\t\t\t\t<CardHeader className=\"wwc:pb-2\">\n\t\t\t\t\t<CardTitle className=\"wwc:text-base\">User details</CardTitle>\n\t\t\t\t\t<CardDescription>Contact, role, and project access for this user.</CardDescription>\n\t\t\t\t</CardHeader>\n\t\t\t\t<CardContent>\n\t\t\t\t\t<PropertyList labelWidth=\"12rem\">\n\t\t\t\t\t\t<PropertyRow label=\"Email\" required align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t\t\t\t\tvalue={draft.email}\n\t\t\t\t\t\t\t\t\tonChange={(e) => onField(\"email\", e.target.value)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Email\"\n\t\t\t\t\t\t\t\t\tdisabled={mode === \"edit\"}\n\t\t\t\t\t\t\t\t\taria-invalid={!!(errors.email || errors.emailInvalid || errors.emailDup)}\n\t\t\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t\t\t\"wwc:w-full\",\n\t\t\t\t\t\t\t\t\t\t(errors.email || errors.emailInvalid || errors.emailDup) &&\n\t\t\t\t\t\t\t\t\t\t\t\"wwc:border-destructive wwc:focus-visible:ring-destructive\",\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{errors.email ? (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Email is required.</p>\n\t\t\t\t\t\t\t\t) : errors.emailInvalid ? (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Enter a valid email address.</p>\n\t\t\t\t\t\t\t\t) : errors.emailDup ? (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">This email is already in use.</p>\n\t\t\t\t\t\t\t\t) : mode === \"edit\" ? (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\tEmail can't be changed after creation.\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t) : null}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Role\" required align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<Combobox\n\t\t\t\t\t\t\t\t\toptions={ROLES.map((r) => ({value: r.name, label: r.name}))}\n\t\t\t\t\t\t\t\t\tvalue={draft.role}\n\t\t\t\t\t\t\t\t\tonValueChange={(v) => onField(\"role\", v)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Select role\"\n\t\t\t\t\t\t\t\t\tsearchPlaceholder=\"Search roles…\"\n\t\t\t\t\t\t\t\t\temptyMessage=\"No role found.\"\n\t\t\t\t\t\t\t\t\tclassName={cn(\"wwc:w-full wwc:font-normal\", errors.role && \"wwc:border-destructive\")}\n\t\t\t\t\t\t\t\t\tpopoverClassName=\"wwc:min-w-[240px] wwc:w-[var(--radix-popover-trigger-width)] wwc:p-0\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{errors.role && <p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Role is required.</p>}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Projects\" required align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<MultiSelect\n\t\t\t\t\t\t\t\t\toptions={PROJECT_NAMES.map((p) => ({value: p, label: p}))}\n\t\t\t\t\t\t\t\t\tvalue={draft.projects}\n\t\t\t\t\t\t\t\t\tonValueChange={(v) => onField(\"projects\", v)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Select project(s)\"\n\t\t\t\t\t\t\t\t\tsearchPlaceholder=\"Search projects…\"\n\t\t\t\t\t\t\t\t\temptyMessage=\"No projects found.\"\n\t\t\t\t\t\t\t\t\tinvalid={errors.projects}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{errors.projects && (\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Select at least one project.</p>\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</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Linked person\" align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<Combobox\n\t\t\t\t\t\t\t\t\toptions={PEOPLE.map((pp) => ({value: pp, label: pp}))}\n\t\t\t\t\t\t\t\t\tvalue={draft.linkedPeople[0] ?? \"\"}\n\t\t\t\t\t\t\t\t\tonValueChange={(v) => onField(\"linkedPeople\", v ? [v] : [])}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Link a person…\"\n\t\t\t\t\t\t\t\t\tsearchPlaceholder=\"Search people…\"\n\t\t\t\t\t\t\t\t\temptyMessage=\"No people found.\"\n\t\t\t\t\t\t\t\t\tclassName=\"wwc:w-full wwc:font-normal\"\n\t\t\t\t\t\t\t\t\tpopoverClassName=\"wwc:min-w-[240px] wwc:w-[var(--radix-popover-trigger-width)] wwc:p-0\"\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</PropertyRow>\n\t\t\t\t\t\t<PropertyRow label=\"Mobile\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:flex wwc:w-full wwc:max-w-sm wwc:items-center wwc:gap-2\">\n\t\t\t\t\t\t\t\t<div className=\"wwc:w-[110px]\">\n\t\t\t\t\t\t\t\t\t<FieldSelect\n\t\t\t\t\t\t\t\t\t\tvalue={draft.dialCode}\n\t\t\t\t\t\t\t\t\t\tonChange={(v) => onField(\"dialCode\", v)}\n\t\t\t\t\t\t\t\t\t\tplaceholder=\"+000\"\n\t\t\t\t\t\t\t\t\t\toptions={DIAL_CODES}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\ttype=\"tel\"\n\t\t\t\t\t\t\t\t\tvalue={draft.mobile}\n\t\t\t\t\t\t\t\t\tonChange={(e) => onField(\"mobile\", e.target.value)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Phone number\"\n\t\t\t\t\t\t\t\t\tclassName=\"wwc:flex-1\"\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</PropertyRow>\n\t\t\t\t\t\t{mode === \"edit\" && user ? (\n\t\t\t\t\t\t\t<PropertyRow label=\"Last login\">\n\t\t\t\t\t\t\t\t<span className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">{user.lastLogin}</span>\n\t\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t\t) : null}\n\t\t\t\t\t</PropertyList>\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\t\t</div>\n\t);\n}\n\nconst USER_STATUS_TABS = [\"Active\", \"Deactivated\", \"Invitation Sent\"] as const;\n\nfunction UsersView({onOpen}: {onOpen: (u: User) => void}) {\n\tconst [statusTab, setStatusTab] = useState<(typeof USER_STATUS_TABS)[number]>(\"Active\");\n\t// Deactivation is confirmed (single user, or a bulk count).\n\tconst [pendingDeactivate, setPendingDeactivate] = useState<User | null>(null);\n\tconst [bulkDeactivate, setBulkDeactivate] = useState(0);\n\t// Clicking a role badge opens a read-only view of that role's permissions.\n\tconst [viewingRole, setViewingRole] = useState<Role | null>(null);\n\tconst columns = useMemo(\n\t\t() =>\n\t\t\tmakeUserColumns(onOpen, setPendingDeactivate, (roleName) =>\n\t\t\t\tsetViewingRole(ROLES.find((r) => r.name === roleName) ?? null),\n\t\t\t),\n\t\t[onOpen],\n\t);\n\tconst data = USERS.filter((u) => u.status === statusTab);\n\t// Users are deactivated, never deleted — the bulk action depends on which tab is active.\n\tconst bulkAction =\n\t\tstatusTab === \"Deactivated\"\n\t\t\t? {label: \"Activate\", verb: \"activated\"}\n\t\t\t: statusTab === \"Invitation Sent\"\n\t\t\t\t? {label: \"Copy invitation link\", verb: \"copied\"}\n\t\t\t\t: {label: \"Deactivate\", verb: \"deactivated\"};\n\tconst bulkIsDeactivate = statusTab === \"Active\";\n\tconst bulkIsCopy = statusTab === \"Invitation Sent\";\n\n\treturn (\n\t\t<div className=\"wwc:space-y-4\">\n\t\t\t<Tabs value={statusTab} onValueChange={(v) => setStatusTab(v as (typeof USER_STATUS_TABS)[number])}>\n\t\t\t\t<TabsList>\n\t\t\t\t\t{USER_STATUS_TABS.map((t) => (\n\t\t\t\t\t\t<TabsTrigger key={t} value={t}>\n\t\t\t\t\t\t\t{t}\n\t\t\t\t\t\t\t<span className=\"wwc:ml-1.5 wwc:text-muted-foreground\">{USERS.filter((u) => u.status === t).length}</span>\n\t\t\t\t\t\t</TabsTrigger>\n\t\t\t\t\t))}\n\t\t\t\t</TabsList>\n\t\t\t</Tabs>\n\t\t\t<DataTable\n\t\t\t\tkey={statusTab}\n\t\t\t\tcolumns={columns}\n\t\t\t\tdata={data}\n\t\t\t\tsearchKey=\"name\"\n\t\t\t\tsearchPlaceholder=\"Search users…\"\n\t\t\t\trecordLabel=\"user\"\n\t\t\t\tpageSize={10}\n\t\t\t\tbulkActions={[\n\t\t\t\t\t{\n\t\t\t\t\t\tlabel: bulkAction.label,\n\t\t\t\t\t\tvariant: bulkIsDeactivate ? \"destructive\" : \"outline\",\n\t\t\t\t\t\tonClick: (ids) =>\n\t\t\t\t\t\t\tbulkIsDeactivate\n\t\t\t\t\t\t\t\t? setBulkDeactivate(ids.length)\n\t\t\t\t\t\t\t\t: bulkIsCopy\n\t\t\t\t\t\t\t\t\t? toast.success(`${ids.length} invitation link${ids.length === 1 ? \"\" : \"s\"} copied`)\n\t\t\t\t\t\t\t\t\t: toast.success(`${ids.length} user${ids.length === 1 ? \"\" : \"s\"} ${bulkAction.verb}`),\n\t\t\t\t\t},\n\t\t\t\t]}\n\t\t\t/>\n\t\t\t<ConfirmDialog\n\t\t\t\topen={!!pendingDeactivate}\n\t\t\t\ttitle=\"Deactivate user?\"\n\t\t\t\tdescription={\n\t\t\t\t\t<>\n\t\t\t\t\t\tThis will deactivate <span className=\"wwc:font-medium wwc:text-foreground\">{pendingDeactivate?.name}</span>.\n\t\t\t\t\t\tThey lose access until reactivated.\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tconfirmLabel=\"Deactivate\"\n\t\t\t\tdestructive\n\t\t\t\tonOpenChange={(o) => !o && setPendingDeactivate(null)}\n\t\t\t\tonConfirm={() => {\n\t\t\t\t\ttoast.success(`User “${pendingDeactivate?.name}” deactivated`);\n\t\t\t\t\tsetPendingDeactivate(null);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<ConfirmDialog\n\t\t\t\topen={bulkDeactivate > 0}\n\t\t\t\ttitle={`Deactivate ${bulkDeactivate === 1 ? \"user\" : \"users\"}?`}\n\t\t\t\tdescription={\n\t\t\t\t\t<>\n\t\t\t\t\t\tThis will deactivate{\" \"}\n\t\t\t\t\t\t<span className=\"wwc:font-medium wwc:text-foreground\">\n\t\t\t\t\t\t\t{bulkDeactivate} {bulkDeactivate === 1 ? \"user\" : \"users\"}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t. They lose access until reactivated.\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tconfirmLabel=\"Deactivate\"\n\t\t\t\tdestructive\n\t\t\t\tonOpenChange={(o) => !o && setBulkDeactivate(0)}\n\t\t\t\tonConfirm={() => {\n\t\t\t\t\ttoast.success(`${bulkDeactivate} user${bulkDeactivate === 1 ? \"\" : \"s\"} deactivated`);\n\t\t\t\t\tsetBulkDeactivate(0);\n\t\t\t\t}}\n\t\t\t/>\n\t\t\t<RolePermissionsDialog role={viewingRole} onOpenChange={(o) => !o && setViewingRole(null)} />\n\t\t</div>\n\t);\n}\n\n// ── Permissions (Roles) ──\n\ntype Role = {id: string; name: string; permissions: Record<string, boolean>};\n\n// The template supplies product permissions to the reusable three-level PermissionMatrix widget.\ntype Perm = PermissionMatrixPermission;\ntype PermGroup = PermissionMatrixGroup;\ntype PermCategory = PermissionMatrixCategory;\n\nconst crud = (prefix: string, actions: string[] = [\"Create\", \"Export\", \"Manage\", \"View\"]): Perm[] =>\n\tactions.map((a) => ({id: `${prefix}.${a.toLowerCase()}`, label: a}));\n\nconst PERMISSION_CATALOG: PermCategory[] = [\n\t{\n\t\tid: \"complaints\",\n\t\tlabel: \"Complaints\",\n\t\tgroups: [\n\t\t\t{\n\t\t\t\tid: \"complaints.translation\",\n\t\t\t\tlabel: \"translation.baseline\",\n\t\t\t\tpermissions: [\n\t\t\t\t\t{id: \"complaints.translation.import\", label: \"translation.baseline:import\"},\n\t\t\t\t\t{id: \"complaints.translation.view\", label: \"translation.baseline:view\"},\n\t\t\t\t],\n\t\t\t},\n\t\t\t{id: \"complaints.main\", label: \"Complaints\", permissions: crud(\"complaints.main\")},\n\t\t],\n\t},\n\t{\n\t\tid: \"compliance\",\n\t\tlabel: \"Compliance\",\n\t\tgroups: [{id: \"compliance.main\", label: \"Compliance\", permissions: crud(\"compliance\")}],\n\t},\n\t{\n\t\tid: \"crew\",\n\t\tlabel: \"Crew Management\",\n\t\tgroups: [{id: \"crew.main\", label: \"Crew Management\", permissions: crud(\"crew\")}],\n\t},\n\t{id: \"devices\", label: \"Devices\", groups: [{id: \"devices.main\", label: \"Devices\", permissions: crud(\"devices\")}]},\n\t{\n\t\tid: \"digital_clinic\",\n\t\tlabel: \"Digital Clinic\",\n\t\tgroups: [{id: \"digital_clinic.main\", label: \"Digital Clinic\", permissions: crud(\"digital_clinic\")}],\n\t},\n\t{\n\t\tid: \"equipments\",\n\t\tlabel: \"Equipments\",\n\t\tgroups: [{id: \"equipments.main\", label: \"Equipments\", permissions: crud(\"equipments\")}],\n\t},\n\t{\n\t\tid: \"external\",\n\t\tlabel: \"External Integrations\",\n\t\tgroups: [{id: \"external.main\", label: \"External Integrations\", permissions: crud(\"external\")}],\n\t},\n\t{\n\t\tid: \"hardware\",\n\t\tlabel: \"Hardware Management\",\n\t\tgroups: [{id: \"hardware.main\", label: \"Hardware Management\", permissions: crud(\"hardware\")}],\n\t},\n\t{\n\t\tid: \"management_map\",\n\t\tlabel: \"Management Map\",\n\t\tgroups: [\n\t\t\t{id: \"management_map.main\", label: \"Management Map\", permissions: crud(\"management_map\", [\"Manage\", \"View\"])},\n\t\t],\n\t},\n\t{id: \"map\", label: \"Map\", groups: [{id: \"map.main\", label: \"Map\", permissions: crud(\"map\", [\"Manage\", \"View\"])}]},\n\t{\n\t\tid: \"network_admin\",\n\t\tlabel: \"Network Administration\",\n\t\tgroups: [{id: \"network_admin.main\", label: \"Network Administration\", permissions: crud(\"network_admin\")}],\n\t},\n\t{\n\t\tid: \"network_toolkit\",\n\t\tlabel: \"Network Toolkit\",\n\t\tgroups: [{id: \"network_toolkit.main\", label: \"Network Toolkit\", permissions: crud(\"network_toolkit\")}],\n\t},\n\t{\n\t\tid: \"observation\",\n\t\tlabel: \"Observation Manager\",\n\t\tgroups: [{id: \"observation.main\", label: \"Observation Manager\", permissions: crud(\"observation\")}],\n\t},\n\t{\n\t\tid: \"project_builder\",\n\t\tlabel: \"Project Builder\",\n\t\tgroups: [{id: \"project_builder.main\", label: \"Project Builder\", permissions: crud(\"project_builder\")}],\n\t},\n];\n\nconst catPermIds = (c: PermCategory): string[] => c.groups.flatMap((g) => g.permissions.map((p) => p.id));\nconst ALL_PERM_IDS: string[] = PERMISSION_CATALOG.flatMap(catPermIds);\nconst permDefaults = (): Record<string, boolean> => Object.fromEntries(ALL_PERM_IDS.map((id) => [id, false]));\nconst roleWith = (ids: string[]): Record<string, boolean> => {\n\tconst base = permDefaults();\n\tfor (const id of ids) if (id in base) base[id] = true;\n\treturn base;\n};\n\nconst ROLES: Role[] = [\n\t{\n\t\tid: \"role1\",\n\t\tname: \"SCC Khurais\",\n\t\tpermissions: roleWith([\"complaints.main.view\", \"compliance.view\", \"crew.view\", \"map.view\"]),\n\t},\n\t{id: \"role2\", name: \"Riyas Technician\", permissions: roleWith([\"devices.view\", \"hardware.view\", \"equipments.view\"])},\n\t{id: \"role3\", name: \"DIGITAL CLINIC\", permissions: roleWith(catPermIds(PERMISSION_CATALOG[4]))},\n\t{id: \"role4\", name: \"doctor clinic 1 test\", permissions: roleWith([\"digital_clinic.view\", \"digital_clinic.manage\"])},\n\t{id: \"role5\", name: \"testing account\", permissions: roleWith([\"map.view\"])},\n\t{\n\t\tid: \"role6\",\n\t\tname: \"AVL Permission\",\n\t\tpermissions: roleWith([\"devices.view\", \"devices.manage\", \"map.view\", \"map.manage\"]),\n\t},\n\t{id: \"role7\", name: \"WeCare Admin\", permissions: roleWith(ALL_PERM_IDS)},\n\t{\n\t\tid: \"role8\",\n\t\tname: \"Aramco Executive\",\n\t\tpermissions: roleWith([\"complaints.main.view\", \"compliance.view\", \"observation.view\", \"map.view\"]),\n\t},\n\t{\n\t\tid: \"role9\",\n\t\tname: \"safety officers\",\n\t\tpermissions: roleWith([\"observation.view\", \"observation.create\", \"compliance.view\"]),\n\t},\n\t{\n\t\tid: \"role10\",\n\t\tname: \"FGIP Super Technician\",\n\t\tpermissions: roleWith([\n\t\t\t\"devices.view\",\n\t\t\t\"devices.manage\",\n\t\t\t\"hardware.view\",\n\t\t\t\"hardware.manage\",\n\t\t\t\"network_toolkit.view\",\n\t\t]),\n\t},\n\t{id: \"role11\", name: \"Network Administrator\", permissions: roleWith(catPermIds(PERMISSION_CATALOG[10]))},\n\t{id: \"role12\", name: \"Crew Lead\", permissions: roleWith([\"crew.view\", \"crew.create\", \"crew.manage\"])},\n\t{\n\t\tid: \"role13\",\n\t\tname: \"Compliance Officer\",\n\t\tpermissions: roleWith([\"compliance.view\", \"compliance.manage\", \"compliance.export\"]),\n\t},\n\t{id: \"role14\", name: \"Site Viewer\", permissions: roleWith([\"map.view\", \"management_map.view\", \"observation.view\"])},\n];\n\n// A leading checkbox column enabling row multi-select (select-all header + per-row checkbox).\nfunction selectColumn<T>(): ColumnDef<T> {\n\treturn {\n\t\tid: \"select\",\n\t\tenableSorting: false,\n\t\tmeta: {cellClassName: \"wwc:w-px wwc:pr-0\"},\n\t\theader: ({table}) => (\n\t\t\t<Checkbox\n\t\t\t\tchecked={table.getIsAllPageRowsSelected() ? true : table.getIsSomePageRowsSelected() ? \"indeterminate\" : false}\n\t\t\t\tonCheckedChange={(v) => table.toggleAllPageRowsSelected(!!v)}\n\t\t\t\taria-label=\"Select all\"\n\t\t\t/>\n\t\t),\n\t\tcell: ({row}) => (\n\t\t\t<Checkbox\n\t\t\t\tchecked={row.getIsSelected()}\n\t\t\t\tonCheckedChange={(v) => row.toggleSelected(!!v)}\n\t\t\t\taria-label=\"Select row\"\n\t\t\t/>\n\t\t),\n\t};\n}\n\nfunction makeRoleColumns(onOpen: (r: Role) => void): ColumnDef<Role>[] {\n\treturn [\n\t\t{\n\t\t\taccessorKey: \"name\",\n\t\t\theader: ({column}) => <DataTableColumnHeader column={column} title=\"Name\" />,\n\t\t\tcell: ({row}) => (\n\t\t\t\t<button\n\t\t\t\t\ttype=\"button\"\n\t\t\t\t\tonClick={() => onOpen(row.original)}\n\t\t\t\t\tclassName=\"wwc:text-left wwc:font-medium wwc:underline wwc:underline-offset-2 wwc:transition-colors wwc:hover:text-primary\"\n\t\t\t\t>\n\t\t\t\t\t{row.original.name}\n\t\t\t\t</button>\n\t\t\t),\n\t\t},\n\t\t{\n\t\t\tid: \"actions\",\n\t\t\tenableSorting: false,\n\t\t\tmeta: {cellClassName: \"wwc:w-px wwc:max-w-none wwc:overflow-visible wwc:whitespace-nowrap wwc:text-right\"},\n\t\t\tcell: ({row}) => (\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t\t\t<Button variant=\"ghost\" icon aria-label=\"Row actions\" className=\"wwc:h-7 wwc:w-7 wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t<MoreHorizontal className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t<DropdownMenuContent align=\"end\" className=\"wwc:w-48\">\n\t\t\t\t\t\t<DropdownMenuItem onClick={() => onOpen(row.original)}>\n\t\t\t\t\t\t\t<Eye className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\tEdit role\n\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t),\n\t\t},\n\t];\n}\n\n// Read-only dialog showing a role's granted permissions (opened from a user's role badge).\nfunction RolePermissionsDialog({role, onOpenChange}: {role: Role | null; onOpenChange: (open: boolean) => void}) {\n\treturn (\n\t\t<Dialog open={!!role} onOpenChange={onOpenChange}>\n\t\t\t<DialogContent className=\"wwc:max-w-4xl\">\n\t\t\t\t<DialogHeader>\n\t\t\t\t\t<DialogTitle>{role?.name} permissions</DialogTitle>\n\t\t\t\t\t<DialogDescription>Read-only view of what this role can access.</DialogDescription>\n\t\t\t\t</DialogHeader>\n\t\t\t\t{role && (\n\t\t\t\t\t<div className=\"wwc:max-h-[60vh] wwc:overflow-auto wwc:px-4 wwc:py-4\">\n\t\t\t\t\t\t<PermissionMatrix categories={PERMISSION_CATALOG} value={role.permissions} readOnly showHeader={false} />\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<DialogFooter>\n\t\t\t\t\t<Button variant=\"outline\" onClick={() => onOpenChange(false)}>\n\t\t\t\t\t\tClose\n\t\t\t\t\t</Button>\n\t\t\t\t</DialogFooter>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n\nfunction RoleForm({\n\tmode,\n\trole,\n\tname,\n\tonName,\n\tnameError,\n\tperms,\n\tonPermissionsChange,\n\tonBack,\n}: {\n\tmode: \"edit\" | \"create\";\n\trole: Role | null;\n\tname: string;\n\tonName: (value: string) => void;\n\tnameError: boolean;\n\tperms: Record<string, boolean>;\n\tonPermissionsChange: (next: Record<string, boolean>) => void;\n\tonBack: () => void;\n}) {\n\treturn (\n\t\t<div className=\"wwc:space-y-6\">\n\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={onBack} className=\"wwc:-ml-2\">\n\t\t\t\t<ChevronLeft className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\tBack to roles\n\t\t\t</Button>\n\n\t\t\t<div>\n\t\t\t\t<h1 className=\"wwc:text-2xl wwc:font-bold wwc:tracking-tight\">{mode === \"create\" ? \"New role\" : role?.name}</h1>\n\t\t\t\t<p className=\"wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t{mode === \"create\" ? \"Name the role and choose its permissions.\" : \"Edit this role’s name and permissions.\"}\n\t\t\t\t</p>\n\t\t\t</div>\n\n\t\t\t<Card className=\"wwc:shadow-none\">\n\t\t\t\t<CardHeader className=\"wwc:pb-2\">\n\t\t\t\t\t<CardTitle className=\"wwc:text-base\">Role details</CardTitle>\n\t\t\t\t\t<CardDescription>Name and metadata for this role.</CardDescription>\n\t\t\t\t</CardHeader>\n\t\t\t\t<CardContent>\n\t\t\t\t\t<PropertyList labelWidth=\"12rem\">\n\t\t\t\t\t\t<PropertyRow label=\"Role name\" required align=\"start\">\n\t\t\t\t\t\t\t<div className=\"wwc:ml-auto wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\t\t\t\tonChange={(e) => onName(e.target.value)}\n\t\t\t\t\t\t\t\t\tplaceholder=\"Role name\"\n\t\t\t\t\t\t\t\t\taria-invalid={nameError}\n\t\t\t\t\t\t\t\t\tclassName={cn(\"wwc:w-full\", nameError && \"wwc:border-destructive wwc:focus-visible:ring-destructive\")}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t{nameError && <p className=\"wwc:mt-1.5 wwc:text-xs wwc:text-destructive\">Role name is required.</p>}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</PropertyRow>\n\t\t\t\t\t</PropertyList>\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\n\t\t\t<PermissionMatrix categories={PERMISSION_CATALOG} value={perms} onValueChange={onPermissionsChange} />\n\t\t</div>\n\t);\n}\n\nfunction PermissionsView({onOpen}: {onOpen: (r: Role) => void}) {\n\tconst columns = useMemo(() => makeRoleColumns(onOpen), [onOpen]);\n\n\treturn (\n\t\t<DataTable\n\t\t\tcolumns={columns}\n\t\t\tdata={ROLES}\n\t\t\tsearchKey=\"name\"\n\t\t\tsearchPlaceholder=\"Search roles…\"\n\t\t\trecordLabel=\"role\"\n\t\t\tpageSize={10}\n\t\t/>\n\t);\n}\n\n// ── Home / Organization ──\n\ntype Org = {\n\tid: string;\n\tname: string;\n\tlocation: string;\n\tlogo: string | null;\n\tcountry: string;\n\tprojects: number;\n\tstatus: \"Active\" | \"Archived\";\n};\n\nconst INITIAL_ORGS: Org[] = [\n\t{\n\t\tid: \"o1\",\n\t\tname: \"Saudi Aramco\",\n\t\tlocation: \"Dhahran, Saudi Arabia\",\n\t\tlogo: ARAMCO_LOGO,\n\t\tcountry: \"Saudi Arabia\",\n\t\tprojects: 14,\n\t\tstatus: \"Active\",\n\t},\n\t{\n\t\tid: \"o2\",\n\t\tname: \"NEOM\",\n\t\tlocation: \"Tabuk, Saudi Arabia\",\n\t\tlogo: NEOM_LOGO,\n\t\tcountry: \"Saudi Arabia\",\n\t\tprojects: 9,\n\t\tstatus: \"Active\",\n\t},\n\t{\n\t\tid: \"o3\",\n\t\tname: \"Roshn\",\n\t\tlocation: \"Riyadh, Saudi Arabia\",\n\t\tlogo: ROSHN_LOGO,\n\t\tcountry: \"Saudi Arabia\",\n\t\tprojects: 6,\n\t\tstatus: \"Active\",\n\t},\n\t{\n\t\tid: \"o4\",\n\t\tname: \"Qiddiya\",\n\t\tlocation: \"Riyadh, Saudi Arabia\",\n\t\tlogo: QIDDIYA_LOGO,\n\t\tcountry: \"Saudi Arabia\",\n\t\tprojects: 4,\n\t\tstatus: \"Active\",\n\t},\n\t{\n\t\tid: \"o5\",\n\t\tname: \"Diriyah Gate\",\n\t\tlocation: \"Diriyah, Saudi Arabia\",\n\t\tlogo: DIRIYAH_LOGO,\n\t\tcountry: \"Saudi Arabia\",\n\t\tprojects: 7,\n\t\tstatus: \"Archived\",\n\t},\n\t{\n\t\tid: \"o6\",\n\t\tname: \"The Red Sea\",\n\t\tlocation: \"Umluj, Saudi Arabia\",\n\t\tlogo: RED_SEA_LOGO,\n\t\tcountry: \"Saudi Arabia\",\n\t\tprojects: 5,\n\t\tstatus: \"Archived\",\n\t},\n];\n\nconst orgInitials = (name: string) =>\n\tname\n\t\t.split(/\\s+/)\n\t\t.filter(Boolean)\n\t\t.slice(0, 2)\n\t\t.map((w) => w[0])\n\t\t.join(\"\")\n\t\t.toUpperCase();\n\nfunction OrgLogo({org, className}: {org: Org; className?: string}) {\n\tif (org.logo) {\n\t\treturn (\n\t\t\t<div\n\t\t\t\tclassName={cn(\n\t\t\t\t\t\"wwc:flex wwc:shrink-0 wwc:items-center wwc:justify-center wwc:overflow-hidden wwc:rounded-xl wwc:border wwc:border-border wwc:bg-white wwc:p-2\",\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t>\n\t\t\t\t<img src={org.logo} alt={org.name} className=\"wwc:h-full wwc:w-full wwc:object-contain\" />\n\t\t\t</div>\n\t\t);\n\t}\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t\"wwc:flex wwc:shrink-0 wwc:items-center wwc:justify-center wwc:rounded-xl wwc:bg-primary/10 wwc:font-semibold wwc:text-primary\",\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t>\n\t\t\t{orgInitials(org.name)}\n\t\t</div>\n\t);\n}\n\n// A modal to change the org name and logo — reads the current org each time it opens.\nfunction EditOrgDialog({\n\torg,\n\tonSave,\n}: {\n\torg: Org;\n\tonSave: (patch: {name: string; country: string; logo: string | null}) => void;\n}) {\n\tconst [open, setOpen] = useState(false);\n\tconst [name, setName] = useState(org.name);\n\tconst [country, setCountry] = useState(org.country);\n\tconst [logo, setLogo] = useState<string | null>(org.logo);\n\tconst [errors, setErrors] = useState<{name?: string; country?: string; logo?: string}>({});\n\tconst fileRef = useRef<HTMLInputElement>(null);\n\n\tconst onFile = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst file = e.target.files?.[0];\n\t\te.target.value = \"\";\n\t\tif (!file) return;\n\t\tif (![\"image/png\", \"image/jpeg\"].includes(file.type)) {\n\t\t\tsetErrors((p) => ({...p, logo: \"Only PNG, JPG and JPEG are allowed.\"}));\n\t\t\treturn;\n\t\t}\n\t\tif (file.size > 1024 * 1024) {\n\t\t\tsetErrors((p) => ({...p, logo: \"Max size allowed is 1MB.\"}));\n\t\t\treturn;\n\t\t}\n\t\tconst reader = new FileReader();\n\t\treader.onload = () => {\n\t\t\tsetLogo(typeof reader.result === \"string\" ? reader.result : null);\n\t\t\tsetErrors((p) => ({...p, logo: undefined}));\n\t\t};\n\t\treader.readAsDataURL(file);\n\t};\n\n\tconst submit = () => {\n\t\tconst errs: {name?: string; country?: string} = {};\n\t\tif (!name.trim()) errs.name = \"Organization name is required.\";\n\t\tif (!country) errs.country = \"Country is required.\";\n\t\tif (errs.name || errs.country) {\n\t\t\tsetErrors((p) => ({...p, ...errs}));\n\t\t\treturn;\n\t\t}\n\t\tonSave({name: name.trim(), country, logo});\n\t\tsetOpen(false);\n\t};\n\n\treturn (\n\t\t<Dialog\n\t\t\topen={open}\n\t\t\tonOpenChange={(o) => {\n\t\t\t\tif (o) {\n\t\t\t\t\tsetName(org.name);\n\t\t\t\t\tsetCountry(org.country);\n\t\t\t\t\tsetLogo(org.logo);\n\t\t\t\t\tsetErrors({});\n\t\t\t\t}\n\t\t\t\tsetOpen(o);\n\t\t\t}}\n\t\t>\n\t\t\t<DialogTrigger asChild>\n\t\t\t\t<Button variant=\"outline\" size=\"sm\">\n\t\t\t\t\t<Pencil className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\tEdit\n\t\t\t\t</Button>\n\t\t\t</DialogTrigger>\n\t\t\t<DialogContent>\n\t\t\t\t<DialogHeader>\n\t\t\t\t\t<DialogTitle>Edit organization</DialogTitle>\n\t\t\t\t\t<DialogDescription>Update the organization name, country and logo.</DialogDescription>\n\t\t\t\t</DialogHeader>\n\t\t\t\t<div className=\"wwc:space-y-5 wwc:px-4 wwc:py-4\">\n\t\t\t\t\t<div className=\"wwc:flex wwc:items-start wwc:gap-4\">\n\t\t\t\t\t\t<OrgLogo org={{...org, name: name || org.name, logo}} className=\"wwc:h-16 wwc:w-16 wwc:text-lg\" />\n\t\t\t\t\t\t<div className=\"wwc:space-y-1\">\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:flex-wrap wwc:gap-2\">\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t\t\t\taccept=\"image/png,image/jpeg\"\n\t\t\t\t\t\t\t\t\tref={fileRef}\n\t\t\t\t\t\t\t\t\tonChange={onFile}\n\t\t\t\t\t\t\t\t\tclassName=\"wwc:hidden\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Button variant=\"outline\" size=\"sm\" onClick={() => fileRef.current?.click()}>\n\t\t\t\t\t\t\t\t\t<Upload className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\tUpload logo\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{logo && (\n\t\t\t\t\t\t\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={() => setLogo(null)}>\n\t\t\t\t\t\t\t\t\t\tRemove\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\t{errors.logo ? (\n\t\t\t\t\t\t\t\t<p className=\"wwc:text-xs wwc:text-destructive\">{errors.logo}</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"wwc:text-xs wwc:text-muted-foreground\">PNG, JPG or JPEG · max 1MB.</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"wwc:space-y-1.5\">\n\t\t\t\t\t\t<Label required>Organization name</Label>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\tsetName(e.target.value);\n\t\t\t\t\t\t\t\tif (e.target.value.trim()) setErrors((p) => ({...p, name: undefined}));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tplaceholder=\"Organization name\"\n\t\t\t\t\t\t\taria-invalid={!!errors.name}\n\t\t\t\t\t\t\tclassName={cn(errors.name && \"wwc:border-destructive wwc:focus-visible:ring-destructive\")}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{errors.name && <p className=\"wwc:text-xs wwc:text-destructive\">{errors.name}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"wwc:space-y-1.5\">\n\t\t\t\t\t\t<Label required>Country</Label>\n\t\t\t\t\t\t<div className={cn(errors.country && \"wwc:rounded-md wwc:ring-1 wwc:ring-destructive\")}>\n\t\t\t\t\t\t\t<FieldSelect\n\t\t\t\t\t\t\t\tvalue={country}\n\t\t\t\t\t\t\t\tonChange={(v) => {\n\t\t\t\t\t\t\t\t\tsetCountry(v);\n\t\t\t\t\t\t\t\t\tif (v) setErrors((p) => ({...p, country: undefined}));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tplaceholder=\"Select country\"\n\t\t\t\t\t\t\t\toptions={COUNTRIES}\n\t\t\t\t\t\t\t\ttriggerClassName=\"wwc:w-full\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{errors.country && <p className=\"wwc:text-xs wwc:text-destructive\">{errors.country}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<DialogFooter>\n\t\t\t\t\t<Button variant=\"outline\" onClick={() => setOpen(false)}>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={submit}>Save changes</Button>\n\t\t\t\t</DialogFooter>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n\n// The Core brand mark (same glyph as the app sidebar), for the standalone organizations page.\nfunction WakeMark({className}: {className?: string}) {\n\treturn (\n\t\t<svg\n\t\t\tviewBox=\"0 0 278.78 176.15\"\n\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\taria-hidden=\"true\"\n\t\t\tfill=\"currentColor\"\n\t\t\tclassName={className}\n\t\t>\n\t\t\t<path d=\"M65.58,4.66l21.91,30.92,20.8-31.16,62.09-.03,21.5,31.2s21.05-31.2,21.21-31.2h62.08v62.09s-52.28,105.07-52.28,105.07l-62.09-.05-21.48-30.97-21.05,31.02h-62.09S3.49,66.77,3.49,66.77V4.67h62.09Z\" />\n\t\t</svg>\n\t);\n}\n\n// Create-organization dialog (name + country + admin-invite email + logo).\nfunction AddOrgDialog({\n\tonCreate,\n}: {\n\tonCreate: (data: {name: string; country: string; adminEmail: string; logo: string | null}) => void;\n}) {\n\tconst [open, setOpen] = useState(false);\n\tconst [name, setName] = useState(\"\");\n\tconst [country, setCountry] = useState(\"\");\n\tconst [adminEmail, setAdminEmail] = useState(\"\");\n\tconst [logo, setLogo] = useState<string | null>(null);\n\t// Inline validation messages, keyed by field (\"\" / undefined = valid).\n\tconst [errors, setErrors] = useState<{name?: string; country?: string; email?: string; logo?: string}>({});\n\tconst fileRef = useRef<HTMLInputElement>(null);\n\n\tconst reset = () => {\n\t\tsetName(\"\");\n\t\tsetCountry(\"\");\n\t\tsetAdminEmail(\"\");\n\t\tsetLogo(null);\n\t\tsetErrors({});\n\t};\n\tconst onFile = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tconst file = e.target.files?.[0];\n\t\te.target.value = \"\";\n\t\tif (!file) return;\n\t\t// Logo restrictions: PNG / JPG / JPEG, max 1MB.\n\t\tif (![\"image/png\", \"image/jpeg\"].includes(file.type)) {\n\t\t\tsetLogo(null);\n\t\t\tsetErrors((p) => ({...p, logo: \"Only PNG, JPG and JPEG are allowed.\"}));\n\t\t\treturn;\n\t\t}\n\t\tif (file.size > 1024 * 1024) {\n\t\t\tsetLogo(null);\n\t\t\tsetErrors((p) => ({...p, logo: \"Max size allowed is 1MB.\"}));\n\t\t\treturn;\n\t\t}\n\t\tconst reader = new FileReader();\n\t\treader.onload = () => {\n\t\t\tsetLogo(typeof reader.result === \"string\" ? reader.result : null);\n\t\t\tsetErrors((p) => ({...p, logo: undefined}));\n\t\t};\n\t\treader.readAsDataURL(file);\n\t};\n\tconst submit = () => {\n\t\tconst emailRe = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\t\tconst errs: {name?: string; country?: string; email?: string} = {};\n\t\tif (!name.trim()) errs.name = \"Organization name is required.\";\n\t\tif (!country) errs.country = \"Country is required.\";\n\t\tif (!adminEmail.trim()) errs.email = \"Admin email is required.\";\n\t\telse if (!emailRe.test(adminEmail.trim())) errs.email = \"Enter a valid email address.\";\n\t\tif (errs.name || errs.country || errs.email) {\n\t\t\tsetErrors((p) => ({...p, ...errs}));\n\t\t\treturn;\n\t\t}\n\t\tonCreate({name: name.trim(), country, adminEmail: adminEmail.trim(), logo});\n\t\tsetOpen(false);\n\t};\n\n\treturn (\n\t\t<Dialog\n\t\t\topen={open}\n\t\t\tonOpenChange={(o) => {\n\t\t\t\tif (o) reset();\n\t\t\t\tsetOpen(o);\n\t\t\t}}\n\t\t>\n\t\t\t<DialogTrigger asChild>\n\t\t\t\t<Button size=\"sm\">\n\t\t\t\t\t<Plus className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\tAdd organization\n\t\t\t\t</Button>\n\t\t\t</DialogTrigger>\n\t\t\t<DialogContent>\n\t\t\t\t<DialogHeader>\n\t\t\t\t\t<DialogTitle>Add organization</DialogTitle>\n\t\t\t\t\t<DialogDescription>Create a new organization and invite its admin.</DialogDescription>\n\t\t\t\t</DialogHeader>\n\t\t\t\t<div className=\"wwc:space-y-5 wwc:px-4 wwc:py-4\">\n\t\t\t\t\t<div className=\"wwc:flex wwc:items-start wwc:gap-4\">\n\t\t\t\t\t\t<OrgLogo\n\t\t\t\t\t\t\torg={{id: \"\", name: name || \"New\", location: \"\", country: \"\", logo, projects: 0, status: \"Active\"}}\n\t\t\t\t\t\t\tclassName=\"wwc:h-16 wwc:w-16 wwc:text-lg\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<div className=\"wwc:space-y-1\">\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:flex-wrap wwc:gap-2\">\n\t\t\t\t\t\t\t\t<input\n\t\t\t\t\t\t\t\t\ttype=\"file\"\n\t\t\t\t\t\t\t\t\taccept=\"image/png,image/jpeg\"\n\t\t\t\t\t\t\t\t\tref={fileRef}\n\t\t\t\t\t\t\t\t\tonChange={onFile}\n\t\t\t\t\t\t\t\t\tclassName=\"wwc:hidden\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t<Button variant=\"outline\" size=\"sm\" onClick={() => fileRef.current?.click()}>\n\t\t\t\t\t\t\t\t\t<Upload className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\tUpload logo\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t{logo && (\n\t\t\t\t\t\t\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={() => setLogo(null)}>\n\t\t\t\t\t\t\t\t\t\tRemove\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\t{errors.logo ? (\n\t\t\t\t\t\t\t\t<p className=\"wwc:text-xs wwc:text-destructive\">{errors.logo}</p>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<p className=\"wwc:text-xs wwc:text-muted-foreground\">PNG, JPG or JPEG · max 1MB.</p>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"wwc:space-y-1.5\">\n\t\t\t\t\t\t<Label required>Organization name</Label>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\tvalue={name}\n\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\tsetName(e.target.value);\n\t\t\t\t\t\t\t\tif (e.target.value.trim()) setErrors((p) => ({...p, name: undefined}));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tplaceholder=\"Organization name\"\n\t\t\t\t\t\t\taria-invalid={!!errors.name}\n\t\t\t\t\t\t\tclassName={cn(errors.name && \"wwc:border-destructive wwc:focus-visible:ring-destructive\")}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{errors.name && <p className=\"wwc:text-xs wwc:text-destructive\">{errors.name}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"wwc:space-y-1.5\">\n\t\t\t\t\t\t<Label required>Country</Label>\n\t\t\t\t\t\t<div className={cn(errors.country && \"wwc:rounded-md wwc:ring-1 wwc:ring-destructive\")}>\n\t\t\t\t\t\t\t<FieldSelect\n\t\t\t\t\t\t\t\tvalue={country}\n\t\t\t\t\t\t\t\tonChange={(v) => {\n\t\t\t\t\t\t\t\t\tsetCountry(v);\n\t\t\t\t\t\t\t\t\tif (v) setErrors((p) => ({...p, country: undefined}));\n\t\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\t\tplaceholder=\"Select country\"\n\t\t\t\t\t\t\t\toptions={COUNTRIES}\n\t\t\t\t\t\t\t\ttriggerClassName=\"wwc:w-full\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{errors.country && <p className=\"wwc:text-xs wwc:text-destructive\">{errors.country}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t\t<div className=\"wwc:space-y-1.5\">\n\t\t\t\t\t\t<Label required>Admin email</Label>\n\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\ttype=\"email\"\n\t\t\t\t\t\t\tvalue={adminEmail}\n\t\t\t\t\t\t\tonChange={(e) => {\n\t\t\t\t\t\t\t\tsetAdminEmail(e.target.value);\n\t\t\t\t\t\t\t\tif (e.target.value.trim()) setErrors((p) => ({...p, email: undefined}));\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t\tplaceholder=\"admin@company.com\"\n\t\t\t\t\t\t\taria-invalid={!!errors.email}\n\t\t\t\t\t\t\tclassName={cn(errors.email && \"wwc:border-destructive wwc:focus-visible:ring-destructive\")}\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t{errors.email && <p className=\"wwc:text-xs wwc:text-destructive\">{errors.email}</p>}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<DialogFooter>\n\t\t\t\t\t<Button variant=\"outline\" onClick={() => setOpen(false)}>\n\t\t\t\t\t\tCancel\n\t\t\t\t\t</Button>\n\t\t\t\t\t<Button onClick={submit}>Add organization</Button>\n\t\t\t\t</DialogFooter>\n\t\t\t</DialogContent>\n\t\t</Dialog>\n\t);\n}\n\n// Loading placeholder for an org card (shown while the list \"fetches\").\nfunction OrgCardSkeleton() {\n\treturn (\n\t\t<div className=\"wwc:flex wwc:flex-col wwc:gap-4 wwc:rounded-lg wwc:border wwc:border-border wwc:bg-card wwc:p-5\">\n\t\t\t<div className=\"wwc:flex wwc:items-start wwc:justify-between\">\n\t\t\t\t<Skeleton className=\"wwc:h-14 wwc:w-14 wwc:rounded-xl\" />\n\t\t\t\t<Skeleton className=\"wwc:h-7 wwc:w-7 wwc:rounded-md\" />\n\t\t\t</div>\n\t\t\t<div className=\"wwc:space-y-2\">\n\t\t\t\t<Skeleton className=\"wwc:h-4 wwc:w-32\" />\n\t\t\t\t<Skeleton className=\"wwc:h-3 wwc:w-40\" />\n\t\t\t</div>\n\t\t\t<Skeleton className=\"wwc:h-5 wwc:w-24 wwc:rounded-full\" />\n\t\t</div>\n\t);\n}\n\nfunction OrgCard({\n\torg,\n\tonOpen,\n\tonArchive,\n\tonRestore,\n}: {\n\torg: Org;\n\tonOpen: () => void;\n\tonArchive: () => void;\n\tonRestore: () => void;\n}) {\n\tconst archived = org.status === \"Archived\";\n\treturn (\n\t\t<div\n\t\t\trole={archived ? undefined : \"button\"}\n\t\t\ttabIndex={archived ? undefined : 0}\n\t\t\tonClick={archived ? undefined : onOpen}\n\t\t\tonKeyDown={(e) => {\n\t\t\t\tif (!archived && (e.key === \"Enter\" || e.key === \" \")) {\n\t\t\t\t\te.preventDefault();\n\t\t\t\t\tonOpen();\n\t\t\t\t}\n\t\t\t}}\n\t\t\tclassName={cn(\n\t\t\t\t\"wwc:group wwc:relative wwc:flex wwc:flex-col wwc:gap-4 wwc:rounded-lg wwc:border wwc:border-border wwc:bg-card wwc:p-5 wwc:text-left wwc:text-card-foreground wwc:transition-colors\",\n\t\t\t\tarchived ? \"wwc:opacity-70\" : \"wwc:cursor-pointer wwc:hover:border-primary/40 wwc:hover:shadow-sm\",\n\t\t\t)}\n\t\t>\n\t\t\t<div className=\"wwc:flex wwc:items-start wwc:justify-between\">\n\t\t\t\t<OrgLogo org={org} className=\"wwc:h-14 wwc:w-14 wwc:text-base\" />\n\t\t\t\t<DropdownMenu>\n\t\t\t\t\t<DropdownMenuTrigger asChild>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tvariant=\"ghost\"\n\t\t\t\t\t\t\ticon\n\t\t\t\t\t\t\taria-label=\"Organization actions\"\n\t\t\t\t\t\t\tonClick={(e) => e.stopPropagation()}\n\t\t\t\t\t\t\tclassName=\"wwc:h-7 wwc:w-7 wwc:text-muted-foreground\"\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<MoreHorizontal className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t</DropdownMenuTrigger>\n\t\t\t\t\t<DropdownMenuContent align=\"end\" className=\"wwc:w-44\" onClick={(e) => e.stopPropagation()}>\n\t\t\t\t\t\t{archived ? (\n\t\t\t\t\t\t\t<DropdownMenuItem onClick={onRestore}>\n\t\t\t\t\t\t\t\t<ArchiveRestore className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\tRestore\n\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t<DropdownMenuItem onClick={onOpen}>\n\t\t\t\t\t\t\t\t\t<ArrowRight className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\tOpen\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t\t<DropdownMenuItem onClick={onArchive} className=\"wwc:text-destructive focus:wwc:text-destructive\">\n\t\t\t\t\t\t\t\t\t<Archive className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\tArchive\n\t\t\t\t\t\t\t\t</DropdownMenuItem>\n\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</DropdownMenuContent>\n\t\t\t\t</DropdownMenu>\n\t\t\t</div>\n\t\t\t<div className=\"wwc:min-w-0\">\n\t\t\t\t<h3 className=\"wwc:truncate wwc:text-base wwc:font-semibold\">{org.name}</h3>\n\t\t\t\t<p className=\"wwc:mt-1 wwc:flex wwc:items-center wwc:gap-1.5 wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t<MapPin className=\"wwc:h-3.5 wwc:w-3.5 wwc:shrink-0\" />\n\t\t\t\t\t<span className=\"wwc:truncate\">{org.location}</span>\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t\t<div className=\"wwc:flex wwc:items-center wwc:gap-2\">\n\t\t\t\t<Badge variant=\"neutralSoft\">{org.projects} projects</Badge>\n\t\t\t\t{archived && <Badge variant=\"warningSoft\">Archived</Badge>}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\nconst ORG_STATUS_TABS = [\"Active\", \"Archived\"] as const;\n\n// Standalone \"all organizations\" page — only a Core-branded top bar (logo + back), then org cards + add.\nfunction AllOrganizationsView({\n\torgs,\n\tonSelectOrg,\n\tonBack,\n\tonCreateOrg,\n\tonArchiveOrg,\n\tonRestoreOrg,\n}: {\n\torgs: Org[];\n\tonSelectOrg: (id: string) => void;\n\tonBack: () => void;\n\tonCreateOrg: (data: {name: string; country: string; adminEmail: string; logo: string | null}) => void;\n\tonArchiveOrg: (id: string) => void;\n\tonRestoreOrg: (id: string) => void;\n}) {\n\tconst [statusTab, setStatusTab] = useState<(typeof ORG_STATUS_TABS)[number]>(\"Active\");\n\tconst [query, setQuery] = useState(\"\");\n\tconst [pendingArchive, setPendingArchive] = useState<Org | null>(null);\n\t// Simulate a fetch so the cards show core skeletons while \"loading\" (re-runs on tab change).\n\tconst [loading, setLoading] = useState(true);\n\tuseEffect(() => {\n\t\tsetLoading(true);\n\t\tconst t = setTimeout(() => setLoading(false), 700);\n\t\treturn () => clearTimeout(t);\n\t}, [statusTab]);\n\tconst filtered = orgs.filter(\n\t\t(o) => o.status === statusTab && o.name.toLowerCase().includes(query.trim().toLowerCase()),\n\t);\n\n\treturn (\n\t\t<div className=\"wwc:flex wwc:h-full wwc:min-h-0 wwc:flex-col wwc:bg-background wwc:text-foreground\">\n\t\t\t{/* Top nav — Core logo + back to the admin panel. No sidebar. */}\n\t\t\t<header className=\"wwc:flex wwc:h-14 wwc:shrink-0 wwc:items-center wwc:gap-3 wwc:border-b wwc:border-border wwc:bg-card wwc:px-4 wwc:text-card-foreground\">\n\t\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={onBack} className=\"wwc:-ml-1\">\n\t\t\t\t\t<ChevronLeft className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\tBack\n\t\t\t\t</Button>\n\t\t\t\t<div className=\"wwc:h-5 wwc:w-px wwc:bg-border\" />\n\t\t\t\t<WakeMark className=\"wwc:h-5 wwc:w-auto wwc:text-foreground\" />\n\t\t\t\t<span className=\"wwc:text-sm wwc:font-semibold\">Core</span>\n\t\t\t</header>\n\n\t\t\t<main className=\"wwc:min-h-0 wwc:flex-1 wwc:overflow-auto wwc:p-6\">\n\t\t\t\t<div className=\"wwc:mx-auto wwc:max-w-[1200px] wwc:space-y-6\">\n\t\t\t\t\t<div className=\"wwc:flex wwc:items-start wwc:justify-between wwc:gap-4\">\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<h1 className=\"wwc:text-2xl wwc:font-bold wwc:tracking-tight\">Organizations</h1>\n\t\t\t\t\t\t\t<p className=\"wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t\tSelect an organization to manage, or create a new one.\n\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<AddOrgDialog onCreate={onCreateOrg} />\n\t\t\t\t\t</div>\n\n\t\t\t\t\t<div className=\"wwc:flex wwc:flex-wrap wwc:items-center wwc:justify-between wwc:gap-3\">\n\t\t\t\t\t\t<Tabs value={statusTab} onValueChange={(v) => setStatusTab(v as (typeof ORG_STATUS_TABS)[number])}>\n\t\t\t\t\t\t\t<TabsList>\n\t\t\t\t\t\t\t\t{ORG_STATUS_TABS.map((t) => (\n\t\t\t\t\t\t\t\t\t<TabsTrigger key={t} value={t}>\n\t\t\t\t\t\t\t\t\t\t{t}\n\t\t\t\t\t\t\t\t\t\t<span className=\"wwc:ml-1.5 wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t\t{orgs.filter((o) => o.status === t).length}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t</TabsTrigger>\n\t\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t\t</TabsList>\n\t\t\t\t\t\t</Tabs>\n\t\t\t\t\t\t<div className=\"wwc:relative wwc:w-full wwc:max-w-sm\">\n\t\t\t\t\t\t\t<Search className=\"wwc:absolute wwc:left-2.5 wwc:top-1/2 wwc:h-3.5 wwc:w-3.5 wwc:-translate-y-1/2 wwc:text-muted-foreground\" />\n\t\t\t\t\t\t\t<Input\n\t\t\t\t\t\t\t\tvalue={query}\n\t\t\t\t\t\t\t\tonChange={(e) => setQuery(e.target.value)}\n\t\t\t\t\t\t\t\tplaceholder=\"Search organizations…\"\n\t\t\t\t\t\t\t\tclassName=\"wwc:pl-8\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{loading ? (\n\t\t\t\t\t\t<div className=\"wwc:grid wwc:gap-4 wwc:sm:grid-cols-2 wwc:lg:grid-cols-3\">\n\t\t\t\t\t\t\t{Array.from({length: 6}).map((_, i) => (\n\t\t\t\t\t\t\t\t<OrgCardSkeleton key={i} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t) : filtered.length === 0 ? (\n\t\t\t\t\t\t<Empty\n\t\t\t\t\t\t\ticon={<Building2 className=\"wwc:h-8 wwc:w-8\" />}\n\t\t\t\t\t\t\ttitle={query ? \"No matches found\" : `No ${statusTab.toLowerCase()} organizations`}\n\t\t\t\t\t\t\tdescription={\n\t\t\t\t\t\t\t\tquery\n\t\t\t\t\t\t\t\t\t? `No ${statusTab.toLowerCase()} organizations match “${query}”. Try a different search.`\n\t\t\t\t\t\t\t\t\t: statusTab === \"Active\"\n\t\t\t\t\t\t\t\t\t\t? \"Create your first organization to get started.\"\n\t\t\t\t\t\t\t\t\t\t: \"Archived organizations will appear here.\"\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\taction={!query && statusTab === \"Active\" ? <AddOrgDialog onCreate={onCreateOrg} /> : undefined}\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<div className=\"wwc:grid wwc:gap-4 wwc:sm:grid-cols-2 wwc:lg:grid-cols-3\">\n\t\t\t\t\t\t\t{filtered.map((o) => (\n\t\t\t\t\t\t\t\t<OrgCard\n\t\t\t\t\t\t\t\t\tkey={o.id}\n\t\t\t\t\t\t\t\t\torg={o}\n\t\t\t\t\t\t\t\t\tonOpen={() => onSelectOrg(o.id)}\n\t\t\t\t\t\t\t\t\tonArchive={() => setPendingArchive(o)}\n\t\t\t\t\t\t\t\t\tonRestore={() => onRestoreOrg(o.id)}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t</main>\n\n\t\t\t<ConfirmDialog\n\t\t\t\topen={!!pendingArchive}\n\t\t\t\ttitle=\"Archive organization?\"\n\t\t\t\tdescription={\n\t\t\t\t\t<>\n\t\t\t\t\t\tThis will archive <span className=\"wwc:font-medium wwc:text-foreground\">{pendingArchive?.name}</span> and\n\t\t\t\t\t\tall its projects. You can restore it later from the Archived tab.\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tconfirmLabel=\"Archive\"\n\t\t\t\tdestructive\n\t\t\t\tonOpenChange={(o) => !o && setPendingArchive(null)}\n\t\t\t\tonConfirm={() => {\n\t\t\t\t\tif (pendingArchive) onArchiveOrg(pendingArchive.id);\n\t\t\t\t\tsetPendingArchive(null);\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nfunction HomeView({\n\torg,\n\tonGoProjects,\n\tonGoUsers,\n\tonSaveOrg,\n}: {\n\torg: Org;\n\tonGoProjects: () => void;\n\tonGoUsers: () => void;\n\tonSaveOrg: (patch: {name: string; country: string; logo: string | null}) => void;\n}) {\n\tconst stats: {label: string; count: number; icon: typeof FolderKanban; onClick: () => void; cta: string}[] = [\n\t\t{label: \"Projects\", count: PROJECTS.length, icon: FolderKanban, onClick: onGoProjects, cta: \"View projects\"},\n\t\t{label: \"Users\", count: USERS.length, icon: UsersIcon, onClick: onGoUsers, cta: \"View users\"},\n\t];\n\n\treturn (\n\t\t<div className=\"wwc:space-y-6\">\n\t\t\t<div>\n\t\t\t\t<h1 className=\"wwc:text-3xl wwc:font-bold wwc:leading-tight wwc:tracking-tight wwc:md:text-4xl\">\n\t\t\t\t\tWelcome to\n\t\t\t\t\t<br />\n\t\t\t\t\tOrganization Admin\n\t\t\t\t</h1>\n\t\t\t\t<p className=\"wwc:mt-2 wwc:text-sm wwc:text-muted-foreground\">Overview of the selected organization.</p>\n\t\t\t</div>\n\n\t\t\t<Card className=\"wwc:shadow-none\">\n\t\t\t\t<CardContent className=\"wwc:flex wwc:items-center wwc:gap-5 wwc:pt-6\">\n\t\t\t\t\t<OrgLogo org={org} className=\"wwc:h-20 wwc:w-20 wwc:text-2xl\" />\n\t\t\t\t\t<div className=\"wwc:min-w-0 wwc:flex-1\">\n\t\t\t\t\t\t<h2 className=\"wwc:truncate wwc:text-xl wwc:font-semibold\">{org.name}</h2>\n\t\t\t\t\t\t<p className=\"wwc:mt-1 wwc:flex wwc:items-center wwc:gap-1.5 wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t<MapPin className=\"wwc:h-4 wwc:w-4 wwc:shrink-0\" />\n\t\t\t\t\t\t\t{org.location}\n\t\t\t\t\t\t</p>\n\t\t\t\t\t</div>\n\t\t\t\t\t<EditOrgDialog org={org} onSave={onSaveOrg} />\n\t\t\t\t</CardContent>\n\t\t\t</Card>\n\n\t\t\t<div className=\"wwc:grid wwc:gap-4 wwc:sm:grid-cols-2\">\n\t\t\t\t{stats.map((s) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={s.label}\n\t\t\t\t\t\ttype=\"button\"\n\t\t\t\t\t\tonClick={s.onClick}\n\t\t\t\t\t\tclassName=\"wwc:group wwc:flex wwc:flex-col wwc:gap-4 wwc:rounded-lg wwc:border wwc:border-border wwc:bg-card wwc:p-5 wwc:text-left wwc:text-card-foreground wwc:transition-colors wwc:hover:border-primary/40 wwc:hover:bg-muted/40\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-start wwc:justify-between\">\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:h-10 wwc:w-10 wwc:items-center wwc:justify-center wwc:rounded-lg wwc:bg-primary/10 wwc:text-primary\">\n\t\t\t\t\t\t\t\t<s.icon className=\"wwc:h-5 wwc:w-5\" />\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<ArrowRight className=\"wwc:h-4 wwc:w-4 wwc:text-muted-foreground wwc:transition-transform wwc:group-hover:translate-x-0.5\" />\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t<p className=\"wwc:text-2xl wwc:font-bold wwc:tracking-tight\">{s.count}</p>\n\t\t\t\t\t\t\t<p className=\"wwc:text-sm wwc:text-muted-foreground\">{s.label}</p>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<p className=\"wwc:text-sm wwc:font-medium wwc:text-primary\">{s.cta} →</p>\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t);\n}\n\n// ── Delete confirmation ──\n\n// Generic confirm-before-action modal (used for archiving, deactivation, role-edit, and similar).\nfunction ConfirmDialog({\n\topen,\n\ttitle,\n\tdescription,\n\tconfirmLabel,\n\tdestructive,\n\tonOpenChange,\n\tonConfirm,\n}: {\n\topen: boolean;\n\ttitle: React.ReactNode;\n\tdescription: React.ReactNode;\n\tconfirmLabel: string;\n\tdestructive?: boolean;\n\tonOpenChange: (open: boolean) => void;\n\tonConfirm: () => void;\n}) {\n\treturn (\n\t\t<AlertDialog open={open} onOpenChange={onOpenChange}>\n\t\t\t<AlertDialogContent>\n\t\t\t\t<AlertDialogHeader>\n\t\t\t\t\t<AlertDialogTitle>{title}</AlertDialogTitle>\n\t\t\t\t\t<AlertDialogDescription>{description}</AlertDialogDescription>\n\t\t\t\t</AlertDialogHeader>\n\t\t\t\t<AlertDialogFooter>\n\t\t\t\t\t<AlertDialogCancel>Cancel</AlertDialogCancel>\n\t\t\t\t\t<AlertDialogAction\n\t\t\t\t\t\tonClick={onConfirm}\n\t\t\t\t\t\tclassName={destructive ? \"wwc:bg-destructive wwc:text-white wwc:hover:bg-destructive/90\" : undefined}\n\t\t\t\t\t>\n\t\t\t\t\t\t{confirmLabel}\n\t\t\t\t\t</AlertDialogAction>\n\t\t\t\t</AlertDialogFooter>\n\t\t\t</AlertDialogContent>\n\t\t</AlertDialog>\n\t);\n}\n\n// ── Shell ──\n\ntype Editing =\n\t| {surface: \"projects\"; mode: \"edit\" | \"create\"; project: Project | null}\n\t| {surface: \"permissions\"; mode: \"edit\" | \"create\"; role: Role | null}\n\t| {surface: \"users\"; mode: \"edit\" | \"create\"; user: User | null};\n\n/**\n * @deprecated Preview/demo prototype — renders built-in sample data and mock handlers. Not a\n * supported production import: compose your page from the widgets this template uses, wired to your\n * own data (see the CoreAdminPanel template docs in Storybook). Slated for removal from the public API in a\n * future major.\n */\nexport function AdminPanel() {\n\tconst [active, setActive] = useState<TabId>(\"home\");\n\tconst [orgs, setOrgs] = useState<Org[]>(INITIAL_ORGS);\n\tconst [activeOrgId, setActiveOrgId] = useState(INITIAL_ORGS[0].id);\n\tconst activeOrg = orgs.find((o) => o.id === activeOrgId) ?? orgs[0];\n\t// The standalone \"all organizations\" page (own top bar), overlaying the whole admin shell.\n\tconst [showOrgs, setShowOrgs] = useState(false);\n\t// A single editor session — either a project or a role, in edit or create mode. Its draft state lives\n\t// here so the sticky save bar can float full-width over the whole content region.\n\tconst [editing, setEditing] = useState<Editing | null>(null);\n\t// Project draft\n\tconst [fields, setFields] = useState<ProjectFields>(EMPTY_FIELDS);\n\tconst [fieldsBaseline, setFieldsBaseline] = useState<ProjectFields>(EMPTY_FIELDS);\n\tconst [modules, setModules] = useState<Record<string, boolean>>(moduleDefaults);\n\tconst [modulesBaseline, setModulesBaseline] = useState<Record<string, boolean>>(moduleDefaults);\n\t// Role draft\n\tconst [roleName, setRoleName] = useState(\"\");\n\tconst [roleNameBaseline, setRoleNameBaseline] = useState(\"\");\n\tconst [perms, setPerms] = useState<Record<string, boolean>>(permDefaults);\n\tconst [permsBaseline, setPermsBaseline] = useState<Record<string, boolean>>(permDefaults);\n\t// User draft\n\tconst [userFields, setUserFields] = useState<UserFields>(EMPTY_USER);\n\tconst [userFieldsBaseline, setUserFieldsBaseline] = useState<UserFields>(EMPTY_USER);\n\t// Set on a save attempt with missing required fields; drives the inline field errors (keyed by field name).\n\tconst [errors, setErrors] = useState<Record<string, boolean>>({});\n\t// Editing a role affects all assigned users — confirm before committing.\n\tconst [roleEditConfirm, setRoleEditConfirm] = useState(false);\n\t// Removing a linked person's project on a user edit unlinks them — confirm before committing.\n\tconst [userSaveConfirm, setUserSaveConfirm] = useState(false);\n\t// Toasts need a <Toaster> in the DOM. Hosts like the web app already mount one; isolated hosts\n\t// (e.g. Studio's preview iframe) don't — so mount our own only when none exists, to avoid duplicates.\n\tconst [ownToaster, setOwnToaster] = useState(false);\n\tuseEffect(() => {\n\t\t// Sonner mounts a persistent <section aria-label=\"Notifications …\"> region (the [data-sonner-toaster]\n\t\t// element only appears once a toast is live), so detect the region to know if a host Toaster exists.\n\t\tconst hasHostToaster = document.querySelector(\n\t\t\t'[data-sonner-toaster], section[aria-live][aria-label*=\"Notification\"]',\n\t\t);\n\t\tsetOwnToaster(!hasHostToaster);\n\t}, []);\n\tconst activeItem = NAV_ITEMS.find((i) => i.id === active) ?? NAV_ITEMS[0];\n\n\t// Only treat the editor as open when it matches the active tab (defensive — tab switches close it).\n\tconst openEditor = editing && editing.surface === active ? editing : null;\n\tconst entity = openEditor?.surface === \"permissions\" ? \"role\" : openEditor?.surface === \"users\" ? \"user\" : \"project\";\n\n\tconst projectChangeCount =\n\t\t(Object.keys(fields) as (keyof ProjectFields)[]).filter((k) => fields[k] !== fieldsBaseline[k]).length +\n\t\tMODULES.filter((m) => modules[m.id] !== modulesBaseline[m.id]).length;\n\tconst roleChangeCount =\n\t\t(roleName !== roleNameBaseline ? 1 : 0) + ALL_PERM_IDS.filter((id) => perms[id] !== permsBaseline[id]).length;\n\tconst userChangeCount =\n\t\t([\"email\", \"role\", \"mobile\", \"dialCode\"] as const).filter((k) => userFields[k] !== userFieldsBaseline[k]).length +\n\t\t(userFields.projects.join(\"|\") !== userFieldsBaseline.projects.join(\"|\") ? 1 : 0) +\n\t\t(userFields.linkedPeople.join(\"|\") !== userFieldsBaseline.linkedPeople.join(\"|\") ? 1 : 0);\n\tconst changeCount =\n\t\topenEditor?.surface === \"permissions\"\n\t\t\t? roleChangeCount\n\t\t\t: openEditor?.surface === \"users\"\n\t\t\t\t? userChangeCount\n\t\t\t\t: projectChangeCount;\n\n\t// Create mode always shows the bar (nothing to save yet, but the primary action lives there);\n\t// edit mode shows it only once there are unsaved changes.\n\tconst showSaveBar = !!openEditor && (openEditor.mode === \"create\" || changeCount > 0);\n\n\t// An editor replaces the whole surface — hide the generic tab header while it's open.\n\t// Home renders its own header; the generic title/add-button header is for the list tabs only.\n\tconst showTabHeader = !openEditor && active !== \"home\";\n\n\tconst openEditProject = (p: Project) => {\n\t\tconst f = fieldsFromProject(p);\n\t\tconst mods = moduleDefaults();\n\t\tsetFields(f);\n\t\tsetFieldsBaseline(f);\n\t\tsetModules(mods);\n\t\tsetModulesBaseline(mods);\n\t\tsetErrors({});\n\t\tsetEditing({surface: \"projects\", mode: \"edit\", project: p});\n\t};\n\tconst openCreateProject = () => {\n\t\tconst mods = moduleDefaults();\n\t\tsetFields(EMPTY_FIELDS);\n\t\tsetFieldsBaseline(EMPTY_FIELDS);\n\t\tsetModules(mods);\n\t\tsetModulesBaseline(mods);\n\t\tsetErrors({});\n\t\tsetEditing({surface: \"projects\", mode: \"create\", project: null});\n\t};\n\tconst openEditRole = (r: Role) => {\n\t\tsetRoleName(r.name);\n\t\tsetRoleNameBaseline(r.name);\n\t\tsetPerms({...r.permissions});\n\t\tsetPermsBaseline({...r.permissions});\n\t\tsetErrors({});\n\t\tsetEditing({surface: \"permissions\", mode: \"edit\", role: r});\n\t};\n\tconst openCreateRole = () => {\n\t\tconst d = permDefaults();\n\t\tsetRoleName(\"\");\n\t\tsetRoleNameBaseline(\"\");\n\t\tsetPerms(d);\n\t\tsetPermsBaseline({...d});\n\t\tsetErrors({});\n\t\tsetEditing({surface: \"permissions\", mode: \"create\", role: null});\n\t};\n\tconst openEditUser = (u: User) => {\n\t\tconst f = fieldsFromUser(u);\n\t\tsetUserFields(f);\n\t\tsetUserFieldsBaseline({...f, projects: [...f.projects], linkedPeople: [...f.linkedPeople]});\n\t\tsetErrors({});\n\t\tsetEditing({surface: \"users\", mode: \"edit\", user: u});\n\t};\n\tconst openCreateUser = () => {\n\t\tsetUserFields(EMPTY_USER);\n\t\tsetUserFieldsBaseline(EMPTY_USER);\n\t\tsetErrors({});\n\t\tsetEditing({surface: \"users\", mode: \"create\", user: null});\n\t};\n\n\tconst closeEditor = () => {\n\t\tsetEditing(null);\n\t\tsetErrors({});\n\t};\n\tconst clearError = (key: string) => setErrors((prev) => (prev[key] ? {...prev, [key]: false} : prev));\n\tconst setField = <K extends keyof ProjectFields>(key: K, value: ProjectFields[K]) => {\n\t\tsetFields((prev) => ({...prev, [key]: value}));\n\t\t// Clear the inline error(s) tied to the edited field.\n\t\tsetErrors((prev) => {\n\t\t\tconst next = {...prev};\n\t\t\tif (key === \"name\") {\n\t\t\t\tnext.name = false;\n\t\t\t\tnext.nameDup = false;\n\t\t\t} else if (key === \"country\") next.country = false;\n\t\t\telse if (key === \"timeZone\") next.timeZone = false;\n\t\t\telse if (key === \"contractDuration\") next.duration = false;\n\t\t\telse if (key === \"startDate\") next.startDate = false;\n\t\t\treturn next;\n\t\t});\n\t};\n\tconst onRoleName = (value: string) => {\n\t\tsetRoleName(value);\n\t\tif (value.trim()) clearError(\"name\");\n\t};\n\tconst setUserField = <K extends keyof UserFields>(key: K, value: UserFields[K]) => {\n\t\tsetUserFields((prev) => ({...prev, [key]: value}));\n\t\tif (key === \"email\") {\n\t\t\tsetErrors((prev) => ({...prev, email: false, emailInvalid: false, emailDup: false}));\n\t\t} else if (key === \"projects\" ? (value as string[]).length > 0 : String(value).trim() !== \"\") {\n\t\t\tclearError(key);\n\t\t}\n\t};\n\tconst toggleModule = (id: string, value: boolean) => setModules((prev) => ({...prev, [id]: value}));\n\tconst updatePermissions = (next: Record<string, boolean>) => setPerms(next);\n\n\tconst draftName = () =>\n\t\topenEditor?.surface === \"permissions\" ? roleName : openEditor?.surface === \"users\" ? userFields.email : fields.name;\n\tconst noun = entity === \"role\" ? \"Role\" : entity === \"user\" ? \"User\" : \"Project\";\n\n\t// Returns a map of invalid required fields, or null when everything required is present.\n\tconst validate = (): Record<string, boolean> | null => {\n\t\tif (!openEditor) return null;\n\t\tconst emailRe = /^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/;\n\t\tif (openEditor.surface === \"users\") {\n\t\t\tconst email = userFields.email.trim();\n\t\t\tconst e: Record<string, boolean> = {};\n\t\t\tif (!email) e.email = true;\n\t\t\telse if (!emailRe.test(email)) e.emailInvalid = true;\n\t\t\t// Duplicate-email check only applies to new users (email is read-only when editing).\n\t\t\telse if (openEditor.mode === \"create\" && USERS.some((u) => u.email.toLowerCase() === email.toLowerCase()))\n\t\t\t\te.emailDup = true;\n\t\t\tif (!userFields.role) e.role = true;\n\t\t\tif (userFields.projects.length === 0) e.projects = true;\n\t\t\treturn Object.keys(e).length ? e : null;\n\t\t}\n\t\tif (openEditor.surface === \"projects\") {\n\t\t\tconst e: Record<string, boolean> = {};\n\t\t\tconst nm = fields.name.trim();\n\t\t\tif (!nm) e.name = true;\n\t\t\telse if (\n\t\t\t\tPROJECTS.some(\n\t\t\t\t\t(pr) =>\n\t\t\t\t\t\tpr.name.trim().toLowerCase() === nm.toLowerCase() &&\n\t\t\t\t\t\t(openEditor.mode === \"create\" || pr.id !== openEditor.project?.id),\n\t\t\t\t)\n\t\t\t)\n\t\t\t\te.nameDup = true;\n\t\t\tif (!fields.country) e.country = true;\n\t\t\tif (!fields.timeZone) e.timeZone = true;\n\t\t\tconst dur = fields.contractDuration.trim();\n\t\t\tif (dur && (!/^\\d+$/.test(dur) || Number(dur) <= 0)) e.duration = true;\n\t\t\tif (fields.startDate) {\n\t\t\t\tconst start = parseDMY(fields.startDate);\n\t\t\t\tif (start) {\n\t\t\t\t\tconst today = new Date();\n\t\t\t\t\ttoday.setHours(0, 0, 0, 0);\n\t\t\t\t\tstart.setHours(0, 0, 0, 0);\n\t\t\t\t\tif (start.getTime() > today.getTime()) e.startDate = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn Object.keys(e).length ? e : null;\n\t\t}\n\t\t// Roles — name only.\n\t\treturn draftName().trim() ? null : {name: true};\n\t};\n\n\tconst save = () => {\n\t\tif (!openEditor) return;\n\t\t// Required fields are enforced in both create and edit — refuse the save and surface inline errors.\n\t\tconst errs = validate();\n\t\tif (errs) {\n\t\t\tsetErrors(errs);\n\t\t\treturn;\n\t\t}\n\t\tif (openEditor.mode === \"create\") {\n\t\t\tconst nm = draftName().trim();\n\t\t\ttoast.success(`${noun} “${nm}” created`);\n\t\t\tsetEditing(null);\n\t\t\tsetErrors({});\n\t\t\treturn;\n\t\t}\n\t\t// Editing a role affects every user assigned to it — confirm before committing.\n\t\tif (openEditor.surface === \"permissions\") {\n\t\t\tsetRoleEditConfirm(true);\n\t\t\treturn;\n\t\t}\n\t\tif (openEditor.surface === \"projects\") {\n\t\t\tsetFieldsBaseline(fields);\n\t\t\tsetModulesBaseline(modules);\n\t\t\ttoast.success(\"Changes saved\");\n\t\t\tsetErrors({});\n\t\t\treturn;\n\t\t}\n\t\t// Editing a user: if a project the linked person belongs to was removed, warn about unlinking first.\n\t\tconst removedProject = userFieldsBaseline.projects.some((pr) => !userFields.projects.includes(pr));\n\t\tif (userFields.linkedPeople.length > 0 && removedProject) {\n\t\t\tsetUserSaveConfirm(true);\n\t\t\treturn;\n\t\t}\n\t\tcommitUserEdit();\n\t};\n\tconst commitUserEdit = () => {\n\t\tsetUserFieldsBaseline({\n\t\t\t...userFields,\n\t\t\tprojects: [...userFields.projects],\n\t\t\tlinkedPeople: [...userFields.linkedPeople],\n\t\t});\n\t\ttoast.success(\"Changes saved\");\n\t\tsetErrors({});\n\t\tsetUserSaveConfirm(false);\n\t};\n\tconst commitRoleEdit = () => {\n\t\tsetRoleNameBaseline(roleName);\n\t\tsetPermsBaseline({...perms});\n\t\ttoast.success(\"Changes saved\");\n\t\tsetErrors({});\n\t\tsetRoleEditConfirm(false);\n\t};\n\tconst saveDraft = () => {\n\t\tconst nm = draftName();\n\t\ttoast.success(nm ? `Draft “${nm}” saved` : \"Draft saved\");\n\t\tsetEditing(null);\n\t};\n\tconst discard = () => {\n\t\tif (!openEditor) return;\n\t\tif (openEditor.mode === \"create\") {\n\t\t\tsetEditing(null);\n\t\t\treturn;\n\t\t}\n\t\tif (openEditor.surface === \"projects\") {\n\t\t\tsetFields(fieldsBaseline);\n\t\t\tsetModules(modulesBaseline);\n\t\t} else if (openEditor.surface === \"permissions\") {\n\t\t\tsetRoleName(roleNameBaseline);\n\t\t\tsetPerms({...permsBaseline});\n\t\t} else {\n\t\t\tsetUserFields({\n\t\t\t\t...userFieldsBaseline,\n\t\t\t\tprojects: [...userFieldsBaseline.projects],\n\t\t\t\tlinkedPeople: [...userFieldsBaseline.linkedPeople],\n\t\t\t});\n\t\t}\n\t\tsetErrors({});\n\t};\n\n\tconst goToTab = (id: TabId) => {\n\t\tsetEditing(null);\n\t\tsetErrors({});\n\t\tsetActive(id);\n\t};\n\n\tconst addRecord = () => {\n\t\tif (active === \"projects\") openCreateProject();\n\t\telse if (active === \"permissions\") openCreateRole();\n\t\telse if (active === \"users\") openCreateUser();\n\t};\n\n\tconst saveOrg = (patch: {name: string; country: string; logo: string | null}) => {\n\t\tsetOrgs((prev) => prev.map((o) => (o.id === activeOrgId ? {...o, ...patch, location: patch.country} : o)));\n\t\ttoast.success(\"Organization updated\");\n\t};\n\tconst createOrg = (data: {name: string; country: string; adminEmail: string; logo: string | null}) => {\n\t\tconst id = `o${orgs.length + 1}`;\n\t\tconst org: Org = {\n\t\t\tid,\n\t\t\tname: data.name,\n\t\t\tlocation: data.country || \"—\",\n\t\t\tcountry: data.country,\n\t\t\tlogo: data.logo,\n\t\t\tprojects: 0,\n\t\t\tstatus: \"Active\",\n\t\t};\n\t\tsetOrgs((prev) => [org, ...prev]);\n\t\tsetActiveOrgId(id);\n\t\tsetShowOrgs(false);\n\t\tsetActive(\"home\");\n\t\ttoast.success(`Organization “${data.name}” created`);\n\t};\n\tconst archiveOrg = (id: string) => {\n\t\tconst next = orgs.map((o) => (o.id === id ? {...o, status: \"Archived\" as const} : o));\n\t\tsetOrgs(next);\n\t\t// If the archived org was the active one, switch to the first remaining active org.\n\t\tif (id === activeOrgId) {\n\t\t\tconst firstActive = next.find((o) => o.status === \"Active\");\n\t\t\tif (firstActive) setActiveOrgId(firstActive.id);\n\t\t}\n\t\ttoast.success(\"Organization archived\");\n\t};\n\tconst restoreOrg = (id: string) => {\n\t\tsetOrgs((prev) => prev.map((o) => (o.id === id ? {...o, status: \"Active\"} : o)));\n\t\ttoast.success(\"Organization restored\");\n\t};\n\n\t// The organizations page is a full-screen overlay with its own top bar — render it instead of the shell.\n\tif (showOrgs) {\n\t\treturn (\n\t\t\t<AllOrganizationsView\n\t\t\t\torgs={orgs}\n\t\t\t\tonSelectOrg={(id) => {\n\t\t\t\t\tsetActiveOrgId(id);\n\t\t\t\t\tsetShowOrgs(false);\n\t\t\t\t}}\n\t\t\t\tonBack={() => setShowOrgs(false)}\n\t\t\t\tonCreateOrg={createOrg}\n\t\t\t\tonArchiveOrg={archiveOrg}\n\t\t\t\tonRestoreOrg={restoreOrg}\n\t\t\t/>\n\t\t);\n\t}\n\n\tconst editorName = openEditor\n\t\t? openEditor.mode === \"create\"\n\t\t\t? `New ${entity}`\n\t\t\t: openEditor.surface === \"projects\"\n\t\t\t\t? openEditor.project?.name\n\t\t\t\t: openEditor.surface === \"permissions\"\n\t\t\t\t\t? openEditor.role?.name\n\t\t\t\t\t: openEditor.user?.name\n\t\t: null;\n\tconst topBarLabel = openEditor ? `${activeItem.label} / ${editorName}` : activeItem.label;\n\n\treturn (\n\t\t<div className=\"wwc:flex wwc:h-full wwc:min-h-0 wwc:bg-background wwc:text-foreground\">\n\t\t\t<CoreAppSidebar\n\t\t\t\tviewLevel=\"org\"\n\t\t\t\torgGroups={ADMIN_GROUPS}\n\t\t\t\tactiveItemId={active}\n\t\t\t\tshowSearch={false}\n\t\t\t\tshowNotifications={false}\n\t\t\t\torgs={orgs.filter((o) => o.status === \"Active\").map((o) => o.name)}\n\t\t\t\tactiveOrg={activeOrg.name}\n\t\t\t\tactiveOrgLogo={\n\t\t\t\t\tactiveOrg.logo ? (\n\t\t\t\t\t\t<span className=\"wwc:flex wwc:h-5 wwc:w-5 wwc:items-center wwc:justify-center wwc:overflow-hidden wwc:rounded wwc:bg-white\">\n\t\t\t\t\t\t\t<img src={activeOrg.logo} alt=\"\" className=\"wwc:h-full wwc:w-full wwc:object-contain wwc:p-0.5\" />\n\t\t\t\t\t\t</span>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<span className=\"wwc:flex wwc:h-5 wwc:w-5 wwc:items-center wwc:justify-center wwc:rounded wwc:bg-primary/10 wwc:text-[9px] wwc:font-semibold wwc:text-primary\">\n\t\t\t\t\t\t\t{orgInitials(activeOrg.name)}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t\tonOrgChange={(name) => {\n\t\t\t\t\tconst next = orgs.find((o) => o.name === name);\n\t\t\t\t\tif (next) setActiveOrgId(next.id);\n\t\t\t\t}}\n\t\t\t\tonOrgViewAll={() => setShowOrgs(true)}\n\t\t\t\tonNavigate={(label) => {\n\t\t\t\t\tconst item = NAV_ITEMS.find((i) => i.label === label);\n\t\t\t\t\tif (item) goToTab(item.id);\n\t\t\t\t}}\n\t\t\t/>\n\n\t\t\t<div className=\"wwc:relative wwc:flex wwc:min-w-0 wwc:flex-1 wwc:flex-col\">\n\t\t\t\t<CoreAppTopBar activeLabel={topBarLabel} showProjectSwitcher={false} />\n\n\t\t\t\t<main className=\"wwc:relative wwc:flex wwc:min-h-0 wwc:flex-1 wwc:flex-col wwc:overflow-auto\">\n\t\t\t\t\t<div className=\"wwc:mx-auto wwc:w-full wwc:max-w-[1200px] wwc:flex-1 wwc:space-y-4 wwc:p-6\">\n\t\t\t\t\t\t{showTabHeader && (\n\t\t\t\t\t\t\t<div className=\"wwc:flex wwc:items-start wwc:justify-between wwc:gap-4\">\n\t\t\t\t\t\t\t\t<div>\n\t\t\t\t\t\t\t\t\t<h1 className=\"wwc:text-2xl wwc:font-bold wwc:tracking-tight\">{activeItem.label}</h1>\n\t\t\t\t\t\t\t\t\t<p className=\"wwc:text-sm wwc:text-muted-foreground\">\n\t\t\t\t\t\t\t\t\t\t{active === \"projects\" && \"Every project in the organization and its status.\"}\n\t\t\t\t\t\t\t\t\t\t{active === \"permissions\" && \"Roles and what each one is allowed to do.\"}\n\t\t\t\t\t\t\t\t\t\t{active === \"users\" && \"People with access, their role, and status.\"}\n\t\t\t\t\t\t\t\t\t</p>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<Button size=\"sm\" onClick={addRecord}>\n\t\t\t\t\t\t\t\t\t<Plus className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t\t{ADD_LABEL[active]}\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)}\n\t\t\t\t\t\t{active === \"home\" && (\n\t\t\t\t\t\t\t<HomeView\n\t\t\t\t\t\t\t\torg={activeOrg}\n\t\t\t\t\t\t\t\tonGoProjects={() => goToTab(\"projects\")}\n\t\t\t\t\t\t\t\tonGoUsers={() => goToTab(\"users\")}\n\t\t\t\t\t\t\t\tonSaveOrg={saveOrg}\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t)}\n\t\t\t\t\t\t{active === \"projects\" &&\n\t\t\t\t\t\t\t(openEditor?.surface === \"projects\" ? (\n\t\t\t\t\t\t\t\t<ProjectForm\n\t\t\t\t\t\t\t\t\tmode={openEditor.mode}\n\t\t\t\t\t\t\t\t\tproject={openEditor.project}\n\t\t\t\t\t\t\t\t\tdraft={fields}\n\t\t\t\t\t\t\t\t\tonField={setField}\n\t\t\t\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\t\t\t\tmodules={modules}\n\t\t\t\t\t\t\t\t\tonToggleModule={toggleModule}\n\t\t\t\t\t\t\t\t\tonBack={closeEditor}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<ProjectsView onOpen={openEditProject} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{active === \"permissions\" &&\n\t\t\t\t\t\t\t(openEditor?.surface === \"permissions\" ? (\n\t\t\t\t\t\t\t\t<RoleForm\n\t\t\t\t\t\t\t\t\tmode={openEditor.mode}\n\t\t\t\t\t\t\t\t\trole={openEditor.role}\n\t\t\t\t\t\t\t\t\tname={roleName}\n\t\t\t\t\t\t\t\t\tonName={onRoleName}\n\t\t\t\t\t\t\t\t\tnameError={!!errors.name}\n\t\t\t\t\t\t\t\t\tperms={perms}\n\t\t\t\t\t\t\t\t\tonPermissionsChange={updatePermissions}\n\t\t\t\t\t\t\t\t\tonBack={closeEditor}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<PermissionsView onOpen={openEditRole} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t\t{active === \"users\" &&\n\t\t\t\t\t\t\t(openEditor?.surface === \"users\" ? (\n\t\t\t\t\t\t\t\t<UserForm\n\t\t\t\t\t\t\t\t\tmode={openEditor.mode}\n\t\t\t\t\t\t\t\t\tuser={openEditor.user}\n\t\t\t\t\t\t\t\t\tdraft={userFields}\n\t\t\t\t\t\t\t\t\tonField={setUserField}\n\t\t\t\t\t\t\t\t\terrors={errors}\n\t\t\t\t\t\t\t\t\tonBack={closeEditor}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t<UsersView onOpen={openEditUser} />\n\t\t\t\t\t\t\t))}\n\t\t\t\t\t</div>\n\n\t\t\t\t\t{/* Sticky save bar — a sibling of the padded content div, so it needs no negative margins. */}\n\t\t\t\t\t{showSaveBar && (\n\t\t\t\t\t\t<FormActionBar\n\t\t\t\t\t\t\tstatus={\n\t\t\t\t\t\t\t\topenEditor.mode === \"create\" ? (\n\t\t\t\t\t\t\t\t\t`New ${entity} — not saved yet`\n\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<span className=\"wwc:font-medium wwc:text-foreground\">{changeCount}</span> unsaved change\n\t\t\t\t\t\t\t\t\t\t{changeCount === 1 ? \"\" : \"s\"}\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}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Button variant=\"ghost\" size=\"sm\" onClick={discard}>\n\t\t\t\t\t\t\t\tDiscard\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t{openEditor.mode === \"create\" && (\n\t\t\t\t\t\t\t\t<Button variant=\"outline\" size=\"sm\" onClick={saveDraft}>\n\t\t\t\t\t\t\t\t\tSave as draft\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t<Button size=\"sm\" onClick={save} disabled={openEditor.mode === \"edit\" && changeCount === 0}>\n\t\t\t\t\t\t\t\t<Save className=\"wwc:h-4 wwc:w-4\" />\n\t\t\t\t\t\t\t\t{openEditor.mode === \"create\" ? `Save ${entity}` : \"Save changes\"}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t</FormActionBar>\n\t\t\t\t\t)}\n\t\t\t\t</main>\n\t\t\t</div>\n\n\t\t\t<ConfirmDialog\n\t\t\t\topen={roleEditConfirm}\n\t\t\t\ttitle=\"Save role changes?\"\n\t\t\t\tdescription=\"Updating this role affects all users assigned to it. Do you want to proceed?\"\n\t\t\t\tconfirmLabel=\"Save changes\"\n\t\t\t\tonOpenChange={(o) => !o && setRoleEditConfirm(false)}\n\t\t\t\tonConfirm={commitRoleEdit}\n\t\t\t/>\n\t\t\t<ConfirmDialog\n\t\t\t\topen={userSaveConfirm}\n\t\t\t\ttitle=\"Save changes?\"\n\t\t\t\tdescription={\n\t\t\t\t\t<>\n\t\t\t\t\t\tRemoving project access will unlink{\" \"}\n\t\t\t\t\t\t<span className=\"wwc:font-medium wwc:text-foreground\">\n\t\t\t\t\t\t\t{userFields.linkedPeople[0] ?? \"the linked person\"}\n\t\t\t\t\t\t</span>{\" \"}\n\t\t\t\t\t\tfrom this user. Do you want to proceed?\n\t\t\t\t\t</>\n\t\t\t\t}\n\t\t\t\tconfirmLabel=\"Save changes\"\n\t\t\t\tonOpenChange={(o) => !o && setUserSaveConfirm(false)}\n\t\t\t\tonConfirm={commitUserEdit}\n\t\t\t/>\n\n\t\t\t{ownToaster && <Toaster position=\"top-right\" />}\n\t\t</div>\n\t);\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
//#region src/pages/core-analytics-overview.d.ts
|
|
2
|
+
/**
|
|
3
|
+
* @deprecated Preview/demo prototype — renders built-in sample data and mock handlers. Not a
|
|
4
|
+
* supported production import: compose your page from the widgets this template uses, wired to your
|
|
5
|
+
* own data (see the CoreAnalyticsOverview template docs in Storybook). Slated for removal from the public API in a
|
|
6
|
+
* future major.
|
|
7
|
+
*/
|
|
8
|
+
export declare function AnalyticsOverview(): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
//#endregion
|
|
10
|
+
//# sourceMappingURL=core-analytics-overview.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core-analytics-overview.d.mts","names":[],"sources":["../../src/pages/core-analytics-overview.tsx"],"mappings":";;;;;;;wBAqSgB,iDAAiB,IAAA"}
|