@freighttech/ui 0.13.18
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/LICENSE +21 -0
- package/README.md +31 -0
- package/dist/backend/AppShell.js +1289 -0
- package/dist/backend/AppShell.js.map +7 -0
- package/dist/backend/BackendChromeProvider.js +83 -0
- package/dist/backend/BackendChromeProvider.js.map +7 -0
- package/dist/backend/BackendPageSurface.js +19 -0
- package/dist/backend/BackendPageSurface.js.map +7 -0
- package/dist/backend/CollapsibleNavSection.js +149 -0
- package/dist/backend/CollapsibleNavSection.js.map +7 -0
- package/dist/backend/ContextHelp.js +33 -0
- package/dist/backend/ContextHelp.js.map +7 -0
- package/dist/backend/CrudForm.js +3163 -0
- package/dist/backend/CrudForm.js.map +7 -0
- package/dist/backend/DataTable.js +2091 -0
- package/dist/backend/DataTable.js.map +7 -0
- package/dist/backend/EmptyState.js +52 -0
- package/dist/backend/EmptyState.js.map +7 -0
- package/dist/backend/FilterBar.js +147 -0
- package/dist/backend/FilterBar.js.map +7 -0
- package/dist/backend/FilterOverlay.js +337 -0
- package/dist/backend/FilterOverlay.js.map +7 -0
- package/dist/backend/FlashMessages.js +158 -0
- package/dist/backend/FlashMessages.js.map +7 -0
- package/dist/backend/HtmlRichTextEditor.js +129 -0
- package/dist/backend/HtmlRichTextEditor.js.map +7 -0
- package/dist/backend/IntegrationsButton.js +25 -0
- package/dist/backend/IntegrationsButton.js.map +7 -0
- package/dist/backend/JsonBuilder.js +323 -0
- package/dist/backend/JsonBuilder.js.map +7 -0
- package/dist/backend/JsonDisplay.js +207 -0
- package/dist/backend/JsonDisplay.js.map +7 -0
- package/dist/backend/NextStepCallout.js +79 -0
- package/dist/backend/NextStepCallout.js.map +7 -0
- package/dist/backend/Page.js +27 -0
- package/dist/backend/Page.js.map +7 -0
- package/dist/backend/PerspectiveSidebar.js +456 -0
- package/dist/backend/PerspectiveSidebar.js.map +7 -0
- package/dist/backend/ProfileDropdown.js +341 -0
- package/dist/backend/ProfileDropdown.js.map +7 -0
- package/dist/backend/RowActions.js +155 -0
- package/dist/backend/RowActions.js.map +7 -0
- package/dist/backend/SectionHeader.js +74 -0
- package/dist/backend/SectionHeader.js.map +7 -0
- package/dist/backend/SettingsButton.js +25 -0
- package/dist/backend/SettingsButton.js.map +7 -0
- package/dist/backend/Sidebar.js +510 -0
- package/dist/backend/Sidebar.js.map +7 -0
- package/dist/backend/Sidebar.stories.js +166 -0
- package/dist/backend/Sidebar.stories.js.map +7 -0
- package/dist/backend/TruncatedCell.js +92 -0
- package/dist/backend/TruncatedCell.js.map +7 -0
- package/dist/backend/UserMenu.js +146 -0
- package/dist/backend/UserMenu.js.map +7 -0
- package/dist/backend/ValueIcons.js +34 -0
- package/dist/backend/ValueIcons.js.map +7 -0
- package/dist/backend/WebhookSetupGuide.js +79 -0
- package/dist/backend/WebhookSetupGuide.js.map +7 -0
- package/dist/backend/charts/BarChart.js +154 -0
- package/dist/backend/charts/BarChart.js.map +7 -0
- package/dist/backend/charts/ChartUtils.js +141 -0
- package/dist/backend/charts/ChartUtils.js.map +7 -0
- package/dist/backend/charts/ComboChart.js +261 -0
- package/dist/backend/charts/ComboChart.js.map +7 -0
- package/dist/backend/charts/ComboChart.stories.js +88 -0
- package/dist/backend/charts/ComboChart.stories.js.map +7 -0
- package/dist/backend/charts/KpiCard.js +96 -0
- package/dist/backend/charts/KpiCard.js.map +7 -0
- package/dist/backend/charts/LineChart.js +165 -0
- package/dist/backend/charts/LineChart.js.map +7 -0
- package/dist/backend/charts/PieChart.js +121 -0
- package/dist/backend/charts/PieChart.js.map +7 -0
- package/dist/backend/charts/ScatterChart.js +320 -0
- package/dist/backend/charts/ScatterChart.js.map +7 -0
- package/dist/backend/charts/TopNTable.js +91 -0
- package/dist/backend/charts/TopNTable.js.map +7 -0
- package/dist/backend/charts/WaterfallChart.js +136 -0
- package/dist/backend/charts/WaterfallChart.js.map +7 -0
- package/dist/backend/charts/index.js +30 -0
- package/dist/backend/charts/index.js.map +7 -0
- package/dist/backend/columns/ColumnChooserPanel.js +244 -0
- package/dist/backend/columns/ColumnChooserPanel.js.map +7 -0
- package/dist/backend/confirm-dialog/ConfirmDialog.js +214 -0
- package/dist/backend/confirm-dialog/ConfirmDialog.js.map +7 -0
- package/dist/backend/confirm-dialog/index.js +7 -0
- package/dist/backend/confirm-dialog/index.js.map +7 -0
- package/dist/backend/confirm-dialog/useConfirmDialog.js +113 -0
- package/dist/backend/confirm-dialog/useConfirmDialog.js.map +7 -0
- package/dist/backend/custom-fields/FieldDefinitionsEditor.js +1352 -0
- package/dist/backend/custom-fields/FieldDefinitionsEditor.js.map +7 -0
- package/dist/backend/custom-fields/FieldDefinitionsManager.js +332 -0
- package/dist/backend/custom-fields/FieldDefinitionsManager.js.map +7 -0
- package/dist/backend/dashboard/DashboardScreen.js +598 -0
- package/dist/backend/dashboard/DashboardScreen.js.map +7 -0
- package/dist/backend/dashboard/index.js +5 -0
- package/dist/backend/dashboard/index.js.map +7 -0
- package/dist/backend/dashboard/widgetRegistry.js +55 -0
- package/dist/backend/dashboard/widgetRegistry.js.map +7 -0
- package/dist/backend/date-range/DateRangeSelect.js +39 -0
- package/dist/backend/date-range/DateRangeSelect.js.map +7 -0
- package/dist/backend/date-range/InlineDateRangeSelect.js +42 -0
- package/dist/backend/date-range/InlineDateRangeSelect.js.map +7 -0
- package/dist/backend/date-range/InlineGranularitySelect.js +40 -0
- package/dist/backend/date-range/InlineGranularitySelect.js.map +7 -0
- package/dist/backend/date-range/dateRanges.js +176 -0
- package/dist/backend/date-range/dateRanges.js.map +7 -0
- package/dist/backend/date-range/index.js +25 -0
- package/dist/backend/date-range/index.js.map +7 -0
- package/dist/backend/detail/AccessDeniedMessage.js +28 -0
- package/dist/backend/detail/AccessDeniedMessage.js.map +7 -0
- package/dist/backend/detail/ActivitiesSection.js +947 -0
- package/dist/backend/detail/ActivitiesSection.js.map +7 -0
- package/dist/backend/detail/AddressEditor.js +417 -0
- package/dist/backend/detail/AddressEditor.js.map +7 -0
- package/dist/backend/detail/AddressTiles.js +441 -0
- package/dist/backend/detail/AddressTiles.js.map +7 -0
- package/dist/backend/detail/AddressesSection.js +274 -0
- package/dist/backend/detail/AddressesSection.js.map +7 -0
- package/dist/backend/detail/AttachmentDeleteDialog.js +41 -0
- package/dist/backend/detail/AttachmentDeleteDialog.js.map +7 -0
- package/dist/backend/detail/AttachmentMetadataDialog.js +519 -0
- package/dist/backend/detail/AttachmentMetadataDialog.js.map +7 -0
- package/dist/backend/detail/AttachmentVisualPreview.js +132 -0
- package/dist/backend/detail/AttachmentVisualPreview.js.map +7 -0
- package/dist/backend/detail/AttachmentsSection.js +281 -0
- package/dist/backend/detail/AttachmentsSection.js.map +7 -0
- package/dist/backend/detail/CustomDataSection.js +575 -0
- package/dist/backend/detail/CustomDataSection.js.map +7 -0
- package/dist/backend/detail/DetailFieldsSection.js +85 -0
- package/dist/backend/detail/DetailFieldsSection.js.map +7 -0
- package/dist/backend/detail/ErrorMessage.js +28 -0
- package/dist/backend/detail/ErrorMessage.js.map +7 -0
- package/dist/backend/detail/InlineEditors.js +697 -0
- package/dist/backend/detail/InlineEditors.js.map +7 -0
- package/dist/backend/detail/LoadingMessage.js +14 -0
- package/dist/backend/detail/LoadingMessage.js.map +7 -0
- package/dist/backend/detail/NotesSection.js +1022 -0
- package/dist/backend/detail/NotesSection.js.map +7 -0
- package/dist/backend/detail/TabEmptyState.js +25 -0
- package/dist/backend/detail/TabEmptyState.js.map +7 -0
- package/dist/backend/detail/TagsSection.js +375 -0
- package/dist/backend/detail/TagsSection.js.map +7 -0
- package/dist/backend/detail/addressFormat.js +77 -0
- package/dist/backend/detail/addressFormat.js.map +7 -0
- package/dist/backend/detail/index.js +36 -0
- package/dist/backend/detail/index.js.map +7 -0
- package/dist/backend/devtools/UmesDevToolsPanel.js +109 -0
- package/dist/backend/devtools/UmesDevToolsPanel.js.map +7 -0
- package/dist/backend/devtools/components/ConflictWarnings.js +32 -0
- package/dist/backend/devtools/components/ConflictWarnings.js.map +7 -0
- package/dist/backend/devtools/components/EnricherTiming.js +46 -0
- package/dist/backend/devtools/components/EnricherTiming.js.map +7 -0
- package/dist/backend/devtools/components/EventFlow.js +34 -0
- package/dist/backend/devtools/components/EventFlow.js.map +7 -0
- package/dist/backend/devtools/components/ExtensionPointList.js +58 -0
- package/dist/backend/devtools/components/ExtensionPointList.js.map +7 -0
- package/dist/backend/devtools/components/InterceptorActivity.js +36 -0
- package/dist/backend/devtools/components/InterceptorActivity.js.map +7 -0
- package/dist/backend/devtools/index.js +7 -0
- package/dist/backend/devtools/index.js.map +7 -0
- package/dist/backend/devtools/useUmesDevTools.js +125 -0
- package/dist/backend/devtools/useUmesDevTools.js.map +7 -0
- package/dist/backend/document-viewer/RegionOverlay.js +92 -0
- package/dist/backend/document-viewer/RegionOverlay.js.map +7 -0
- package/dist/backend/document-viewer/index.js +6 -0
- package/dist/backend/document-viewer/index.js.map +7 -0
- package/dist/backend/dynamic-grid/DynamicGrid.js +130 -0
- package/dist/backend/dynamic-grid/DynamicGrid.js.map +7 -0
- package/dist/backend/dynamic-grid/adapters.js +34 -0
- package/dist/backend/dynamic-grid/adapters.js.map +7 -0
- package/dist/backend/dynamic-grid/components/GridCell.js +149 -0
- package/dist/backend/dynamic-grid/components/GridCell.js.map +7 -0
- package/dist/backend/dynamic-grid/components/GridRow.js +32 -0
- package/dist/backend/dynamic-grid/components/GridRow.js.map +7 -0
- package/dist/backend/dynamic-grid/hooks/useGridKeyboardNav.js +115 -0
- package/dist/backend/dynamic-grid/hooks/useGridKeyboardNav.js.map +7 -0
- package/dist/backend/dynamic-grid/index.js +9 -0
- package/dist/backend/dynamic-grid/index.js.map +7 -0
- package/dist/backend/dynamic-grid/types.js +1 -0
- package/dist/backend/dynamic-grid/types.js.map +7 -0
- package/dist/backend/dynamic-table/DynamicTable.js +2607 -0
- package/dist/backend/dynamic-table/DynamicTable.js.map +7 -0
- package/dist/backend/dynamic-table/DynamicTable.stories.js +233 -0
- package/dist/backend/dynamic-table/DynamicTable.stories.js.map +7 -0
- package/dist/backend/dynamic-table/components/ActiveFilterChips.js +60 -0
- package/dist/backend/dynamic-table/components/ActiveFilterChips.js.map +7 -0
- package/dist/backend/dynamic-table/components/BulkActionsBar.js +58 -0
- package/dist/backend/dynamic-table/components/BulkActionsBar.js.map +7 -0
- package/dist/backend/dynamic-table/components/Cell.js +155 -0
- package/dist/backend/dynamic-table/components/Cell.js.map +7 -0
- package/dist/backend/dynamic-table/components/CellCommentDialog.js +726 -0
- package/dist/backend/dynamic-table/components/CellCommentDialog.js.map +7 -0
- package/dist/backend/dynamic-table/components/CellCommentHoverPopup.js +77 -0
- package/dist/backend/dynamic-table/components/CellCommentHoverPopup.js.map +7 -0
- package/dist/backend/dynamic-table/components/ColumnFilterPopover.js +485 -0
- package/dist/backend/dynamic-table/components/ColumnFilterPopover.js.map +7 -0
- package/dist/backend/dynamic-table/components/ColumnHeaderMenu.js +173 -0
- package/dist/backend/dynamic-table/components/ColumnHeaderMenu.js.map +7 -0
- package/dist/backend/dynamic-table/components/ColumnHeaders.js +528 -0
- package/dist/backend/dynamic-table/components/ColumnHeaders.js.map +7 -0
- package/dist/backend/dynamic-table/components/CompactLabelCell.js +64 -0
- package/dist/backend/dynamic-table/components/CompactLabelCell.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFields.js +139 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFields.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFilters.js +305 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFilters.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFormatting.js +169 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFormatting.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFormulas.js +298 -0
- package/dist/backend/dynamic-table/components/ConfigureViewFormulas.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewGrouping.js +224 -0
- package/dist/backend/dynamic-table/components/ConfigureViewGrouping.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewLinkedColumns.js +167 -0
- package/dist/backend/dynamic-table/components/ConfigureViewLinkedColumns.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewPanel.js +592 -0
- package/dist/backend/dynamic-table/components/ConfigureViewPanel.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewRollups.js +269 -0
- package/dist/backend/dynamic-table/components/ConfigureViewRollups.js.map +7 -0
- package/dist/backend/dynamic-table/components/ConfigureViewSorting.js +107 -0
- package/dist/backend/dynamic-table/components/ConfigureViewSorting.js.map +7 -0
- package/dist/backend/dynamic-table/components/ContextMenu.js +91 -0
- package/dist/backend/dynamic-table/components/ContextMenu.js.map +7 -0
- package/dist/backend/dynamic-table/components/DateCell.js +80 -0
- package/dist/backend/dynamic-table/components/DateCell.js.map +7 -0
- package/dist/backend/dynamic-table/components/Debugger.js +311 -0
- package/dist/backend/dynamic-table/components/Debugger.js.map +7 -0
- package/dist/backend/dynamic-table/components/DensityControl.js +289 -0
- package/dist/backend/dynamic-table/components/DensityControl.js.map +7 -0
- package/dist/backend/dynamic-table/components/EmptyState.js +42 -0
- package/dist/backend/dynamic-table/components/EmptyState.js.map +7 -0
- package/dist/backend/dynamic-table/components/EntitySearchEditor.js +369 -0
- package/dist/backend/dynamic-table/components/EntitySearchEditor.js.map +7 -0
- package/dist/backend/dynamic-table/components/ExportMenu.js +63 -0
- package/dist/backend/dynamic-table/components/ExportMenu.js.map +7 -0
- package/dist/backend/dynamic-table/components/FilterDatePicker.js +165 -0
- package/dist/backend/dynamic-table/components/FilterDatePicker.js.map +7 -0
- package/dist/backend/dynamic-table/components/FilterValueInput.js +200 -0
- package/dist/backend/dynamic-table/components/FilterValueInput.js.map +7 -0
- package/dist/backend/dynamic-table/components/FooterTotalsRow.js +165 -0
- package/dist/backend/dynamic-table/components/FooterTotalsRow.js.map +7 -0
- package/dist/backend/dynamic-table/components/FullscreenOverlay.js +51 -0
- package/dist/backend/dynamic-table/components/FullscreenOverlay.js.map +7 -0
- package/dist/backend/dynamic-table/components/GroupHeaderRow.js +108 -0
- package/dist/backend/dynamic-table/components/GroupHeaderRow.js.map +7 -0
- package/dist/backend/dynamic-table/components/GroupSummaryRow.js +134 -0
- package/dist/backend/dynamic-table/components/GroupSummaryRow.js.map +7 -0
- package/dist/backend/dynamic-table/components/ImportPanel.js +341 -0
- package/dist/backend/dynamic-table/components/ImportPanel.js.map +7 -0
- package/dist/backend/dynamic-table/components/ImportPreviewGrid.js +114 -0
- package/dist/backend/dynamic-table/components/ImportPreviewGrid.js.map +7 -0
- package/dist/backend/dynamic-table/components/LoadErrorState.js +23 -0
- package/dist/backend/dynamic-table/components/LoadErrorState.js.map +7 -0
- package/dist/backend/dynamic-table/components/MentionPopup.js +149 -0
- package/dist/backend/dynamic-table/components/MentionPopup.js.map +7 -0
- package/dist/backend/dynamic-table/components/PerspectiveDeleteDialog.js +57 -0
- package/dist/backend/dynamic-table/components/PerspectiveDeleteDialog.js.map +7 -0
- package/dist/backend/dynamic-table/components/PerspectivePublishDialog.js +100 -0
- package/dist/backend/dynamic-table/components/PerspectivePublishDialog.js.map +7 -0
- package/dist/backend/dynamic-table/components/PerspectiveTabMenu.js +159 -0
- package/dist/backend/dynamic-table/components/PerspectiveTabMenu.js.map +7 -0
- package/dist/backend/dynamic-table/components/PerspectiveTabs.js +319 -0
- package/dist/backend/dynamic-table/components/PerspectiveTabs.js.map +7 -0
- package/dist/backend/dynamic-table/components/PerspectiveTemplateMenu.js +90 -0
- package/dist/backend/dynamic-table/components/PerspectiveTemplateMenu.js.map +7 -0
- package/dist/backend/dynamic-table/components/RowHeaderCell.js +58 -0
- package/dist/backend/dynamic-table/components/RowHeaderCell.js.map +7 -0
- package/dist/backend/dynamic-table/components/SearchBar.js +221 -0
- package/dist/backend/dynamic-table/components/SearchBar.js.map +7 -0
- package/dist/backend/dynamic-table/components/SelectMenu.js +186 -0
- package/dist/backend/dynamic-table/components/SelectMenu.js.map +7 -0
- package/dist/backend/dynamic-table/components/StaleDataBar.js +26 -0
- package/dist/backend/dynamic-table/components/StaleDataBar.js.map +7 -0
- package/dist/backend/dynamic-table/components/TableDeleteDialog.js +48 -0
- package/dist/backend/dynamic-table/components/TableDeleteDialog.js.map +7 -0
- package/dist/backend/dynamic-table/components/TablePagination.js +69 -0
- package/dist/backend/dynamic-table/components/TablePagination.js.map +7 -0
- package/dist/backend/dynamic-table/components/TableSkeleton.js +43 -0
- package/dist/backend/dynamic-table/components/TableSkeleton.js.map +7 -0
- package/dist/backend/dynamic-table/components/ToolbarOverflow.js +204 -0
- package/dist/backend/dynamic-table/components/ToolbarOverflow.js.map +7 -0
- package/dist/backend/dynamic-table/components/ViewModeSwitch.js +50 -0
- package/dist/backend/dynamic-table/components/ViewModeSwitch.js.map +7 -0
- package/dist/backend/dynamic-table/components/VirtualRow.js +214 -0
- package/dist/backend/dynamic-table/components/VirtualRow.js.map +7 -0
- package/dist/backend/dynamic-table/components/editors.js +1483 -0
- package/dist/backend/dynamic-table/components/editors.js.map +7 -0
- package/dist/backend/dynamic-table/components/renderers.js +131 -0
- package/dist/backend/dynamic-table/components/renderers.js.map +7 -0
- package/dist/backend/dynamic-table/events/events.js +73 -0
- package/dist/backend/dynamic-table/events/events.js.map +7 -0
- package/dist/backend/dynamic-table/formula/check.js +243 -0
- package/dist/backend/dynamic-table/formula/check.js.map +7 -0
- package/dist/backend/dynamic-table/formula/evaluate.js +302 -0
- package/dist/backend/dynamic-table/formula/evaluate.js.map +7 -0
- package/dist/backend/dynamic-table/formula/functions.js +602 -0
- package/dist/backend/dynamic-table/formula/functions.js.map +7 -0
- package/dist/backend/dynamic-table/formula/index.js +47 -0
- package/dist/backend/dynamic-table/formula/index.js.map +7 -0
- package/dist/backend/dynamic-table/formula/parse.js +293 -0
- package/dist/backend/dynamic-table/formula/parse.js.map +7 -0
- package/dist/backend/dynamic-table/formula/types.js +24 -0
- package/dist/backend/dynamic-table/formula/types.js.map +7 -0
- package/dist/backend/dynamic-table/handlers/cellWrites.js +143 -0
- package/dist/backend/dynamic-table/handlers/cellWrites.js.map +7 -0
- package/dist/backend/dynamic-table/handlers/index.js +504 -0
- package/dist/backend/dynamic-table/handlers/index.js.map +7 -0
- package/dist/backend/dynamic-table/handlers/perspectiveHandlers.js +377 -0
- package/dist/backend/dynamic-table/handlers/perspectiveHandlers.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/index.js +524 -0
- package/dist/backend/dynamic-table/hooks/index.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useAbbreviations.js +19 -0
- package/dist/backend/dynamic-table/hooks/useAbbreviations.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useAnnotations.js +115 -0
- package/dist/backend/dynamic-table/hooks/useAnnotations.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useColumnVirtualizer.js +155 -0
- package/dist/backend/dynamic-table/hooks/useColumnVirtualizer.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useColumnWidthPersistence.js +135 -0
- package/dist/backend/dynamic-table/hooks/useColumnWidthPersistence.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useDensityPreference.js +203 -0
- package/dist/backend/dynamic-table/hooks/useDensityPreference.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useDynamicTablePage.js +1005 -0
- package/dist/backend/dynamic-table/hooks/useDynamicTablePage.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useEscapeLayer.js +32 -0
- package/dist/backend/dynamic-table/hooks/useEscapeLayer.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useGrouping.js +256 -0
- package/dist/backend/dynamic-table/hooks/useGrouping.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useSuggestionFetch.js +63 -0
- package/dist/backend/dynamic-table/hooks/useSuggestionFetch.js.map +7 -0
- package/dist/backend/dynamic-table/hooks/useTableDateFormat.js +11 -0
- package/dist/backend/dynamic-table/hooks/useTableDateFormat.js.map +7 -0
- package/dist/backend/dynamic-table/index.js +476 -0
- package/dist/backend/dynamic-table/index.js.map +7 -0
- package/dist/backend/dynamic-table/registry/ContentRegistryContext.js +126 -0
- package/dist/backend/dynamic-table/registry/ContentRegistryContext.js.map +7 -0
- package/dist/backend/dynamic-table/registry/TableRegistryContext.js +43 -0
- package/dist/backend/dynamic-table/registry/TableRegistryContext.js.map +7 -0
- package/dist/backend/dynamic-table/registry/filterAccessibleTables.js +13 -0
- package/dist/backend/dynamic-table/registry/filterAccessibleTables.js.map +7 -0
- package/dist/backend/dynamic-table/registry/index.js +44 -0
- package/dist/backend/dynamic-table/registry/index.js.map +7 -0
- package/dist/backend/dynamic-table/registry/lazyTable.js +55 -0
- package/dist/backend/dynamic-table/registry/lazyTable.js.map +7 -0
- package/dist/backend/dynamic-table/registry/types.js +1 -0
- package/dist/backend/dynamic-table/registry/types.js.map +7 -0
- package/dist/backend/dynamic-table/registry/widgetCatalog.js +96 -0
- package/dist/backend/dynamic-table/registry/widgetCatalog.js.map +7 -0
- package/dist/backend/dynamic-table/server/aggregate.js +261 -0
- package/dist/backend/dynamic-table/server/aggregate.js.map +7 -0
- package/dist/backend/dynamic-table/server/dateWindows.js +105 -0
- package/dist/backend/dynamic-table/server/dateWindows.js.map +7 -0
- package/dist/backend/dynamic-table/server/filterParser.js +97 -0
- package/dist/backend/dynamic-table/server/filterParser.js.map +7 -0
- package/dist/backend/dynamic-table/server/filterSuggestions.js +70 -0
- package/dist/backend/dynamic-table/server/filterSuggestions.js.map +7 -0
- package/dist/backend/dynamic-table/server/index.js +47 -0
- package/dist/backend/dynamic-table/server/index.js.map +7 -0
- package/dist/backend/dynamic-table/server/makeDynamicTableRoute.js +270 -0
- package/dist/backend/dynamic-table/server/makeDynamicTableRoute.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/ContentPicker.js +171 -0
- package/dist/backend/dynamic-table/split-view/ContentPicker.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/EmptySlot.js +47 -0
- package/dist/backend/dynamic-table/split-view/EmptySlot.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/SplitViewHost.js +863 -0
- package/dist/backend/dynamic-table/split-view/SplitViewHost.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/WidgetPane.js +280 -0
- package/dist/backend/dynamic-table/split-view/WidgetPane.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/WorkspaceFilterBar.js +524 -0
- package/dist/backend/dynamic-table/split-view/WorkspaceFilterBar.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/index.js +61 -0
- package/dist/backend/dynamic-table/split-view/index.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/layoutPersistence.js +91 -0
- package/dist/backend/dynamic-table/split-view/layoutPersistence.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/sharedCriteria.js +62 -0
- package/dist/backend/dynamic-table/split-view/sharedCriteria.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/types.js +426 -0
- package/dist/backend/dynamic-table/split-view/types.js.map +7 -0
- package/dist/backend/dynamic-table/split-view/useSplitViewLayouts.js +79 -0
- package/dist/backend/dynamic-table/split-view/useSplitViewLayouts.js.map +7 -0
- package/dist/backend/dynamic-table/store/index.js +611 -0
- package/dist/backend/dynamic-table/store/index.js.map +7 -0
- package/dist/backend/dynamic-table/styles/ContextMenu.css.js +2 -0
- package/dist/backend/dynamic-table/styles/DynamicTable.css.js +2 -0
- package/dist/backend/dynamic-table/styles/DynamicTable.v2.css.js +2 -0
- package/dist/backend/dynamic-table/styles/SearchBar.css.js +2 -0
- package/dist/backend/dynamic-table/styles/dateCell.css.js +2 -0
- package/dist/backend/dynamic-table/styles/density.css.js +2 -0
- package/dist/backend/dynamic-table/types/density.js +29 -0
- package/dist/backend/dynamic-table/types/density.js.map +7 -0
- package/dist/backend/dynamic-table/types/filters.js +124 -0
- package/dist/backend/dynamic-table/types/filters.js.map +7 -0
- package/dist/backend/dynamic-table/types/grouping.js +34 -0
- package/dist/backend/dynamic-table/types/grouping.js.map +7 -0
- package/dist/backend/dynamic-table/types/import.js +7 -0
- package/dist/backend/dynamic-table/types/import.js.map +7 -0
- package/dist/backend/dynamic-table/types/index.js +46 -0
- package/dist/backend/dynamic-table/types/index.js.map +7 -0
- package/dist/backend/dynamic-table/types/perspective.js +79 -0
- package/dist/backend/dynamic-table/types/perspective.js.map +7 -0
- package/dist/backend/dynamic-table/types/rollup.js +13 -0
- package/dist/backend/dynamic-table/types/rollup.js.map +7 -0
- package/dist/backend/dynamic-table/utils/abbreviations.js +228 -0
- package/dist/backend/dynamic-table/utils/abbreviations.js.map +7 -0
- package/dist/backend/dynamic-table/utils/anchoredPosition.js +21 -0
- package/dist/backend/dynamic-table/utils/anchoredPosition.js.map +7 -0
- package/dist/backend/dynamic-table/utils/badgeAutoFit.js +35 -0
- package/dist/backend/dynamic-table/utils/badgeAutoFit.js.map +7 -0
- package/dist/backend/dynamic-table/utils/clipboard.js +172 -0
- package/dist/backend/dynamic-table/utils/clipboard.js.map +7 -0
- package/dist/backend/dynamic-table/utils/coerceCellValue.js +52 -0
- package/dist/backend/dynamic-table/utils/coerceCellValue.js.map +7 -0
- package/dist/backend/dynamic-table/utils/colorAdjacency.js +27 -0
- package/dist/backend/dynamic-table/utils/colorAdjacency.js.map +7 -0
- package/dist/backend/dynamic-table/utils/columnFill.js +36 -0
- package/dist/backend/dynamic-table/utils/columnFill.js.map +7 -0
- package/dist/backend/dynamic-table/utils/columnSpacerStyle.js +21 -0
- package/dist/backend/dynamic-table/utils/columnSpacerStyle.js.map +7 -0
- package/dist/backend/dynamic-table/utils/columnWindow.js +293 -0
- package/dist/backend/dynamic-table/utils/columnWindow.js.map +7 -0
- package/dist/backend/dynamic-table/utils/conditionalFormat.js +188 -0
- package/dist/backend/dynamic-table/utils/conditionalFormat.js.map +7 -0
- package/dist/backend/dynamic-table/utils/exportTable.js +82 -0
- package/dist/backend/dynamic-table/utils/exportTable.js.map +7 -0
- package/dist/backend/dynamic-table/utils/fillGeometry.js +92 -0
- package/dist/backend/dynamic-table/utils/fillGeometry.js.map +7 -0
- package/dist/backend/dynamic-table/utils/fillPatterns.js +241 -0
- package/dist/backend/dynamic-table/utils/fillPatterns.js.map +7 -0
- package/dist/backend/dynamic-table/utils/formatAggregate.js +82 -0
- package/dist/backend/dynamic-table/utils/formatAggregate.js.map +7 -0
- package/dist/backend/dynamic-table/utils/formatDateCompact.js +508 -0
- package/dist/backend/dynamic-table/utils/formatDateCompact.js.map +7 -0
- package/dist/backend/dynamic-table/utils/formatLabelCompact.js +312 -0
- package/dist/backend/dynamic-table/utils/formatLabelCompact.js.map +7 -0
- package/dist/backend/dynamic-table/utils/formulaColumns.js +158 -0
- package/dist/backend/dynamic-table/utils/formulaColumns.js.map +7 -0
- package/dist/backend/dynamic-table/utils/importMapping.js +118 -0
- package/dist/backend/dynamic-table/utils/importMapping.js.map +7 -0
- package/dist/backend/dynamic-table/utils/importParse.js +121 -0
- package/dist/backend/dynamic-table/utils/importParse.js.map +7 -0
- package/dist/backend/dynamic-table/utils/lookupColumns.js +28 -0
- package/dist/backend/dynamic-table/utils/lookupColumns.js.map +7 -0
- package/dist/backend/dynamic-table/utils/perspectiveTransforms.js +191 -0
- package/dist/backend/dynamic-table/utils/perspectiveTransforms.js.map +7 -0
- package/dist/backend/dynamic-table/utils/rollupColumns.js +81 -0
- package/dist/backend/dynamic-table/utils/rollupColumns.js.map +7 -0
- package/dist/backend/dynamic-table/validators/index.js +36 -0
- package/dist/backend/dynamic-table/validators/index.js.map +7 -0
- package/dist/backend/fields/registry.generated.js +8 -0
- package/dist/backend/fields/registry.generated.js.map +7 -0
- package/dist/backend/fields/registry.js +29 -0
- package/dist/backend/fields/registry.js.map +7 -0
- package/dist/backend/filters/AdvancedFilterBuilder.js +280 -0
- package/dist/backend/filters/AdvancedFilterBuilder.js.map +7 -0
- package/dist/backend/forms/ActionsDropdown.js +160 -0
- package/dist/backend/forms/ActionsDropdown.js.map +7 -0
- package/dist/backend/forms/FormActionButtons.js +59 -0
- package/dist/backend/forms/FormActionButtons.js.map +7 -0
- package/dist/backend/forms/FormFooter.js +18 -0
- package/dist/backend/forms/FormFooter.js.map +7 -0
- package/dist/backend/forms/FormHeader.js +125 -0
- package/dist/backend/forms/FormHeader.js.map +7 -0
- package/dist/backend/forms/index.js +11 -0
- package/dist/backend/forms/index.js.map +7 -0
- package/dist/backend/hooks/useAdvancedFilter.js +64 -0
- package/dist/backend/hooks/useAdvancedFilter.js.map +7 -0
- package/dist/backend/indexes/PartialIndexBanner.js +74 -0
- package/dist/backend/indexes/PartialIndexBanner.js.map +7 -0
- package/dist/backend/indexes/store.js +62 -0
- package/dist/backend/indexes/store.js.map +7 -0
- package/dist/backend/injection/ComponentOverrideProvider.js +55 -0
- package/dist/backend/injection/ComponentOverrideProvider.js.map +7 -0
- package/dist/backend/injection/InjectedField.js +166 -0
- package/dist/backend/injection/InjectedField.js.map +7 -0
- package/dist/backend/injection/InjectionSpot.js +323 -0
- package/dist/backend/injection/InjectionSpot.js.map +7 -0
- package/dist/backend/injection/InjectionWizard.js +256 -0
- package/dist/backend/injection/InjectionWizard.js.map +7 -0
- package/dist/backend/injection/PageInjectionBoundary.js +26 -0
- package/dist/backend/injection/PageInjectionBoundary.js.map +7 -0
- package/dist/backend/injection/SseEventIndicator.js +8 -0
- package/dist/backend/injection/SseEventIndicator.js.map +7 -0
- package/dist/backend/injection/StatusBadgeInjectionSpot.js +34 -0
- package/dist/backend/injection/StatusBadgeInjectionSpot.js.map +7 -0
- package/dist/backend/injection/StatusBadgeRenderer.js +58 -0
- package/dist/backend/injection/StatusBadgeRenderer.js.map +7 -0
- package/dist/backend/injection/WidgetSharedState.js +49 -0
- package/dist/backend/injection/WidgetSharedState.js.map +7 -0
- package/dist/backend/injection/WizardInjectionSpot.js +30 -0
- package/dist/backend/injection/WizardInjectionSpot.js.map +7 -0
- package/dist/backend/injection/eventBridge.js +129 -0
- package/dist/backend/injection/eventBridge.js.map +7 -0
- package/dist/backend/injection/helpers.js +26 -0
- package/dist/backend/injection/helpers.js.map +7 -0
- package/dist/backend/injection/mergeMenuItems.js +49 -0
- package/dist/backend/injection/mergeMenuItems.js.map +7 -0
- package/dist/backend/injection/mutationEvents.js +20 -0
- package/dist/backend/injection/mutationEvents.js.map +7 -0
- package/dist/backend/injection/resolveInjectedIcon.js +23 -0
- package/dist/backend/injection/resolveInjectedIcon.js.map +7 -0
- package/dist/backend/injection/spotIds.js +72 -0
- package/dist/backend/injection/spotIds.js.map +7 -0
- package/dist/backend/injection/useAppEvent.js +35 -0
- package/dist/backend/injection/useAppEvent.js.map +7 -0
- package/dist/backend/injection/useGuardedMutation.js +71 -0
- package/dist/backend/injection/useGuardedMutation.js.map +7 -0
- package/dist/backend/injection/useInjectedMenuItems.js +49 -0
- package/dist/backend/injection/useInjectedMenuItems.js.map +7 -0
- package/dist/backend/injection/useInjectionDataWidgets.js +36 -0
- package/dist/backend/injection/useInjectionDataWidgets.js.map +7 -0
- package/dist/backend/injection/useOperationProgress.js +64 -0
- package/dist/backend/injection/useOperationProgress.js.map +7 -0
- package/dist/backend/injection/useRegisteredComponent.js +89 -0
- package/dist/backend/injection/useRegisteredComponent.js.map +7 -0
- package/dist/backend/injection/useWidgetSharedState.js +26 -0
- package/dist/backend/injection/useWidgetSharedState.js.map +7 -0
- package/dist/backend/injection/visibility-utils.js +29 -0
- package/dist/backend/injection/visibility-utils.js.map +7 -0
- package/dist/backend/injection/widgetRegistry.js +55 -0
- package/dist/backend/injection/widgetRegistry.js.map +7 -0
- package/dist/backend/inputs/ComboboxInput.js +228 -0
- package/dist/backend/inputs/ComboboxInput.js.map +7 -0
- package/dist/backend/inputs/DatePicker.js +148 -0
- package/dist/backend/inputs/DatePicker.js.map +7 -0
- package/dist/backend/inputs/DateTimePicker.js +188 -0
- package/dist/backend/inputs/DateTimePicker.js.map +7 -0
- package/dist/backend/inputs/EventPatternInput.js +38 -0
- package/dist/backend/inputs/EventPatternInput.js.map +7 -0
- package/dist/backend/inputs/EventSelect.js +115 -0
- package/dist/backend/inputs/EventSelect.js.map +7 -0
- package/dist/backend/inputs/LookupSelect.js +197 -0
- package/dist/backend/inputs/LookupSelect.js.map +7 -0
- package/dist/backend/inputs/PhoneNumberField.js +133 -0
- package/dist/backend/inputs/PhoneNumberField.js.map +7 -0
- package/dist/backend/inputs/SwitchableMarkdownInput.js +73 -0
- package/dist/backend/inputs/SwitchableMarkdownInput.js.map +7 -0
- package/dist/backend/inputs/TagsInput.js +258 -0
- package/dist/backend/inputs/TagsInput.js.map +7 -0
- package/dist/backend/inputs/TimeInput.js +132 -0
- package/dist/backend/inputs/TimeInput.js.map +7 -0
- package/dist/backend/inputs/TimePicker.js +105 -0
- package/dist/backend/inputs/TimePicker.js.map +7 -0
- package/dist/backend/inputs/index.js +12 -0
- package/dist/backend/inputs/index.js.map +7 -0
- package/dist/backend/markdown/MarkdownContent.js +20 -0
- package/dist/backend/markdown/MarkdownContent.js.map +7 -0
- package/dist/backend/markdown/index.js +3 -0
- package/dist/backend/markdown/index.js.map +7 -0
- package/dist/backend/markdown/useMarkdownRemarkPlugins.js +33 -0
- package/dist/backend/markdown/useMarkdownRemarkPlugins.js.map +7 -0
- package/dist/backend/messages/MessageComposer.js +158 -0
- package/dist/backend/messages/MessageComposer.js.map +7 -0
- package/dist/backend/messages/MessageObjectDetail.js +81 -0
- package/dist/backend/messages/MessageObjectDetail.js.map +7 -0
- package/dist/backend/messages/MessageObjectPreview.js +48 -0
- package/dist/backend/messages/MessageObjectPreview.js.map +7 -0
- package/dist/backend/messages/MessageObjectRecordPicker.js +89 -0
- package/dist/backend/messages/MessageObjectRecordPicker.js.map +7 -0
- package/dist/backend/messages/MessagePrioritySelector.js +74 -0
- package/dist/backend/messages/MessagePrioritySelector.js.map +7 -0
- package/dist/backend/messages/MessagesIcon.js +22 -0
- package/dist/backend/messages/MessagesIcon.js.map +7 -0
- package/dist/backend/messages/SendObjectMessageDialog.js +65 -0
- package/dist/backend/messages/SendObjectMessageDialog.js.map +7 -0
- package/dist/backend/messages/index.js +17 -0
- package/dist/backend/messages/index.js.map +7 -0
- package/dist/backend/messages/message-compose-form-groups.js +333 -0
- package/dist/backend/messages/message-compose-form-groups.js.map +7 -0
- package/dist/backend/messages/message-composer.types.js +1 -0
- package/dist/backend/messages/message-composer.types.js.map +7 -0
- package/dist/backend/messages/message-priority.js +40 -0
- package/dist/backend/messages/message-priority.js.map +7 -0
- package/dist/backend/messages/useMessageCompose.js +488 -0
- package/dist/backend/messages/useMessageCompose.js.map +7 -0
- package/dist/backend/messages/useMessageComposeOperations.js +163 -0
- package/dist/backend/messages/useMessageComposeOperations.js.map +7 -0
- package/dist/backend/messages/useMessagesPoll.js +79 -0
- package/dist/backend/messages/useMessagesPoll.js.map +7 -0
- package/dist/backend/notifications/NotificationBell.js +83 -0
- package/dist/backend/notifications/NotificationBell.js.map +7 -0
- package/dist/backend/notifications/NotificationCountBadge.js +9 -0
- package/dist/backend/notifications/NotificationCountBadge.js.map +7 -0
- package/dist/backend/notifications/NotificationDispatcher.js +165 -0
- package/dist/backend/notifications/NotificationDispatcher.js.map +7 -0
- package/dist/backend/notifications/NotificationItem.js +187 -0
- package/dist/backend/notifications/NotificationItem.js.map +7 -0
- package/dist/backend/notifications/NotificationPanel.js +146 -0
- package/dist/backend/notifications/NotificationPanel.js.map +7 -0
- package/dist/backend/notifications/index.js +19 -0
- package/dist/backend/notifications/index.js.map +7 -0
- package/dist/backend/notifications/useNotificationActions.js +124 -0
- package/dist/backend/notifications/useNotificationActions.js.map +7 -0
- package/dist/backend/notifications/useNotificationEffect.js +13 -0
- package/dist/backend/notifications/useNotificationEffect.js.map +7 -0
- package/dist/backend/notifications/useNotifications.js +11 -0
- package/dist/backend/notifications/useNotifications.js.map +7 -0
- package/dist/backend/notifications/useNotificationsPoll.js +135 -0
- package/dist/backend/notifications/useNotificationsPoll.js.map +7 -0
- package/dist/backend/notifications/useNotificationsSse.js +173 -0
- package/dist/backend/notifications/useNotificationsSse.js.map +7 -0
- package/dist/backend/operations/LastOperationBanner.js +80 -0
- package/dist/backend/operations/LastOperationBanner.js.map +7 -0
- package/dist/backend/operations/store.js +183 -0
- package/dist/backend/operations/store.js.map +7 -0
- package/dist/backend/progress/ProgressTopBar.js +129 -0
- package/dist/backend/progress/ProgressTopBar.js.map +7 -0
- package/dist/backend/progress/useProgress.js +11 -0
- package/dist/backend/progress/useProgress.js.map +7 -0
- package/dist/backend/progress/useProgressPoll.js +69 -0
- package/dist/backend/progress/useProgressPoll.js.map +7 -0
- package/dist/backend/progress/useProgressSse.js +104 -0
- package/dist/backend/progress/useProgressSse.js.map +7 -0
- package/dist/backend/schedule/ScheduleAgenda.js +107 -0
- package/dist/backend/schedule/ScheduleAgenda.js.map +7 -0
- package/dist/backend/schedule/ScheduleGrid.js +107 -0
- package/dist/backend/schedule/ScheduleGrid.js.map +7 -0
- package/dist/backend/schedule/ScheduleToolbar.js +166 -0
- package/dist/backend/schedule/ScheduleToolbar.js.map +7 -0
- package/dist/backend/schedule/ScheduleView.js +168 -0
- package/dist/backend/schedule/ScheduleView.js.map +7 -0
- package/dist/backend/schedule/index.js +6 -0
- package/dist/backend/schedule/index.js.map +7 -0
- package/dist/backend/schedule/recurrence.js +83 -0
- package/dist/backend/schedule/recurrence.js.map +7 -0
- package/dist/backend/schedule/types.js +1 -0
- package/dist/backend/schedule/types.js.map +7 -0
- package/dist/backend/section-page/SectionNav.js +104 -0
- package/dist/backend/section-page/SectionNav.js.map +7 -0
- package/dist/backend/section-page/SectionPage.js +33 -0
- package/dist/backend/section-page/SectionPage.js.map +7 -0
- package/dist/backend/section-page/index.js +7 -0
- package/dist/backend/section-page/index.js.map +7 -0
- package/dist/backend/section-page/types.js +1 -0
- package/dist/backend/section-page/types.js.map +7 -0
- package/dist/backend/settings/SettingsNavigation.js +43 -0
- package/dist/backend/settings/SettingsNavigation.js.map +7 -0
- package/dist/backend/settings/SettingsPageWrapper.js +66 -0
- package/dist/backend/settings/SettingsPageWrapper.js.map +7 -0
- package/dist/backend/settings/index.js +6 -0
- package/dist/backend/settings/index.js.map +7 -0
- package/dist/backend/upgrades/UpgradeActionBanner.js +91 -0
- package/dist/backend/upgrades/UpgradeActionBanner.js.map +7 -0
- package/dist/backend/utils/api.js +178 -0
- package/dist/backend/utils/api.js.map +7 -0
- package/dist/backend/utils/apiCall.js +68 -0
- package/dist/backend/utils/apiCall.js.map +7 -0
- package/dist/backend/utils/crud.js +126 -0
- package/dist/backend/utils/crud.js.map +7 -0
- package/dist/backend/utils/customFieldColumns.js +100 -0
- package/dist/backend/utils/customFieldColumns.js.map +7 -0
- package/dist/backend/utils/customFieldDefs.js +143 -0
- package/dist/backend/utils/customFieldDefs.js.map +7 -0
- package/dist/backend/utils/customFieldFilters.js +151 -0
- package/dist/backend/utils/customFieldFilters.js.map +7 -0
- package/dist/backend/utils/customFieldForms.js +169 -0
- package/dist/backend/utils/customFieldForms.js.map +7 -0
- package/dist/backend/utils/customFieldRelationDisplay.js +239 -0
- package/dist/backend/utils/customFieldRelationDisplay.js.map +7 -0
- package/dist/backend/utils/customFieldValues.js +26 -0
- package/dist/backend/utils/customFieldValues.js.map +7 -0
- package/dist/backend/utils/flash.js +16 -0
- package/dist/backend/utils/flash.js.map +7 -0
- package/dist/backend/utils/nav.js +280 -0
- package/dist/backend/utils/nav.js.map +7 -0
- package/dist/backend/utils/richTextSanitizer.js +11 -0
- package/dist/backend/utils/richTextSanitizer.js.map +7 -0
- package/dist/backend/utils/scopedHeaderStack.js +44 -0
- package/dist/backend/utils/scopedHeaderStack.js.map +7 -0
- package/dist/backend/utils/serverErrors.js +237 -0
- package/dist/backend/utils/serverErrors.js.map +7 -0
- package/dist/backend/utils/useAutoDiscoveredFields.js +96 -0
- package/dist/backend/utils/useAutoDiscoveredFields.js.map +7 -0
- package/dist/backend/version-history/VersionHistoryAction.js +67 -0
- package/dist/backend/version-history/VersionHistoryAction.js.map +7 -0
- package/dist/backend/version-history/VersionHistoryDetail.js +57 -0
- package/dist/backend/version-history/VersionHistoryDetail.js.map +7 -0
- package/dist/backend/version-history/VersionHistoryPanel.js +270 -0
- package/dist/backend/version-history/VersionHistoryPanel.js.map +7 -0
- package/dist/backend/version-history/index.js +13 -0
- package/dist/backend/version-history/index.js.map +7 -0
- package/dist/backend/version-history/labels.js +52 -0
- package/dist/backend/version-history/labels.js.map +7 -0
- package/dist/backend/version-history/types.js +1 -0
- package/dist/backend/version-history/types.js.map +7 -0
- package/dist/backend/version-history/useAuditPermissions.js +72 -0
- package/dist/backend/version-history/useAuditPermissions.js.map +7 -0
- package/dist/backend/version-history/useVersionHistory.js +141 -0
- package/dist/backend/version-history/useVersionHistory.js.map +7 -0
- package/dist/backend/views/NewViewForm.js +56 -0
- package/dist/backend/views/NewViewForm.js.map +7 -0
- package/dist/backend/views/ShareForm.js +49 -0
- package/dist/backend/views/ShareForm.js.map +7 -0
- package/dist/backend/views/ViewChip.js +112 -0
- package/dist/backend/views/ViewChip.js.map +7 -0
- package/dist/backend/views/ViewChipMenu.js +89 -0
- package/dist/backend/views/ViewChipMenu.js.map +7 -0
- package/dist/backend/views/types.js +1 -0
- package/dist/backend/views/types.js.map +7 -0
- package/dist/frontend/AuthFooter.js +23 -0
- package/dist/frontend/AuthFooter.js.map +7 -0
- package/dist/frontend/LanguageSwitcher.js +57 -0
- package/dist/frontend/LanguageSwitcher.js.map +7 -0
- package/dist/frontend/Layout.js +14 -0
- package/dist/frontend/Layout.js.map +7 -0
- package/dist/hooks/useIsMobile.js +21 -0
- package/dist/hooks/useIsMobile.js.map +7 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +7 -0
- package/dist/portal/PortalContext.js +113 -0
- package/dist/portal/PortalContext.js.map +7 -0
- package/dist/portal/PortalLayoutProvider.js +5 -0
- package/dist/portal/PortalLayoutProvider.js.map +7 -0
- package/dist/portal/PortalLayoutShell.js +44 -0
- package/dist/portal/PortalLayoutShell.js.map +7 -0
- package/dist/portal/PortalShell.js +229 -0
- package/dist/portal/PortalShell.js.map +7 -0
- package/dist/portal/components/PortalCard.js +31 -0
- package/dist/portal/components/PortalCard.js.map +7 -0
- package/dist/portal/components/PortalEmptyState.js +16 -0
- package/dist/portal/components/PortalEmptyState.js.map +7 -0
- package/dist/portal/components/PortalFeatureCard.js +21 -0
- package/dist/portal/components/PortalFeatureCard.js.map +7 -0
- package/dist/portal/components/PortalNotificationBell.js +67 -0
- package/dist/portal/components/PortalNotificationBell.js.map +7 -0
- package/dist/portal/components/PortalNotificationPanel.js +158 -0
- package/dist/portal/components/PortalNotificationPanel.js.map +7 -0
- package/dist/portal/components/PortalPageHeader.js +16 -0
- package/dist/portal/components/PortalPageHeader.js.map +7 -0
- package/dist/portal/components/index.js +18 -0
- package/dist/portal/components/index.js.map +7 -0
- package/dist/portal/hooks/useCustomerAuth.js +69 -0
- package/dist/portal/hooks/useCustomerAuth.js.map +7 -0
- package/dist/portal/hooks/usePortalAppEvent.js +26 -0
- package/dist/portal/hooks/usePortalAppEvent.js.map +7 -0
- package/dist/portal/hooks/usePortalDashboardWidgets.js +37 -0
- package/dist/portal/hooks/usePortalDashboardWidgets.js.map +7 -0
- package/dist/portal/hooks/usePortalEventBridge.js +129 -0
- package/dist/portal/hooks/usePortalEventBridge.js.map +7 -0
- package/dist/portal/hooks/usePortalInjectedMenuItems.js +88 -0
- package/dist/portal/hooks/usePortalInjectedMenuItems.js.map +7 -0
- package/dist/portal/hooks/usePortalNotifications.js +85 -0
- package/dist/portal/hooks/usePortalNotifications.js.map +7 -0
- package/dist/portal/hooks/useTenantContext.js +53 -0
- package/dist/portal/hooks/useTenantContext.js.map +7 -0
- package/dist/primitives/DataLoader.js +68 -0
- package/dist/primitives/DataLoader.js.map +7 -0
- package/dist/primitives/ErrorNotice.js +14 -0
- package/dist/primitives/ErrorNotice.js.map +7 -0
- package/dist/primitives/Notice.js +55 -0
- package/dist/primitives/Notice.js.map +7 -0
- package/dist/primitives/alert.js +38 -0
- package/dist/primitives/alert.js.map +7 -0
- package/dist/primitives/badge.js +33 -0
- package/dist/primitives/badge.js.map +7 -0
- package/dist/primitives/button.js +45 -0
- package/dist/primitives/button.js.map +7 -0
- package/dist/primitives/calendar.js +62 -0
- package/dist/primitives/calendar.js.map +7 -0
- package/dist/primitives/card.js +91 -0
- package/dist/primitives/card.js.map +7 -0
- package/dist/primitives/checkbox.js +28 -0
- package/dist/primitives/checkbox.js.map +7 -0
- package/dist/primitives/dialog.js +101 -0
- package/dist/primitives/dialog.js.map +7 -0
- package/dist/primitives/form-field.js +78 -0
- package/dist/primitives/form-field.js.map +7 -0
- package/dist/primitives/icon-button.js +40 -0
- package/dist/primitives/icon-button.js.map +7 -0
- package/dist/primitives/input.js +22 -0
- package/dist/primitives/input.js.map +7 -0
- package/dist/primitives/label.js +21 -0
- package/dist/primitives/label.js.map +7 -0
- package/dist/primitives/popover.js +36 -0
- package/dist/primitives/popover.js.map +7 -0
- package/dist/primitives/primitives.stories.js +187 -0
- package/dist/primitives/primitives.stories.js.map +7 -0
- package/dist/primitives/progress.js +28 -0
- package/dist/primitives/progress.js.map +7 -0
- package/dist/primitives/separator.js +9 -0
- package/dist/primitives/separator.js.map +7 -0
- package/dist/primitives/sheet.js +103 -0
- package/dist/primitives/sheet.js.map +7 -0
- package/dist/primitives/spinner.js +24 -0
- package/dist/primitives/spinner.js.map +7 -0
- package/dist/primitives/status-badge.js +38 -0
- package/dist/primitives/status-badge.js.map +7 -0
- package/dist/primitives/switch.js +80 -0
- package/dist/primitives/switch.js.map +7 -0
- package/dist/primitives/table.js +29 -0
- package/dist/primitives/table.js.map +7 -0
- package/dist/primitives/tabs.js +90 -0
- package/dist/primitives/tabs.js.map +7 -0
- package/dist/primitives/textarea.js +21 -0
- package/dist/primitives/textarea.js.map +7 -0
- package/dist/primitives/tooltip.js +60 -0
- package/dist/primitives/tooltip.js.map +7 -0
- package/dist/primitives-v2/Alert.js +69 -0
- package/dist/primitives-v2/Alert.js.map +7 -0
- package/dist/primitives-v2/Alert.stories.js +42 -0
- package/dist/primitives-v2/Alert.stories.js.map +7 -0
- package/dist/primitives-v2/Avatar.js +93 -0
- package/dist/primitives-v2/Avatar.js.map +7 -0
- package/dist/primitives-v2/Avatar.stories.js +57 -0
- package/dist/primitives-v2/Avatar.stories.js.map +7 -0
- package/dist/primitives-v2/Badge.js +50 -0
- package/dist/primitives-v2/Badge.js.map +7 -0
- package/dist/primitives-v2/Badge.stories.js +66 -0
- package/dist/primitives-v2/Badge.stories.js.map +7 -0
- package/dist/primitives-v2/Breadcrumb.js +53 -0
- package/dist/primitives-v2/Breadcrumb.js.map +7 -0
- package/dist/primitives-v2/Breadcrumb.stories.js +70 -0
- package/dist/primitives-v2/Breadcrumb.stories.js.map +7 -0
- package/dist/primitives-v2/Button.js +85 -0
- package/dist/primitives-v2/Button.js.map +7 -0
- package/dist/primitives-v2/Button.stories.js +48 -0
- package/dist/primitives-v2/Button.stories.js.map +7 -0
- package/dist/primitives-v2/Checkbox.js +65 -0
- package/dist/primitives-v2/Checkbox.js.map +7 -0
- package/dist/primitives-v2/Checkbox.stories.js +31 -0
- package/dist/primitives-v2/Checkbox.stories.js.map +7 -0
- package/dist/primitives-v2/IconButton.js +13 -0
- package/dist/primitives-v2/IconButton.js.map +7 -0
- package/dist/primitives-v2/IconButton.stories.js +37 -0
- package/dist/primitives-v2/IconButton.stories.js.map +7 -0
- package/dist/primitives-v2/Input.js +74 -0
- package/dist/primitives-v2/Input.js.map +7 -0
- package/dist/primitives-v2/Input.stories.js +56 -0
- package/dist/primitives-v2/Input.stories.js.map +7 -0
- package/dist/primitives-v2/NavGroup.js +54 -0
- package/dist/primitives-v2/NavGroup.js.map +7 -0
- package/dist/primitives-v2/NavGroup.stories.js +39 -0
- package/dist/primitives-v2/NavGroup.stories.js.map +7 -0
- package/dist/primitives-v2/NavItem.js +61 -0
- package/dist/primitives-v2/NavItem.js.map +7 -0
- package/dist/primitives-v2/NavItem.stories.js +56 -0
- package/dist/primitives-v2/NavItem.stories.js.map +7 -0
- package/dist/primitives-v2/SearchInput.js +93 -0
- package/dist/primitives-v2/SearchInput.js.map +7 -0
- package/dist/primitives-v2/SearchInput.stories.js +41 -0
- package/dist/primitives-v2/SearchInput.stories.js.map +7 -0
- package/dist/primitives-v2/Sidebar.js +48 -0
- package/dist/primitives-v2/Sidebar.js.map +7 -0
- package/dist/primitives-v2/Sidebar.stories.js +76 -0
- package/dist/primitives-v2/Sidebar.stories.js.map +7 -0
- package/dist/primitives-v2/Tab.js +78 -0
- package/dist/primitives-v2/Tab.js.map +7 -0
- package/dist/primitives-v2/Tab.stories.js +51 -0
- package/dist/primitives-v2/Tab.stories.js.map +7 -0
- package/dist/primitives-v2/Tag.js +61 -0
- package/dist/primitives-v2/Tag.js.map +7 -0
- package/dist/primitives-v2/Tag.stories.js +121 -0
- package/dist/primitives-v2/Tag.stories.js.map +7 -0
- package/dist/primitives-v2/Toggle.js +72 -0
- package/dist/primitives-v2/Toggle.js.map +7 -0
- package/dist/primitives-v2/Toggle.stories.js +34 -0
- package/dist/primitives-v2/Toggle.stories.js.map +7 -0
- package/dist/primitives-v2/Topbar.js +24 -0
- package/dist/primitives-v2/Topbar.js.map +7 -0
- package/dist/primitives-v2/Topbar.stories.js +58 -0
- package/dist/primitives-v2/Topbar.stories.js.map +7 -0
- package/dist/primitives-v2/index.js +41 -0
- package/dist/primitives-v2/index.js.map +7 -0
- package/dist/primitives-v2/utils.js +7 -0
- package/dist/primitives-v2/utils.js.map +7 -0
- package/dist/theme/BrandThemeProvider.js +49 -0
- package/dist/theme/BrandThemeProvider.js.map +7 -0
- package/dist/theme/QueryProvider.js +44 -0
- package/dist/theme/QueryProvider.js.map +7 -0
- package/dist/theme/ThemeProvider.js +96 -0
- package/dist/theme/ThemeProvider.js.map +7 -0
- package/dist/theme/ThemeToggle.js +88 -0
- package/dist/theme/ThemeToggle.js.map +7 -0
- package/dist/theme/index.js +12 -0
- package/dist/theme/index.js.map +7 -0
- package/dist/theme/m3.css.js +2 -0
- package/dist/theme/tokens.v2.css.js +2 -0
- package/dist/theme/typography.css.js +2 -0
- package/dist/theme/typography.stories.js +123 -0
- package/dist/theme/typography.stories.js.map +7 -0
- package/dist/theme/typography.tokens.js +281 -0
- package/dist/theme/typography.tokens.js.map +7 -0
- package/dist/types/react-big-calendar.d.js +1 -0
- package/dist/types/react-big-calendar.d.js.map +7 -0
- package/package.json +411 -0
- package/src/backend/AppShell.tsx +1606 -0
- package/src/backend/BackendChromeProvider.tsx +99 -0
- package/src/backend/BackendPageSurface.tsx +57 -0
- package/src/backend/CollapsibleNavSection.tsx +201 -0
- package/src/backend/ContextHelp.tsx +40 -0
- package/src/backend/CrudForm.tsx +3796 -0
- package/src/backend/DataTable.tsx +2584 -0
- package/src/backend/EmptyState.tsx +65 -0
- package/src/backend/FilterBar.tsx +171 -0
- package/src/backend/FilterOverlay.tsx +388 -0
- package/src/backend/FlashMessages.tsx +189 -0
- package/src/backend/HtmlRichTextEditor.tsx +124 -0
- package/src/backend/IntegrationsButton.tsx +29 -0
- package/src/backend/JsonBuilder.tsx +359 -0
- package/src/backend/JsonDisplay.tsx +258 -0
- package/src/backend/NextStepCallout.tsx +134 -0
- package/src/backend/Page.tsx +30 -0
- package/src/backend/PerspectiveSidebar.tsx +506 -0
- package/src/backend/ProfileDropdown.tsx +369 -0
- package/src/backend/RowActions.tsx +158 -0
- package/src/backend/SectionHeader.tsx +119 -0
- package/src/backend/SettingsButton.tsx +28 -0
- package/src/backend/Sidebar.stories.tsx +183 -0
- package/src/backend/Sidebar.tsx +737 -0
- package/src/backend/TruncatedCell.tsx +133 -0
- package/src/backend/UserMenu.tsx +153 -0
- package/src/backend/ValueIcons.tsx +48 -0
- package/src/backend/WebhookSetupGuide.tsx +127 -0
- package/src/backend/__tests__/AppShell.test.tsx +392 -0
- package/src/backend/__tests__/CrudForm.custom-fields.test.tsx +180 -0
- package/src/backend/__tests__/CrudForm.datetime.test.tsx +95 -0
- package/src/backend/__tests__/CrudForm.defaults.test.tsx +195 -0
- package/src/backend/__tests__/CrudForm.navigation.test.tsx +156 -0
- package/src/backend/__tests__/CrudForm.render.test.tsx +146 -0
- package/src/backend/__tests__/CrudForm.transformData.test.tsx +231 -0
- package/src/backend/__tests__/CrudForm.unsavedNavigation.test.tsx +145 -0
- package/src/backend/__tests__/CrudForm.validation.test.tsx +178 -0
- package/src/backend/__tests__/CustomDataSection.test.tsx +465 -0
- package/src/backend/__tests__/DataTable.extensions.test.tsx +339 -0
- package/src/backend/__tests__/DataTable.namespaces.test.ts +32 -0
- package/src/backend/__tests__/DataTable.render.test.tsx +48 -0
- package/src/backend/__tests__/FieldDefinitionsEditor.test.tsx +64 -0
- package/src/backend/__tests__/FlashMessages.test.tsx +105 -0
- package/src/backend/__tests__/FormHeader.test.tsx +81 -0
- package/src/backend/__tests__/NotificationDispatcher.test.ts +172 -0
- package/src/backend/__tests__/VersionHistoryPanel.test.tsx +109 -0
- package/src/backend/__tests__/component-replacement.test.tsx +270 -0
- package/src/backend/__tests__/custom-field-filters.test.ts +72 -0
- package/src/backend/__tests__/custom-field-forms.test.ts +54 -0
- package/src/backend/__tests__/nav-utils.test.ts +175 -0
- package/src/backend/__tests__/serverErrors.test.ts +83 -0
- package/src/backend/__tests__/useAuditPermissions.test.tsx +51 -0
- package/src/backend/__tests__/useNotifications.strategy.test.ts +58 -0
- package/src/backend/__tests__/useProgress.strategy.test.ts +62 -0
- package/src/backend/charts/BarChart.tsx +208 -0
- package/src/backend/charts/ChartUtils.tsx +196 -0
- package/src/backend/charts/ComboChart.stories.tsx +103 -0
- package/src/backend/charts/ComboChart.tsx +350 -0
- package/src/backend/charts/KpiCard.tsx +155 -0
- package/src/backend/charts/LineChart.tsx +207 -0
- package/src/backend/charts/PieChart.tsx +157 -0
- package/src/backend/charts/ScatterChart.tsx +498 -0
- package/src/backend/charts/TopNTable.tsx +141 -0
- package/src/backend/charts/WaterfallChart.tsx +213 -0
- package/src/backend/charts/index.ts +21 -0
- package/src/backend/columns/ColumnChooserPanel.tsx +293 -0
- package/src/backend/confirm-dialog/ConfirmDialog.tsx +275 -0
- package/src/backend/confirm-dialog/index.ts +7 -0
- package/src/backend/confirm-dialog/useConfirmDialog.tsx +146 -0
- package/src/backend/custom-fields/FieldDefinitionsEditor.tsx +1413 -0
- package/src/backend/custom-fields/FieldDefinitionsManager.tsx +381 -0
- package/src/backend/dashboard/DashboardScreen.tsx +706 -0
- package/src/backend/dashboard/__tests__/DashboardScreen.test.tsx +114 -0
- package/src/backend/dashboard/index.ts +1 -0
- package/src/backend/dashboard/widgetRegistry.ts +68 -0
- package/src/backend/date-range/DateRangeSelect.tsx +50 -0
- package/src/backend/date-range/InlineDateRangeSelect.tsx +52 -0
- package/src/backend/date-range/InlineGranularitySelect.tsx +63 -0
- package/src/backend/date-range/__tests__/dateRanges.test.ts +224 -0
- package/src/backend/date-range/dateRanges.ts +218 -0
- package/src/backend/date-range/index.ts +15 -0
- package/src/backend/detail/AccessDeniedMessage.tsx +32 -0
- package/src/backend/detail/ActivitiesSection.tsx +1261 -0
- package/src/backend/detail/AddressEditor.tsx +479 -0
- package/src/backend/detail/AddressTiles.tsx +591 -0
- package/src/backend/detail/AddressesSection.tsx +362 -0
- package/src/backend/detail/AttachmentDeleteDialog.tsx +56 -0
- package/src/backend/detail/AttachmentMetadataDialog.tsx +674 -0
- package/src/backend/detail/AttachmentVisualPreview.tsx +155 -0
- package/src/backend/detail/AttachmentsSection.tsx +327 -0
- package/src/backend/detail/CustomDataSection.tsx +700 -0
- package/src/backend/detail/DetailFieldsSection.tsx +163 -0
- package/src/backend/detail/ErrorMessage.tsx +32 -0
- package/src/backend/detail/InlineEditors.tsx +894 -0
- package/src/backend/detail/LoadingMessage.tsx +14 -0
- package/src/backend/detail/NotesSection.tsx +1266 -0
- package/src/backend/detail/TabEmptyState.tsx +48 -0
- package/src/backend/detail/TagsSection.tsx +470 -0
- package/src/backend/detail/__tests__/InlineEditors.test.tsx +59 -0
- package/src/backend/detail/addressFormat.tsx +121 -0
- package/src/backend/detail/index.ts +46 -0
- package/src/backend/devtools/UmesDevToolsPanel.tsx +122 -0
- package/src/backend/devtools/components/ConflictWarnings.tsx +36 -0
- package/src/backend/devtools/components/EnricherTiming.tsx +50 -0
- package/src/backend/devtools/components/EventFlow.tsx +45 -0
- package/src/backend/devtools/components/ExtensionPointList.tsx +59 -0
- package/src/backend/devtools/components/InterceptorActivity.tsx +48 -0
- package/src/backend/devtools/index.ts +2 -0
- package/src/backend/devtools/useUmesDevTools.ts +188 -0
- package/src/backend/document-viewer/RegionOverlay.tsx +150 -0
- package/src/backend/document-viewer/index.ts +2 -0
- package/src/backend/dynamic-grid/DynamicGrid.tsx +161 -0
- package/src/backend/dynamic-grid/adapters.ts +57 -0
- package/src/backend/dynamic-grid/components/GridCell.tsx +194 -0
- package/src/backend/dynamic-grid/components/GridRow.tsx +40 -0
- package/src/backend/dynamic-grid/hooks/useGridKeyboardNav.ts +134 -0
- package/src/backend/dynamic-grid/index.ts +4 -0
- package/src/backend/dynamic-grid/types.ts +55 -0
- package/src/backend/dynamic-table/DynamicTable.stories.tsx +274 -0
- package/src/backend/dynamic-table/DynamicTable.tsx +4419 -0
- package/src/backend/dynamic-table/README.md +1199 -0
- package/src/backend/dynamic-table/URL_FILTERING.md +217 -0
- package/src/backend/dynamic-table/__e2e__/GridHarness.ts +1155 -0
- package/src/backend/dynamic-table/__e2e__/SplitViewHarness.ts +366 -0
- package/src/backend/dynamic-table/__tests__/BulkActionsBar.test.tsx +143 -0
- package/src/backend/dynamic-table/__tests__/ColumnQuickFilter.test.tsx +607 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewFilters.suggestions.test.tsx +177 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewFormatting.test.tsx +125 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewFormulas.test.tsx +228 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewGrouping.aggregations.test.tsx +131 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewPanel.baseView.test.tsx +162 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewPanel.focus.test.tsx +54 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewPanel.sections.test.tsx +142 -0
- package/src/backend/dynamic-table/__tests__/ConfigureViewRollups.test.tsx +228 -0
- package/src/backend/dynamic-table/__tests__/ContextMenu.test.tsx +89 -0
- package/src/backend/dynamic-table/__tests__/DynamicTable.density.test.tsx +299 -0
- package/src/backend/dynamic-table/__tests__/DynamicTable.exportTruncation.test.tsx +145 -0
- package/src/backend/dynamic-table/__tests__/DynamicTable.loadError.test.tsx +173 -0
- package/src/backend/dynamic-table/__tests__/DynamicTable.wiring.test.tsx +357 -0
- package/src/backend/dynamic-table/__tests__/EmptyState.test.tsx +70 -0
- package/src/backend/dynamic-table/__tests__/ExportMenu.test.tsx +82 -0
- package/src/backend/dynamic-table/__tests__/FooterTotalsRow.test.tsx +154 -0
- package/src/backend/dynamic-table/__tests__/GroupSummaryRow.render.test.tsx +131 -0
- package/src/backend/dynamic-table/__tests__/LoadErrorState.test.tsx +74 -0
- package/src/backend/dynamic-table/__tests__/MentionPopup.search.test.tsx +127 -0
- package/src/backend/dynamic-table/__tests__/PerspectiveTabs.test.tsx +170 -0
- package/src/backend/dynamic-table/__tests__/RowHeaderCell.selection.test.tsx +80 -0
- package/src/backend/dynamic-table/__tests__/abbreviationsSubscription.test.ts +171 -0
- package/src/backend/dynamic-table/__tests__/aggregate.spec.test.ts +224 -0
- package/src/backend/dynamic-table/__tests__/aggregateDimension.test.tsx +191 -0
- package/src/backend/dynamic-table/__tests__/anchoredPosition.test.ts +88 -0
- package/src/backend/dynamic-table/__tests__/badgeAutoFit.test.ts +121 -0
- package/src/backend/dynamic-table/__tests__/cellHandlers.save.test.ts +282 -0
- package/src/backend/dynamic-table/__tests__/cellWrites.test.ts +274 -0
- package/src/backend/dynamic-table/__tests__/clipboard.test.ts +230 -0
- package/src/backend/dynamic-table/__tests__/coerceCellValue.test.ts +117 -0
- package/src/backend/dynamic-table/__tests__/colorAdjacency.test.ts +151 -0
- package/src/backend/dynamic-table/__tests__/columnFill.test.ts +66 -0
- package/src/backend/dynamic-table/__tests__/columnHeaderHandlers.sort.test.ts +100 -0
- package/src/backend/dynamic-table/__tests__/columnHeaderReorder.test.tsx +209 -0
- package/src/backend/dynamic-table/__tests__/columnReorderPersistence.test.tsx +127 -0
- package/src/backend/dynamic-table/__tests__/columnVirtualization.render.test.tsx +420 -0
- package/src/backend/dynamic-table/__tests__/columnVisibilityPersistence.test.tsx +136 -0
- package/src/backend/dynamic-table/__tests__/columnWindow.test.ts +643 -0
- package/src/backend/dynamic-table/__tests__/commentAudience.test.tsx +137 -0
- package/src/backend/dynamic-table/__tests__/commentScope.test.tsx +214 -0
- package/src/backend/dynamic-table/__tests__/conditionalFormat.test.ts +175 -0
- package/src/backend/dynamic-table/__tests__/contentRegistry.test.ts +267 -0
- package/src/backend/dynamic-table/__tests__/dateWindows.test.ts +149 -0
- package/src/backend/dynamic-table/__tests__/density.test.ts +204 -0
- package/src/backend/dynamic-table/__tests__/exportTable.test.ts +146 -0
- package/src/backend/dynamic-table/__tests__/fillGeometry.test.ts +201 -0
- package/src/backend/dynamic-table/__tests__/fillPatterns.test.ts +272 -0
- package/src/backend/dynamic-table/__tests__/filterParser.presets.test.ts +64 -0
- package/src/backend/dynamic-table/__tests__/filterParser.relative.test.ts +109 -0
- package/src/backend/dynamic-table/__tests__/filterSuggestions.test.ts +152 -0
- package/src/backend/dynamic-table/__tests__/formatAggregate.test.ts +99 -0
- package/src/backend/dynamic-table/__tests__/formatDateCompact.test.ts +489 -0
- package/src/backend/dynamic-table/__tests__/formatLabelCompact.test.ts +717 -0
- package/src/backend/dynamic-table/__tests__/formula.check.test.ts +257 -0
- package/src/backend/dynamic-table/__tests__/formula.evaluate.test.ts +274 -0
- package/src/backend/dynamic-table/__tests__/formula.functions.test.ts +226 -0
- package/src/backend/dynamic-table/__tests__/formula.noEval.test.ts +92 -0
- package/src/backend/dynamic-table/__tests__/formula.parse.test.ts +233 -0
- package/src/backend/dynamic-table/__tests__/formulaColumns.test.tsx +213 -0
- package/src/backend/dynamic-table/__tests__/handlerIdentity.test.ts +77 -0
- package/src/backend/dynamic-table/__tests__/importMapping.test.ts +174 -0
- package/src/backend/dynamic-table/__tests__/importParse.test.ts +130 -0
- package/src/backend/dynamic-table/__tests__/importServerOnly.test.ts +37 -0
- package/src/backend/dynamic-table/__tests__/layoutPersistence.test.ts +372 -0
- package/src/backend/dynamic-table/__tests__/mouseHandlers.doubleClick.test.ts +155 -0
- package/src/backend/dynamic-table/__tests__/perspectivePersonalization.test.ts +188 -0
- package/src/backend/dynamic-table/__tests__/perspectiveResolver.test.ts +133 -0
- package/src/backend/dynamic-table/__tests__/perspectiveState.defaultGrouping.test.ts +306 -0
- package/src/backend/dynamic-table/__tests__/perspectiveState.defaults.test.ts +107 -0
- package/src/backend/dynamic-table/__tests__/perspectiveTemplates.test.tsx +269 -0
- package/src/backend/dynamic-table/__tests__/perspectiveTransforms.aggregations.test.ts +105 -0
- package/src/backend/dynamic-table/__tests__/perspectiveTransforms.conditionalFormats.test.ts +107 -0
- package/src/backend/dynamic-table/__tests__/perspectiveTransforms.dateFormat.test.ts +61 -0
- package/src/backend/dynamic-table/__tests__/perspectiveTransforms.formulas.test.ts +85 -0
- package/src/backend/dynamic-table/__tests__/perspectiveTransforms.frozenColumns.test.ts +124 -0
- package/src/backend/dynamic-table/__tests__/rollupColumns.test.ts +149 -0
- package/src/backend/dynamic-table/__tests__/sharedCriteria.test.ts +255 -0
- package/src/backend/dynamic-table/__tests__/splitViewTree.test.ts +324 -0
- package/src/backend/dynamic-table/__tests__/store.clipboardMarker.test.ts +143 -0
- package/src/backend/dynamic-table/__tests__/store.fillPreview.test.ts +168 -0
- package/src/backend/dynamic-table/__tests__/store.mutations.test.ts +345 -0
- package/src/backend/dynamic-table/__tests__/store.selection.test.ts +157 -0
- package/src/backend/dynamic-table/__tests__/store.undo.test.ts +225 -0
- package/src/backend/dynamic-table/__tests__/store.valueSource.test.tsx +204 -0
- package/src/backend/dynamic-table/__tests__/useAnnotations.legacyOptions.test.tsx +58 -0
- package/src/backend/dynamic-table/__tests__/useColumnVirtualizer.test.ts +290 -0
- package/src/backend/dynamic-table/__tests__/useDensityPreference.test.ts +435 -0
- package/src/backend/dynamic-table/__tests__/useDynamicTablePage.duplicate.test.tsx +99 -0
- package/src/backend/dynamic-table/__tests__/useDynamicTablePage.export.test.tsx +281 -0
- package/src/backend/dynamic-table/__tests__/useDynamicTablePage.personalization.test.tsx +313 -0
- package/src/backend/dynamic-table/__tests__/useDynamicTablePage.perspectiveRestore.test.tsx +126 -0
- package/src/backend/dynamic-table/__tests__/useGrouping.aggregations.test.ts +158 -0
- package/src/backend/dynamic-table/__tests__/useGrouping.groupKey.test.ts +58 -0
- package/src/backend/dynamic-table/__tests__/useKeyboardNavigation.test.ts +594 -0
- package/src/backend/dynamic-table/__tests__/useStickyOffsets.memo.test.tsx +75 -0
- package/src/backend/dynamic-table/__tests__/useStickyOffsets.test.ts +106 -0
- package/src/backend/dynamic-table/__tests__/widgetPane.test.tsx +338 -0
- package/src/backend/dynamic-table/components/ActiveFilterChips.tsx +109 -0
- package/src/backend/dynamic-table/components/BulkActionsBar.tsx +89 -0
- package/src/backend/dynamic-table/components/Cell.tsx +292 -0
- package/src/backend/dynamic-table/components/CellCommentDialog.tsx +887 -0
- package/src/backend/dynamic-table/components/CellCommentHoverPopup.tsx +94 -0
- package/src/backend/dynamic-table/components/ColumnFilterPopover.tsx +775 -0
- package/src/backend/dynamic-table/components/ColumnHeaderMenu.tsx +189 -0
- package/src/backend/dynamic-table/components/ColumnHeaders.tsx +867 -0
- package/src/backend/dynamic-table/components/CompactLabelCell.tsx +293 -0
- package/src/backend/dynamic-table/components/ConfigureViewFields.tsx +173 -0
- package/src/backend/dynamic-table/components/ConfigureViewFilters.tsx +346 -0
- package/src/backend/dynamic-table/components/ConfigureViewFormatting.tsx +205 -0
- package/src/backend/dynamic-table/components/ConfigureViewFormulas.tsx +423 -0
- package/src/backend/dynamic-table/components/ConfigureViewGrouping.tsx +264 -0
- package/src/backend/dynamic-table/components/ConfigureViewLinkedColumns.tsx +249 -0
- package/src/backend/dynamic-table/components/ConfigureViewPanel.tsx +857 -0
- package/src/backend/dynamic-table/components/ConfigureViewRollups.tsx +364 -0
- package/src/backend/dynamic-table/components/ConfigureViewSorting.tsx +121 -0
- package/src/backend/dynamic-table/components/ContextMenu.tsx +140 -0
- package/src/backend/dynamic-table/components/DateCell.tsx +205 -0
- package/src/backend/dynamic-table/components/Debugger.tsx +340 -0
- package/src/backend/dynamic-table/components/DensityControl.tsx +441 -0
- package/src/backend/dynamic-table/components/EmptyState.tsx +103 -0
- package/src/backend/dynamic-table/components/EntitySearchEditor.tsx +528 -0
- package/src/backend/dynamic-table/components/ExportMenu.tsx +90 -0
- package/src/backend/dynamic-table/components/FilterDatePicker.tsx +194 -0
- package/src/backend/dynamic-table/components/FilterValueInput.tsx +294 -0
- package/src/backend/dynamic-table/components/FooterTotalsRow.tsx +291 -0
- package/src/backend/dynamic-table/components/FullscreenOverlay.tsx +66 -0
- package/src/backend/dynamic-table/components/GroupHeaderRow.tsx +136 -0
- package/src/backend/dynamic-table/components/GroupSummaryRow.tsx +184 -0
- package/src/backend/dynamic-table/components/ImportPanel.tsx +445 -0
- package/src/backend/dynamic-table/components/ImportPreviewGrid.tsx +155 -0
- package/src/backend/dynamic-table/components/LoadErrorState.tsx +70 -0
- package/src/backend/dynamic-table/components/MentionPopup.tsx +224 -0
- package/src/backend/dynamic-table/components/PerspectiveDeleteDialog.tsx +96 -0
- package/src/backend/dynamic-table/components/PerspectivePublishDialog.tsx +152 -0
- package/src/backend/dynamic-table/components/PerspectiveTabMenu.tsx +215 -0
- package/src/backend/dynamic-table/components/PerspectiveTabs.tsx +426 -0
- package/src/backend/dynamic-table/components/PerspectiveTemplateMenu.tsx +135 -0
- package/src/backend/dynamic-table/components/RowHeaderCell.tsx +73 -0
- package/src/backend/dynamic-table/components/SearchBar.tsx +309 -0
- package/src/backend/dynamic-table/components/SelectMenu.tsx +237 -0
- package/src/backend/dynamic-table/components/StaleDataBar.tsx +74 -0
- package/src/backend/dynamic-table/components/TableDeleteDialog.tsx +74 -0
- package/src/backend/dynamic-table/components/TablePagination.tsx +96 -0
- package/src/backend/dynamic-table/components/TableSkeleton.tsx +123 -0
- package/src/backend/dynamic-table/components/ToolbarOverflow.tsx +284 -0
- package/src/backend/dynamic-table/components/ViewModeSwitch.tsx +92 -0
- package/src/backend/dynamic-table/components/VirtualRow.tsx +346 -0
- package/src/backend/dynamic-table/components/editors.tsx +1727 -0
- package/src/backend/dynamic-table/components/renderers.tsx +162 -0
- package/src/backend/dynamic-table/events/events.ts +107 -0
- package/src/backend/dynamic-table/formula/check.ts +359 -0
- package/src/backend/dynamic-table/formula/evaluate.ts +473 -0
- package/src/backend/dynamic-table/formula/functions.ts +737 -0
- package/src/backend/dynamic-table/formula/index.ts +57 -0
- package/src/backend/dynamic-table/formula/parse.ts +414 -0
- package/src/backend/dynamic-table/formula/types.ts +151 -0
- package/src/backend/dynamic-table/handlers/cellWrites.ts +362 -0
- package/src/backend/dynamic-table/handlers/index.ts +789 -0
- package/src/backend/dynamic-table/handlers/perspectiveHandlers.ts +684 -0
- package/src/backend/dynamic-table/hooks/index.ts +888 -0
- package/src/backend/dynamic-table/hooks/useAbbreviations.ts +67 -0
- package/src/backend/dynamic-table/hooks/useAnnotations.ts +215 -0
- package/src/backend/dynamic-table/hooks/useColumnVirtualizer.ts +303 -0
- package/src/backend/dynamic-table/hooks/useColumnWidthPersistence.ts +214 -0
- package/src/backend/dynamic-table/hooks/useDensityPreference.ts +451 -0
- package/src/backend/dynamic-table/hooks/useDynamicTablePage.tsx +1681 -0
- package/src/backend/dynamic-table/hooks/useEscapeLayer.ts +72 -0
- package/src/backend/dynamic-table/hooks/useGrouping.ts +428 -0
- package/src/backend/dynamic-table/hooks/useSuggestionFetch.ts +109 -0
- package/src/backend/dynamic-table/hooks/useTableDateFormat.tsx +19 -0
- package/src/backend/dynamic-table/index.ts +497 -0
- package/src/backend/dynamic-table/registry/ContentRegistryContext.tsx +244 -0
- package/src/backend/dynamic-table/registry/TableRegistryContext.tsx +84 -0
- package/src/backend/dynamic-table/registry/filterAccessibleTables.ts +36 -0
- package/src/backend/dynamic-table/registry/index.ts +38 -0
- package/src/backend/dynamic-table/registry/lazyTable.tsx +80 -0
- package/src/backend/dynamic-table/registry/types.ts +181 -0
- package/src/backend/dynamic-table/registry/widgetCatalog.ts +226 -0
- package/src/backend/dynamic-table/server/aggregate.ts +474 -0
- package/src/backend/dynamic-table/server/dateWindows.ts +201 -0
- package/src/backend/dynamic-table/server/filterParser.ts +132 -0
- package/src/backend/dynamic-table/server/filterSuggestions.ts +150 -0
- package/src/backend/dynamic-table/server/index.ts +47 -0
- package/src/backend/dynamic-table/server/makeDynamicTableRoute.ts +426 -0
- package/src/backend/dynamic-table/split-view/ContentPicker.tsx +251 -0
- package/src/backend/dynamic-table/split-view/EmptySlot.tsx +69 -0
- package/src/backend/dynamic-table/split-view/SplitViewHost.tsx +1336 -0
- package/src/backend/dynamic-table/split-view/WidgetPane.tsx +390 -0
- package/src/backend/dynamic-table/split-view/WorkspaceFilterBar.tsx +728 -0
- package/src/backend/dynamic-table/split-view/index.ts +48 -0
- package/src/backend/dynamic-table/split-view/layoutPersistence.ts +185 -0
- package/src/backend/dynamic-table/split-view/sharedCriteria.ts +196 -0
- package/src/backend/dynamic-table/split-view/types.ts +778 -0
- package/src/backend/dynamic-table/split-view/useSplitViewLayouts.ts +97 -0
- package/src/backend/dynamic-table/store/index.ts +1011 -0
- package/src/backend/dynamic-table/styles/ContextMenu.css +387 -0
- package/src/backend/dynamic-table/styles/DynamicTable.css +3659 -0
- package/src/backend/dynamic-table/styles/DynamicTable.v2.css +2651 -0
- package/src/backend/dynamic-table/styles/SearchBar.css +426 -0
- package/src/backend/dynamic-table/styles/dateCell.css +146 -0
- package/src/backend/dynamic-table/styles/density.css +690 -0
- package/src/backend/dynamic-table/types/density.ts +179 -0
- package/src/backend/dynamic-table/types/filters.ts +156 -0
- package/src/backend/dynamic-table/types/grouping.ts +189 -0
- package/src/backend/dynamic-table/types/import.ts +132 -0
- package/src/backend/dynamic-table/types/index.ts +1198 -0
- package/src/backend/dynamic-table/types/perspective.ts +436 -0
- package/src/backend/dynamic-table/types/rollup.ts +111 -0
- package/src/backend/dynamic-table/utils/abbreviations.ts +556 -0
- package/src/backend/dynamic-table/utils/anchoredPosition.ts +106 -0
- package/src/backend/dynamic-table/utils/badgeAutoFit.ts +108 -0
- package/src/backend/dynamic-table/utils/clipboard.ts +294 -0
- package/src/backend/dynamic-table/utils/coerceCellValue.ts +96 -0
- package/src/backend/dynamic-table/utils/colorAdjacency.ts +87 -0
- package/src/backend/dynamic-table/utils/columnFill.ts +93 -0
- package/src/backend/dynamic-table/utils/columnSpacerStyle.ts +53 -0
- package/src/backend/dynamic-table/utils/columnWindow.ts +668 -0
- package/src/backend/dynamic-table/utils/conditionalFormat.ts +300 -0
- package/src/backend/dynamic-table/utils/exportTable.ts +140 -0
- package/src/backend/dynamic-table/utils/fillGeometry.ts +187 -0
- package/src/backend/dynamic-table/utils/fillPatterns.ts +422 -0
- package/src/backend/dynamic-table/utils/formatAggregate.ts +145 -0
- package/src/backend/dynamic-table/utils/formatDateCompact.ts +879 -0
- package/src/backend/dynamic-table/utils/formatLabelCompact.ts +640 -0
- package/src/backend/dynamic-table/utils/formulaColumns.tsx +237 -0
- package/src/backend/dynamic-table/utils/importMapping.ts +202 -0
- package/src/backend/dynamic-table/utils/importParse.ts +220 -0
- package/src/backend/dynamic-table/utils/lookupColumns.tsx +47 -0
- package/src/backend/dynamic-table/utils/perspectiveTransforms.ts +368 -0
- package/src/backend/dynamic-table/utils/rollupColumns.ts +162 -0
- package/src/backend/dynamic-table/validators/index.ts +40 -0
- package/src/backend/fields/registry.generated.ts +8 -0
- package/src/backend/fields/registry.ts +38 -0
- package/src/backend/filters/AdvancedFilterBuilder.tsx +339 -0
- package/src/backend/forms/ActionsDropdown.tsx +198 -0
- package/src/backend/forms/FormActionButtons.tsx +98 -0
- package/src/backend/forms/FormFooter.tsx +27 -0
- package/src/backend/forms/FormHeader.tsx +204 -0
- package/src/backend/forms/index.ts +4 -0
- package/src/backend/hooks/useAdvancedFilter.ts +77 -0
- package/src/backend/indexes/PartialIndexBanner.tsx +86 -0
- package/src/backend/indexes/store.ts +88 -0
- package/src/backend/injection/ComponentOverrideProvider.tsx +66 -0
- package/src/backend/injection/InjectedField.tsx +196 -0
- package/src/backend/injection/InjectionSpot.tsx +457 -0
- package/src/backend/injection/InjectionWizard.tsx +335 -0
- package/src/backend/injection/PageInjectionBoundary.tsx +31 -0
- package/src/backend/injection/SseEventIndicator.tsx +11 -0
- package/src/backend/injection/StatusBadgeInjectionSpot.tsx +50 -0
- package/src/backend/injection/StatusBadgeRenderer.tsx +100 -0
- package/src/backend/injection/WidgetSharedState.ts +58 -0
- package/src/backend/injection/WizardInjectionSpot.tsx +46 -0
- package/src/backend/injection/eventBridge.ts +158 -0
- package/src/backend/injection/helpers.ts +35 -0
- package/src/backend/injection/mergeMenuItems.ts +80 -0
- package/src/backend/injection/mutationEvents.ts +22 -0
- package/src/backend/injection/resolveInjectedIcon.tsx +30 -0
- package/src/backend/injection/spotIds.ts +64 -0
- package/src/backend/injection/useAppEvent.ts +76 -0
- package/src/backend/injection/useGuardedMutation.ts +101 -0
- package/src/backend/injection/useInjectedMenuItems.ts +67 -0
- package/src/backend/injection/useInjectionDataWidgets.ts +41 -0
- package/src/backend/injection/useOperationProgress.ts +105 -0
- package/src/backend/injection/useRegisteredComponent.tsx +106 -0
- package/src/backend/injection/useWidgetSharedState.ts +28 -0
- package/src/backend/injection/visibility-utils.ts +31 -0
- package/src/backend/injection/widgetRegistry.ts +68 -0
- package/src/backend/inputs/ComboboxInput.tsx +272 -0
- package/src/backend/inputs/DatePicker.tsx +162 -0
- package/src/backend/inputs/DateTimePicker.tsx +199 -0
- package/src/backend/inputs/EventPatternInput.tsx +46 -0
- package/src/backend/inputs/EventSelect.tsx +183 -0
- package/src/backend/inputs/LookupSelect.tsx +253 -0
- package/src/backend/inputs/PhoneNumberField.tsx +166 -0
- package/src/backend/inputs/SwitchableMarkdownInput.tsx +106 -0
- package/src/backend/inputs/TagsInput.tsx +297 -0
- package/src/backend/inputs/TimeInput.tsx +146 -0
- package/src/backend/inputs/TimePicker.tsx +120 -0
- package/src/backend/inputs/__tests__/DatePicker.test.tsx +76 -0
- package/src/backend/inputs/__tests__/DateTimePicker.logic.test.ts +126 -0
- package/src/backend/inputs/__tests__/PhoneNumberField.test.tsx +73 -0
- package/src/backend/inputs/__tests__/TagsInput.test.tsx +78 -0
- package/src/backend/inputs/__tests__/TimeInput.test.tsx +134 -0
- package/src/backend/inputs/__tests__/TimePicker.test.tsx +50 -0
- package/src/backend/inputs/index.ts +11 -0
- package/src/backend/markdown/MarkdownContent.tsx +33 -0
- package/src/backend/markdown/index.ts +2 -0
- package/src/backend/markdown/useMarkdownRemarkPlugins.ts +39 -0
- package/src/backend/messages/MessageComposer.tsx +197 -0
- package/src/backend/messages/MessageObjectDetail.tsx +95 -0
- package/src/backend/messages/MessageObjectPreview.tsx +64 -0
- package/src/backend/messages/MessageObjectRecordPicker.tsx +149 -0
- package/src/backend/messages/MessagePrioritySelector.tsx +78 -0
- package/src/backend/messages/MessagesIcon.tsx +32 -0
- package/src/backend/messages/SendObjectMessageDialog.tsx +74 -0
- package/src/backend/messages/__tests__/MessageComposer.test.tsx +350 -0
- package/src/backend/messages/__tests__/SendObjectMessageDialog.test.tsx +77 -0
- package/src/backend/messages/index.ts +22 -0
- package/src/backend/messages/message-compose-form-groups.tsx +383 -0
- package/src/backend/messages/message-composer.types.ts +82 -0
- package/src/backend/messages/message-priority.ts +53 -0
- package/src/backend/messages/useMessageCompose.ts +666 -0
- package/src/backend/messages/useMessageComposeOperations.ts +259 -0
- package/src/backend/messages/useMessagesPoll.ts +118 -0
- package/src/backend/notifications/NotificationBell.tsx +91 -0
- package/src/backend/notifications/NotificationCountBadge.tsx +14 -0
- package/src/backend/notifications/NotificationDispatcher.ts +213 -0
- package/src/backend/notifications/NotificationItem.tsx +262 -0
- package/src/backend/notifications/NotificationPanel.tsx +225 -0
- package/src/backend/notifications/__tests__/NotificationCountBadge.test.tsx +34 -0
- package/src/backend/notifications/index.ts +20 -0
- package/src/backend/notifications/useNotificationActions.ts +161 -0
- package/src/backend/notifications/useNotificationEffect.ts +17 -0
- package/src/backend/notifications/useNotifications.ts +12 -0
- package/src/backend/notifications/useNotificationsPoll.ts +167 -0
- package/src/backend/notifications/useNotificationsSse.ts +220 -0
- package/src/backend/operations/LastOperationBanner.tsx +85 -0
- package/src/backend/operations/__tests__/LastOperationBanner.test.tsx +101 -0
- package/src/backend/operations/store.ts +230 -0
- package/src/backend/progress/ProgressTopBar.tsx +189 -0
- package/src/backend/progress/useProgress.ts +12 -0
- package/src/backend/progress/useProgressPoll.ts +100 -0
- package/src/backend/progress/useProgressSse.ts +118 -0
- package/src/backend/schedule/ScheduleAgenda.tsx +136 -0
- package/src/backend/schedule/ScheduleGrid.tsx +136 -0
- package/src/backend/schedule/ScheduleToolbar.tsx +178 -0
- package/src/backend/schedule/ScheduleView.tsx +201 -0
- package/src/backend/schedule/index.ts +5 -0
- package/src/backend/schedule/recurrence.ts +99 -0
- package/src/backend/schedule/types.ts +26 -0
- package/src/backend/section-page/SectionNav.tsx +140 -0
- package/src/backend/section-page/SectionPage.tsx +34 -0
- package/src/backend/section-page/index.ts +3 -0
- package/src/backend/section-page/types.ts +30 -0
- package/src/backend/settings/SettingsNavigation.tsx +74 -0
- package/src/backend/settings/SettingsPageWrapper.tsx +78 -0
- package/src/backend/settings/index.ts +3 -0
- package/src/backend/upgrades/UpgradeActionBanner.tsx +128 -0
- package/src/backend/utils/__tests__/api.scoped-headers.test.ts +58 -0
- package/src/backend/utils/__tests__/api.test.ts +148 -0
- package/src/backend/utils/__tests__/apiCall.scoped-request-headers.test.ts +58 -0
- package/src/backend/utils/__tests__/apiCall.test.ts +109 -0
- package/src/backend/utils/__tests__/crud.test.ts +87 -0
- package/src/backend/utils/__tests__/customFieldDefs.test.ts +25 -0
- package/src/backend/utils/__tests__/customFieldValues.test.ts +35 -0
- package/src/backend/utils/__tests__/richTextSanitizer.test.ts +57 -0
- package/src/backend/utils/api.ts +214 -0
- package/src/backend/utils/apiCall.ts +123 -0
- package/src/backend/utils/crud.ts +174 -0
- package/src/backend/utils/customFieldColumns.ts +118 -0
- package/src/backend/utils/customFieldDefs.ts +247 -0
- package/src/backend/utils/customFieldFilters.ts +174 -0
- package/src/backend/utils/customFieldForms.ts +203 -0
- package/src/backend/utils/customFieldRelationDisplay.ts +302 -0
- package/src/backend/utils/customFieldValues.ts +41 -0
- package/src/backend/utils/flash.ts +17 -0
- package/src/backend/utils/nav.ts +402 -0
- package/src/backend/utils/richTextSanitizer.ts +7 -0
- package/src/backend/utils/scopedHeaderStack.ts +49 -0
- package/src/backend/utils/serverErrors.ts +313 -0
- package/src/backend/utils/useAutoDiscoveredFields.ts +138 -0
- package/src/backend/version-history/VersionHistoryAction.tsx +76 -0
- package/src/backend/version-history/VersionHistoryDetail.tsx +87 -0
- package/src/backend/version-history/VersionHistoryPanel.tsx +331 -0
- package/src/backend/version-history/index.ts +9 -0
- package/src/backend/version-history/labels.ts +56 -0
- package/src/backend/version-history/types.ts +27 -0
- package/src/backend/version-history/useAuditPermissions.ts +94 -0
- package/src/backend/version-history/useVersionHistory.ts +173 -0
- package/src/backend/views/NewViewForm.tsx +54 -0
- package/src/backend/views/ShareForm.tsx +62 -0
- package/src/backend/views/ViewChip.tsx +123 -0
- package/src/backend/views/ViewChipMenu.tsx +94 -0
- package/src/backend/views/types.ts +4 -0
- package/src/frontend/AuthFooter.tsx +29 -0
- package/src/frontend/LanguageSwitcher.tsx +66 -0
- package/src/frontend/Layout.tsx +13 -0
- package/src/hooks/useIsMobile.ts +27 -0
- package/src/index.ts +40 -0
- package/src/portal/PortalContext.tsx +180 -0
- package/src/portal/PortalLayoutProvider.tsx +5 -0
- package/src/portal/PortalLayoutShell.tsx +64 -0
- package/src/portal/PortalShell.tsx +370 -0
- package/src/portal/components/PortalCard.tsx +77 -0
- package/src/portal/components/PortalEmptyState.tsx +32 -0
- package/src/portal/components/PortalFeatureCard.tsx +41 -0
- package/src/portal/components/PortalNotificationBell.tsx +81 -0
- package/src/portal/components/PortalNotificationPanel.tsx +230 -0
- package/src/portal/components/PortalPageHeader.tsx +33 -0
- package/src/portal/components/index.ts +6 -0
- package/src/portal/hooks/useCustomerAuth.ts +97 -0
- package/src/portal/hooks/usePortalAppEvent.ts +56 -0
- package/src/portal/hooks/usePortalDashboardWidgets.ts +50 -0
- package/src/portal/hooks/usePortalEventBridge.ts +162 -0
- package/src/portal/hooks/usePortalInjectedMenuItems.ts +130 -0
- package/src/portal/hooks/usePortalNotifications.ts +116 -0
- package/src/portal/hooks/useTenantContext.ts +83 -0
- package/src/primitives/DataLoader.tsx +93 -0
- package/src/primitives/ErrorNotice.tsx +17 -0
- package/src/primitives/Notice.tsx +83 -0
- package/src/primitives/alert.tsx +59 -0
- package/src/primitives/badge.tsx +43 -0
- package/src/primitives/button.tsx +60 -0
- package/src/primitives/calendar.tsx +69 -0
- package/src/primitives/card.tsx +92 -0
- package/src/primitives/checkbox.tsx +34 -0
- package/src/primitives/dialog.tsx +122 -0
- package/src/primitives/form-field.tsx +106 -0
- package/src/primitives/icon-button.tsx +48 -0
- package/src/primitives/input.tsx +26 -0
- package/src/primitives/label.tsx +18 -0
- package/src/primitives/popover.tsx +37 -0
- package/src/primitives/primitives.stories.tsx +223 -0
- package/src/primitives/progress.tsx +28 -0
- package/src/primitives/separator.tsx +7 -0
- package/src/primitives/sheet.tsx +137 -0
- package/src/primitives/spinner.tsx +27 -0
- package/src/primitives/status-badge.tsx +62 -0
- package/src/primitives/switch.tsx +92 -0
- package/src/primitives/table.tsx +27 -0
- package/src/primitives/tabs.tsx +131 -0
- package/src/primitives/textarea.tsx +20 -0
- package/src/primitives/tooltip.tsx +85 -0
- package/src/primitives-v2/AGENTS.md +66 -0
- package/src/primitives-v2/Alert.stories.tsx +56 -0
- package/src/primitives-v2/Alert.tsx +108 -0
- package/src/primitives-v2/Avatar.stories.tsx +60 -0
- package/src/primitives-v2/Avatar.tsx +139 -0
- package/src/primitives-v2/Badge.stories.tsx +80 -0
- package/src/primitives-v2/Badge.tsx +99 -0
- package/src/primitives-v2/Breadcrumb.stories.tsx +61 -0
- package/src/primitives-v2/Breadcrumb.tsx +96 -0
- package/src/primitives-v2/Button.stories.tsx +72 -0
- package/src/primitives-v2/Button.tsx +178 -0
- package/src/primitives-v2/Checkbox.stories.tsx +34 -0
- package/src/primitives-v2/Checkbox.tsx +103 -0
- package/src/primitives-v2/IconButton.stories.tsx +40 -0
- package/src/primitives-v2/IconButton.tsx +40 -0
- package/src/primitives-v2/Input.stories.tsx +60 -0
- package/src/primitives-v2/Input.tsx +113 -0
- package/src/primitives-v2/NavGroup.stories.tsx +50 -0
- package/src/primitives-v2/NavGroup.tsx +76 -0
- package/src/primitives-v2/NavItem.stories.tsx +68 -0
- package/src/primitives-v2/NavItem.tsx +105 -0
- package/src/primitives-v2/SearchInput.stories.tsx +44 -0
- package/src/primitives-v2/SearchInput.tsx +123 -0
- package/src/primitives-v2/Sidebar.stories.tsx +91 -0
- package/src/primitives-v2/Sidebar.tsx +92 -0
- package/src/primitives-v2/Tab.stories.tsx +62 -0
- package/src/primitives-v2/Tab.tsx +148 -0
- package/src/primitives-v2/Tag.stories.tsx +123 -0
- package/src/primitives-v2/Tag.tsx +115 -0
- package/src/primitives-v2/Toggle.stories.tsx +37 -0
- package/src/primitives-v2/Toggle.tsx +93 -0
- package/src/primitives-v2/Topbar.stories.tsx +65 -0
- package/src/primitives-v2/Topbar.tsx +37 -0
- package/src/primitives-v2/index.ts +31 -0
- package/src/primitives-v2/utils.ts +9 -0
- package/src/theme/BrandThemeProvider.tsx +122 -0
- package/src/theme/QueryProvider.tsx +46 -0
- package/src/theme/ThemeProvider.tsx +120 -0
- package/src/theme/ThemeToggle.tsx +88 -0
- package/src/theme/index.ts +4 -0
- package/src/theme/m3.css +622 -0
- package/src/theme/tokens.v2.css +559 -0
- package/src/theme/typography.css +163 -0
- package/src/theme/typography.stories.tsx +157 -0
- package/src/theme/typography.tokens.ts +326 -0
- package/src/types/react-big-calendar.d.ts +16 -0
|
@@ -0,0 +1,690 @@
|
|
|
1
|
+
/* ═══════════════════════════════════════════════════════════════════════════
|
|
2
|
+
DynamicTable — DENSITY SCALE
|
|
3
|
+
═══════════════════════════════════════════════════════════════════════════
|
|
4
|
+
|
|
5
|
+
Three levels, switched by ONE attribute on the grid container:
|
|
6
|
+
|
|
7
|
+
<div class="hot-container hot-appearance-v2" data-density-level="dense">
|
|
8
|
+
|
|
9
|
+
Everything below is CSS custom properties + a single set of consuming rules.
|
|
10
|
+
Flipping the attribute restyles the entire grid — every mounted cell, every
|
|
11
|
+
header — with ZERO per-cell React work, ZERO cell re-renders and ZERO extra
|
|
12
|
+
props threaded through `Cell` / `VirtualRow`. The browser recalculates style
|
|
13
|
+
for the subtree; React does nothing.
|
|
14
|
+
|
|
15
|
+
That property is the point of this file. The grid virtualizes ROWS ONLY
|
|
16
|
+
(`VirtualRow` plainly maps every column), so a density implemented in JS
|
|
17
|
+
would multiply its cost by every mounted cell. This one costs nothing.
|
|
18
|
+
|
|
19
|
+
── The one exception, stated honestly ────────────────────────────────────
|
|
20
|
+
ROW HEIGHT cannot be CSS-only. Rows are absolutely positioned by the
|
|
21
|
+
virtualizer (`transform: translateY(...)` + an inline `height`), so the
|
|
22
|
+
number must be known to JS: `DENSITY_METRICS[level].rowHeight` in
|
|
23
|
+
`../types/density.ts` feeds `estimateSize`. `--dt-row-height` below restates
|
|
24
|
+
the SAME number for the box model and for anything measuring the grid.
|
|
25
|
+
NEVER try to force row height from here with `!important` — it would beat
|
|
26
|
+
the inline style and instantly desynchronise the row fills from their
|
|
27
|
+
`translateY` offsets, overlapping every row.
|
|
28
|
+
|
|
29
|
+
── Attribute name: `data-density-level`, NOT `data-density` ──────────────
|
|
30
|
+
`data-density` is ALREADY TAKEN by a legacy developer-facing prop
|
|
31
|
+
(`density?: 'sm' | 'md'` → 36px / 44px rows), and `DynamicTable.v2.css`
|
|
32
|
+
carries rules keyed on `:not([data-density])` that define part of today's
|
|
33
|
+
DEFAULT rendering. Reusing the attribute would switch those rules off the
|
|
34
|
+
moment a user selected `comfortable` — breaking the one guarantee this
|
|
35
|
+
feature makes. The two attributes are orthogonal; nothing here reads
|
|
36
|
+
`[data-density]`.
|
|
37
|
+
|
|
38
|
+
── Load order ────────────────────────────────────────────────────────────
|
|
39
|
+
Imported AFTER DynamicTable.v2.css in `apps/web/src/app/globals.css`. The
|
|
40
|
+
consuming rules also out-specify their v2 counterparts, so a cascade
|
|
41
|
+
reshuffle by a concurrent edit cannot silently disarm them.
|
|
42
|
+
═════════════════════════════════════════════════════════════════════════ */
|
|
43
|
+
|
|
44
|
+
|
|
45
|
+
/* ───────────────────────────────────────────────────────────────────────────
|
|
46
|
+
LEVEL 1 — comfortable (THE DEFAULT)
|
|
47
|
+
|
|
48
|
+
TODAY'S SIZING, EXACTLY. Every value below was read out of the shipped
|
|
49
|
+
stylesheets and component before being written here:
|
|
50
|
+
|
|
51
|
+
row height 32px DynamicTable.tsx:708 — `dataRowHeight` default (the
|
|
52
|
+
32 branch; `sm`=36 / `md`=44 belong to the legacy
|
|
53
|
+
`density` prop, a different axis)
|
|
54
|
+
cell padding 4/8 DynamicTable.v2.css — ".hot-table td.hot-cell"
|
|
55
|
+
inter-row gap 2+2 DynamicTable.v2.css — border-top/bottom
|
|
56
|
+
"2px solid transparent" (4px total gap, rows read as
|
|
57
|
+
separated pills), NO row separators
|
|
58
|
+
header padding 6/8 DynamicTable.v2.css — "th.hot-col-header"
|
|
59
|
+
header height auto content-driven (16px line-box + 12px padding ≈ 28px);
|
|
60
|
+
NOT pinned today, so it is NOT pinned here
|
|
61
|
+
header weight 500 DynamicTable.v2.css — "th.hot-col-header"
|
|
62
|
+
data type 12/16 body/regular/xs, on "td, th" directly
|
|
63
|
+
mono type 12/16 code/regular/sm, on ".cell-mono"
|
|
64
|
+
badge 2/10, 12/16 label/semibold/xs, on ".cell-badge"
|
|
65
|
+
|
|
66
|
+
NOTE the deliberate asymmetry below: this block DECLARES the baseline but
|
|
67
|
+
the consuming rules SKIP it (`:not([data-density-level="comfortable"])`).
|
|
68
|
+
Comfortable is therefore a no-op by CONSTRUCTION, not by careful
|
|
69
|
+
restatement — zero rules match, so there is nothing to get subtly wrong,
|
|
70
|
+
and no concurrent edit to DynamicTable.v2.css can drift the default out
|
|
71
|
+
from under us. The values are still declared because they are the baseline
|
|
72
|
+
of record, they are readable in DevTools, and `types/density.ts` mirrors
|
|
73
|
+
`--dt-row-height` for the virtualizer.
|
|
74
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
75
|
+
.hot-container[data-density-level="comfortable"] {
|
|
76
|
+
--dt-row-height: 32px;
|
|
77
|
+
--dt-row-gap-top: 2px;
|
|
78
|
+
--dt-row-gap-bottom: 2px;
|
|
79
|
+
--dt-row-rule-color: transparent;
|
|
80
|
+
|
|
81
|
+
--dt-cell-pad-y: 4px;
|
|
82
|
+
--dt-cell-pad-x: 8px;
|
|
83
|
+
|
|
84
|
+
--dt-header-height: auto;
|
|
85
|
+
--dt-header-pad-y: 6px;
|
|
86
|
+
--dt-header-pad-x: 8px;
|
|
87
|
+
--dt-header-gap: 2px;
|
|
88
|
+
|
|
89
|
+
--dt-cell-font-size: var(--text-body-regular-xs, 0.75rem);
|
|
90
|
+
--dt-cell-line-height: var(--text-body-regular-xs--line-height, 1rem);
|
|
91
|
+
--dt-cell-letter-spacing: inherit;
|
|
92
|
+
|
|
93
|
+
--dt-mono-font-size: var(--text-code-regular-sm, 0.75rem);
|
|
94
|
+
--dt-mono-line-height: var(--text-code-regular-sm--line-height, 1rem);
|
|
95
|
+
--dt-mono-letter-spacing: inherit;
|
|
96
|
+
|
|
97
|
+
--dt-header-font-size: var(--text-body-regular-xs, 0.75rem);
|
|
98
|
+
--dt-header-line-height: var(--text-body-regular-xs--line-height, 1rem);
|
|
99
|
+
--dt-header-letter-spacing: inherit;
|
|
100
|
+
--dt-header-font-weight: 500;
|
|
101
|
+
|
|
102
|
+
--dt-badge-pad-y: 2px;
|
|
103
|
+
--dt-badge-pad-x: 10px;
|
|
104
|
+
--dt-badge-font-size: var(--text-label-semibold-xs, 0.75rem);
|
|
105
|
+
--dt-badge-line-height: var(--text-label-semibold-xs--line-height, 1rem);
|
|
106
|
+
|
|
107
|
+
--dt-editor-inset-y: 4px;
|
|
108
|
+
--dt-editor-inset-x: 6px;
|
|
109
|
+
--dt-editor-pad-x: 14px;
|
|
110
|
+
--dt-editor-line-height: 24px;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
|
|
114
|
+
/* ───────────────────────────────────────────────────────────────────────────
|
|
115
|
+
LEVEL 2 — compact
|
|
116
|
+
|
|
117
|
+
SAME 12px type as today. Only the geometry tightens. This is the level for
|
|
118
|
+
somebody who wants more rows but is still READING the table, not scanning
|
|
119
|
+
it — and it is the safe recommendation, because no glyph gets smaller so
|
|
120
|
+
nothing that was legible stops being legible.
|
|
121
|
+
|
|
122
|
+
Where the 6px comes from: 32 → 26 is the inter-row gap (4px → 2px) plus the
|
|
123
|
+
vertical padding (8px → 4px). The 16px line-box is untouched. The content
|
|
124
|
+
box stays 20px, i.e. EXACTLY as much room for the text as comfortable has —
|
|
125
|
+
compact spends none of its saving on the glyphs, all of it on the gaps.
|
|
126
|
+
|
|
127
|
+
26 = 1 (top border) + 2 (pad) + 20 (content) + 2 (pad) + 1 (bottom border)
|
|
128
|
+
|
|
129
|
+
Horizontal padding drops 8 → 6px on both sides: 4px more usable text per
|
|
130
|
+
column at the same column width. That is the axis workshop item A16 is
|
|
131
|
+
actually about ("roughly half the needed columns fit").
|
|
132
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
133
|
+
.hot-container[data-density-level="compact"] {
|
|
134
|
+
--dt-row-height: 26px;
|
|
135
|
+
--dt-row-gap-top: 1px;
|
|
136
|
+
--dt-row-gap-bottom: 1px;
|
|
137
|
+
--dt-row-rule-color: transparent;
|
|
138
|
+
|
|
139
|
+
--dt-cell-pad-y: 2px;
|
|
140
|
+
--dt-cell-pad-x: 6px;
|
|
141
|
+
|
|
142
|
+
/* 16px line-box + 2×4px padding = 24px exactly. */
|
|
143
|
+
--dt-header-height: 24px;
|
|
144
|
+
--dt-header-pad-y: 4px;
|
|
145
|
+
--dt-header-pad-x: 6px;
|
|
146
|
+
--dt-header-gap: 2px;
|
|
147
|
+
|
|
148
|
+
--dt-cell-font-size: var(--text-body-regular-xs, 0.75rem);
|
|
149
|
+
--dt-cell-line-height: var(--text-body-regular-xs--line-height, 1rem);
|
|
150
|
+
--dt-cell-letter-spacing: inherit;
|
|
151
|
+
|
|
152
|
+
--dt-mono-font-size: var(--text-code-regular-sm, 0.75rem);
|
|
153
|
+
--dt-mono-line-height: var(--text-code-regular-sm--line-height, 1rem);
|
|
154
|
+
--dt-mono-letter-spacing: inherit;
|
|
155
|
+
|
|
156
|
+
--dt-header-font-size: var(--text-body-regular-xs, 0.75rem);
|
|
157
|
+
--dt-header-line-height: var(--text-body-regular-xs--line-height, 1rem);
|
|
158
|
+
--dt-header-letter-spacing: inherit;
|
|
159
|
+
--dt-header-font-weight: 600;
|
|
160
|
+
|
|
161
|
+
/* 16px line-box + 2×1px padding + 2×1px border = 20px, inside a 20px box. */
|
|
162
|
+
--dt-badge-pad-y: 1px;
|
|
163
|
+
--dt-badge-pad-x: 8px;
|
|
164
|
+
--dt-badge-font-size: var(--text-label-semibold-xs, 0.75rem);
|
|
165
|
+
--dt-badge-line-height: var(--text-label-semibold-xs--line-height, 1rem);
|
|
166
|
+
|
|
167
|
+
--dt-editor-inset-y: 2px;
|
|
168
|
+
--dt-editor-inset-x: 4px;
|
|
169
|
+
--dt-editor-pad-x: 8px;
|
|
170
|
+
--dt-editor-line-height: 20px;
|
|
171
|
+
}
|
|
172
|
+
|
|
173
|
+
|
|
174
|
+
/* ───────────────────────────────────────────────────────────────────────────
|
|
175
|
+
LEVEL 3 — dense (maximum information)
|
|
176
|
+
|
|
177
|
+
The power-user setting: a wide monitor, a whole working picture, scanning
|
|
178
|
+
rather than reading. 20px rows with 11px data and 10px headers — which is,
|
|
179
|
+
not by accident, Excel's own default row box. Users who live in this table
|
|
180
|
+
all day already read spreadsheets at exactly this density.
|
|
181
|
+
|
|
182
|
+
20 = 0 (top border) + 1 (pad) + 17 (content) + 1 (pad) + 1 (bottom rule)
|
|
183
|
+
|
|
184
|
+
The 17px content box carries a 14px line-box with 1.5px of slack above and
|
|
185
|
+
below, so descenders never clip and the text stays optically centred.
|
|
186
|
+
|
|
187
|
+
BORDER TREATMENT CHANGES HERE, deliberately. comfortable and compact
|
|
188
|
+
separate rows with WHITESPACE (transparent gap borders → rounded pills).
|
|
189
|
+
At 20px there is no whitespace left to spend, so dense switches to the
|
|
190
|
+
classic spreadsheet treatment: no gap, and a 1px hairline rule under each
|
|
191
|
+
row. This is not a cosmetic preference — at 20px, with 20+ columns, the
|
|
192
|
+
hairline is what lets the eye track a single record from the leftmost
|
|
193
|
+
column to the rightmost without slipping a row. Whitespace separation stops
|
|
194
|
+
working long before the type does.
|
|
195
|
+
|
|
196
|
+
Horizontal padding drops to 4px, the tightest that still keeps adjacent
|
|
197
|
+
columns' text visually distinct.
|
|
198
|
+
───────────────────────────────────────────────────────────────────────── */
|
|
199
|
+
.hot-container[data-density-level="dense"] {
|
|
200
|
+
--dt-row-height: 20px;
|
|
201
|
+
--dt-row-gap-top: 0px;
|
|
202
|
+
--dt-row-gap-bottom: 1px;
|
|
203
|
+
--dt-row-rule-color: var(--table-v2-divider);
|
|
204
|
+
|
|
205
|
+
--dt-cell-pad-y: 1px;
|
|
206
|
+
--dt-cell-pad-x: 4px;
|
|
207
|
+
|
|
208
|
+
/* 12px line-box + 2×3px padding = 18px; pinned to 20 to match the data row. */
|
|
209
|
+
--dt-header-height: 20px;
|
|
210
|
+
--dt-header-pad-y: 3px;
|
|
211
|
+
--dt-header-pad-x: 4px;
|
|
212
|
+
--dt-header-gap: 0px;
|
|
213
|
+
|
|
214
|
+
--dt-cell-font-size: var(--text-body-regular-2xs, 0.6875rem);
|
|
215
|
+
--dt-cell-line-height: var(--text-body-regular-2xs--line-height, 0.875rem);
|
|
216
|
+
--dt-cell-letter-spacing: var(--text-body-regular-2xs--letter-spacing, 0.01em);
|
|
217
|
+
|
|
218
|
+
--dt-mono-font-size: var(--text-code-regular-2xs, 0.6875rem);
|
|
219
|
+
--dt-mono-line-height: var(--text-code-regular-2xs--line-height, 0.875rem);
|
|
220
|
+
--dt-mono-letter-spacing: var(--text-code-regular-2xs--letter-spacing, 0.01em);
|
|
221
|
+
|
|
222
|
+
--dt-header-font-size: var(--text-label-semibold-2xs, 0.625rem);
|
|
223
|
+
--dt-header-line-height: var(--text-label-semibold-2xs--line-height, 0.75rem);
|
|
224
|
+
--dt-header-letter-spacing: var(--text-label-semibold-2xs--letter-spacing, 0.02em);
|
|
225
|
+
--dt-header-font-weight: var(--text-label-semibold-2xs--font-weight, 600);
|
|
226
|
+
|
|
227
|
+
/* 12px line-box + 2×1px border = 14px, inside a 17px box. */
|
|
228
|
+
--dt-badge-pad-y: 0px;
|
|
229
|
+
--dt-badge-pad-x: 6px;
|
|
230
|
+
--dt-badge-font-size: var(--text-label-semibold-2xs, 0.625rem);
|
|
231
|
+
--dt-badge-line-height: var(--text-label-semibold-2xs--line-height, 0.75rem);
|
|
232
|
+
|
|
233
|
+
--dt-editor-inset-y: 1px;
|
|
234
|
+
--dt-editor-inset-x: 2px;
|
|
235
|
+
--dt-editor-pad-x: 6px;
|
|
236
|
+
--dt-editor-line-height: 18px;
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
|
|
240
|
+
/* ═══════════════════════════════════════════════════════════════════════════
|
|
241
|
+
CONSUMING RULES
|
|
242
|
+
|
|
243
|
+
ONE set, driven entirely by the variables above. Adding a fourth level means
|
|
244
|
+
adding a variable block — never touching anything below this line.
|
|
245
|
+
|
|
246
|
+
The guard
|
|
247
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"])
|
|
248
|
+
does two jobs:
|
|
249
|
+
1. it EXCLUDES the baseline, so `comfortable` is a provable no-op;
|
|
250
|
+
2. it out-specifies the DynamicTable.v2.css rules it replaces (adds two
|
|
251
|
+
attribute selectors on top of the same class chain), so it wins on
|
|
252
|
+
specificity and does not depend on import order.
|
|
253
|
+
|
|
254
|
+
It matches any FUTURE level automatically.
|
|
255
|
+
═══════════════════════════════════════════════════════════════════════════ */
|
|
256
|
+
|
|
257
|
+
/* ── Body cells: box model ───────────────────────────────────────────────── */
|
|
258
|
+
/* Longhands only. The v2 base sets `border-top/bottom: 2px solid transparent`
|
|
259
|
+
with the shorthand; overriding just the widths (and the bottom colour) keeps
|
|
260
|
+
its `solid` style and the `background-clip: padding-box` contract intact —
|
|
261
|
+
which is what makes the fill stop at the gap instead of bleeding into it. */
|
|
262
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table td.hot-cell,
|
|
263
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table td.hot-row-header {
|
|
264
|
+
padding-top: var(--dt-cell-pad-y);
|
|
265
|
+
padding-bottom: var(--dt-cell-pad-y);
|
|
266
|
+
padding-left: var(--dt-cell-pad-x);
|
|
267
|
+
padding-right: var(--dt-cell-pad-x);
|
|
268
|
+
border-top-width: var(--dt-row-gap-top);
|
|
269
|
+
border-bottom-width: var(--dt-row-gap-bottom);
|
|
270
|
+
border-bottom-color: var(--dt-row-rule-color);
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
/* Commented cells keep their right-hand gutter. The block above sets
|
|
274
|
+
`padding-right: var(--dt-cell-pad-x)` (4px at dense) on EVERY `td.hot-cell`,
|
|
275
|
+
and at (0,6,1) it out-specifies the (0,5,1) rule in DynamicTable.v2.css that
|
|
276
|
+
reserves 28px for the absolutely-positioned comment badge. So at dense and
|
|
277
|
+
compact the badge painted straight over the cell's own text — measured on
|
|
278
|
+
the transport list, the indicator occupied x 540–557 while the value ran to
|
|
279
|
+
563, i.e. the last three characters sat under the icon.
|
|
280
|
+
|
|
281
|
+
The gutter is NOT scaled with density: the indicator is a fixed-size icon
|
|
282
|
+
pinned at `right: 10px`, so the space it needs is the same at every level.
|
|
283
|
+
Shrinking this with `--dt-cell-pad-x` is what caused the overlap. */
|
|
284
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table td.hot-cell[data-has-comment="true"],
|
|
285
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table td.hot-cell:has(> .cell-comment-indicator-ghost) {
|
|
286
|
+
padding-right: 28px;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/* The row-header (checkbox) column keeps its own centring but must not keep
|
|
290
|
+
comfortable's 8px sides, or the checkbox column stays wide while every data
|
|
291
|
+
column narrows. */
|
|
292
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table td.hot-row-header {
|
|
293
|
+
padding-left: 0;
|
|
294
|
+
padding-right: 0;
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/* ── Body cells: type ramp ───────────────────────────────────────────────── */
|
|
298
|
+
/* Applied to `td`/`th` DIRECTLY, mirroring the v2 base: custom-renderer cells
|
|
299
|
+
put their content as a direct child of the <td>, so a rule on `.hot-table`
|
|
300
|
+
alone would never reach them. */
|
|
301
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table td,
|
|
302
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table th {
|
|
303
|
+
font-size: var(--dt-cell-font-size);
|
|
304
|
+
line-height: var(--dt-cell-line-height);
|
|
305
|
+
letter-spacing: var(--dt-cell-letter-spacing);
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
/* Mono cells (`type:'mono'` — refs, container numbers, dates, amounts) share a
|
|
309
|
+
row with sans cells, so their line-height MUST match or they alone would set
|
|
310
|
+
the row height. The `2xs` mono token exists purely to hold that invariant. */
|
|
311
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-cell.cell-mono {
|
|
312
|
+
font-size: var(--dt-mono-font-size);
|
|
313
|
+
line-height: var(--dt-mono-line-height);
|
|
314
|
+
letter-spacing: var(--dt-mono-letter-spacing);
|
|
315
|
+
}
|
|
316
|
+
|
|
317
|
+
/* ── Column headers ──────────────────────────────────────────────────────── */
|
|
318
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table th.hot-col-header,
|
|
319
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-table th.hot-row-header {
|
|
320
|
+
height: var(--dt-header-height);
|
|
321
|
+
padding-top: var(--dt-header-pad-y);
|
|
322
|
+
padding-bottom: var(--dt-header-pad-y);
|
|
323
|
+
padding-left: var(--dt-header-pad-x);
|
|
324
|
+
padding-right: var(--dt-header-pad-x);
|
|
325
|
+
font-size: var(--dt-header-font-size);
|
|
326
|
+
line-height: var(--dt-header-line-height);
|
|
327
|
+
letter-spacing: var(--dt-header-letter-spacing);
|
|
328
|
+
font-weight: var(--dt-header-font-weight);
|
|
329
|
+
}
|
|
330
|
+
|
|
331
|
+
/* Gap between the sticky header bar and the first row. */
|
|
332
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-headers-sticky {
|
|
333
|
+
padding-bottom: var(--dt-header-gap);
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/* ── Status badges ───────────────────────────────────────────────────────── */
|
|
337
|
+
/* Sets padding + type ONLY. Never `border-color` here (not even via the
|
|
338
|
+
`border` shorthand): this selector outranks every `.cell-badge-<variant>`
|
|
339
|
+
colour rule and would flatten all twelve variants to one border. */
|
|
340
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-cell .cell-badge {
|
|
341
|
+
padding-top: var(--dt-badge-pad-y);
|
|
342
|
+
padding-bottom: var(--dt-badge-pad-y);
|
|
343
|
+
padding-left: var(--dt-badge-pad-x);
|
|
344
|
+
padding-right: var(--dt-badge-pad-x);
|
|
345
|
+
font-size: var(--dt-badge-font-size);
|
|
346
|
+
line-height: var(--dt-badge-line-height);
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
/* ── Editable controls ───────────────────────────────────────────────────── */
|
|
350
|
+
/* The v2 editor and select pill are dimensioned for a 32–44px row; left alone
|
|
351
|
+
they overflow a 26px row and physically stretch a 20px one, which would
|
|
352
|
+
defeat the whole scale. Re-fit them to the level's content box.
|
|
353
|
+
|
|
354
|
+
These out-specify the `:not([data-density])` compaction rules in
|
|
355
|
+
DynamicTable.v2.css, which stay in force at `comfortable`. */
|
|
356
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) textarea.hot-cell-editor {
|
|
357
|
+
top: var(--dt-editor-inset-y);
|
|
358
|
+
left: var(--dt-editor-inset-x);
|
|
359
|
+
width: calc(100% - 2 * var(--dt-editor-inset-x));
|
|
360
|
+
height: calc(100% - 2 * var(--dt-editor-inset-y));
|
|
361
|
+
padding: 0 var(--dt-editor-pad-x);
|
|
362
|
+
line-height: var(--dt-editor-line-height);
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-cell.cell-select {
|
|
366
|
+
padding-top: var(--dt-cell-pad-y);
|
|
367
|
+
padding-bottom: var(--dt-cell-pad-y);
|
|
368
|
+
padding-left: var(--dt-cell-pad-x);
|
|
369
|
+
padding-right: var(--dt-cell-pad-x);
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/* The select pill's own box: zero vertical padding, line-height carrying the
|
|
373
|
+
height, and just enough right padding to clear the chevron sprite. */
|
|
374
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-cell.cell-select > .cell-content {
|
|
375
|
+
padding-top: 0;
|
|
376
|
+
padding-bottom: 0;
|
|
377
|
+
padding-left: var(--dt-cell-pad-x);
|
|
378
|
+
padding-right: 20px;
|
|
379
|
+
line-height: var(--dt-cell-line-height);
|
|
380
|
+
}
|
|
381
|
+
|
|
382
|
+
/* ── Footer totals row ───────────────────────────────────────────────────── */
|
|
383
|
+
/* The totals strip is a flex `div` OUTSIDE `.hot-table`, so not one of the
|
|
384
|
+
`td`/`th` rules above reaches it. Left alone it kept `text-body-medium-sm`
|
|
385
|
+
(14/20) while the data it totals dropped to 11/14 at dense — the summary
|
|
386
|
+
line rendering 27% larger than every figure it sums, and setting a taller
|
|
387
|
+
box than the rows above it. Column totals must line up with their columns,
|
|
388
|
+
which is the whole point of the row.
|
|
389
|
+
|
|
390
|
+
The numbers and the label are pinned to the same ramp the cells use: the
|
|
391
|
+
totals are read as part of the column, not as a caption. `--dt-mono-*` for
|
|
392
|
+
the values because they are numeric and sit under mono cells. */
|
|
393
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-footer-totals-row {
|
|
394
|
+
font-size: var(--dt-cell-font-size);
|
|
395
|
+
line-height: var(--dt-cell-line-height);
|
|
396
|
+
letter-spacing: var(--dt-cell-letter-spacing);
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-footer-totals-label,
|
|
400
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-footer-totals-scope {
|
|
401
|
+
font-size: var(--dt-cell-font-size);
|
|
402
|
+
line-height: var(--dt-cell-line-height);
|
|
403
|
+
letter-spacing: var(--dt-cell-letter-spacing);
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-footer-totals-value {
|
|
407
|
+
font-size: var(--dt-mono-font-size);
|
|
408
|
+
line-height: var(--dt-mono-line-height);
|
|
409
|
+
letter-spacing: var(--dt-mono-letter-spacing);
|
|
410
|
+
padding-left: var(--dt-cell-pad-x);
|
|
411
|
+
padding-right: var(--dt-cell-pad-x);
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/* The sigma badge is sized in px inline (14×14). Scale it with the type or it
|
|
415
|
+
becomes the tallest thing in a 20px row. */
|
|
416
|
+
.hot-appearance-v2.hot-container[data-density-level]:not([data-density-level="comfortable"]) .hot-footer-totals-sigma {
|
|
417
|
+
width: 1em !important;
|
|
418
|
+
height: 1em !important;
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
|
|
422
|
+
/* ═══════════════════════════════════════════════════════════════════════════
|
|
423
|
+
ACCESSIBILITY FLOOR
|
|
424
|
+
|
|
425
|
+
`dense` puts 11px/10px type on screen. That is a legitimate opt-in for a
|
|
426
|
+
power user on a large monitor — and an accessibility problem for anyone who
|
|
427
|
+
has told their OS they need larger text. When the user has asked for reduced
|
|
428
|
+
motion we leave density alone (it is not motion), but when they have asked
|
|
429
|
+
for MORE contrast, the hairline row rule is the first thing that
|
|
430
|
+
disappears — so darken it rather than letting dense degrade into an
|
|
431
|
+
undifferentiated block of text.
|
|
432
|
+
═════════════════════════════════════════════════════════════════════════ */
|
|
433
|
+
@media (prefers-contrast: more) {
|
|
434
|
+
.hot-container[data-density-level="dense"] {
|
|
435
|
+
--dt-row-rule-color: var(--m3-on-surface-variant, currentColor);
|
|
436
|
+
}
|
|
437
|
+
}
|
|
438
|
+
|
|
439
|
+
|
|
440
|
+
/* ═══════════════════════════════════════════════════════════════════════════
|
|
441
|
+
HEADER CHROME AT `dense` — RECLAIMING 40px FROM EVERY COLUMN
|
|
442
|
+
|
|
443
|
+
Measured, not guessed. In a 96px "Carrier" header the browser reports:
|
|
444
|
+
|
|
445
|
+
funnel button 20px
|
|
446
|
+
kebab button 20px
|
|
447
|
+
gaps + padding ~21px
|
|
448
|
+
─────────────────────
|
|
449
|
+
label gets 35px ← "Carrier" needs ~44px, so it renders "Car…"
|
|
450
|
+
|
|
451
|
+
The chrome therefore imposes a hard floor of roughly 85px on ANY column that
|
|
452
|
+
wants a readable title, whatever its content is. That is what made `Type` and
|
|
453
|
+
`Ship` — two columns whose entire content is a 3-letter badge — paint BLANK
|
|
454
|
+
headers at 58px: the funnel and kebab had consumed the whole cell before a
|
|
455
|
+
single character was drawn.
|
|
456
|
+
|
|
457
|
+
Forty pixels per column, on a table with fifty of them, is the single
|
|
458
|
+
largest remaining density lever on this grid. It is worth more than any
|
|
459
|
+
individual width in a table config, because it applies to every column of
|
|
460
|
+
every table at once.
|
|
461
|
+
|
|
462
|
+
── Why this is scoped to `dense` and does not contradict A1 ──────────────
|
|
463
|
+
Workshop A1 asked for the quick-filter funnel to be FINDABLE, and
|
|
464
|
+
DynamicTable.v2.css states the resulting decision plainly: "Always rendered,
|
|
465
|
+
never hover-revealed: being findable IS the requested feature." That decision
|
|
466
|
+
stands, and it still holds at `comfortable` and `compact` — including the
|
|
467
|
+
default, which is what almost every user sees.
|
|
468
|
+
|
|
469
|
+
`dense` is different in kind. It is not a default anyone drifts into; it is
|
|
470
|
+
an explicit, per-user, per-device request for the maximum information the
|
|
471
|
+
screen can carry, chosen by someone who already knows the grid. Trading
|
|
472
|
+
resting visibility of a control for four more columns of DATA is exactly the
|
|
473
|
+
trade that user is asking to make. A1 is honoured where A1 was aimed.
|
|
474
|
+
|
|
475
|
+
Two guarantees keep this from becoming "hidden functionality" — and a
|
|
476
|
+
third that was claimed here for a long time and was never true:
|
|
477
|
+
|
|
478
|
+
1. AN ACTIVE FILTER IS ALWAYS VISIBLE. `[data-filtered]` opts straight back
|
|
479
|
+
out. A column that is filtering the data can never look unfiltered — the
|
|
480
|
+
state that could mislead someone is the one that is never hidden.
|
|
481
|
+
2. NOT A KEYBOARD GUARANTEE — see HEDGE-146. This slot used to read
|
|
482
|
+
"KEYBOARD USERS NEVER LOSE IT: `:focus-within` reveals the chrome, so
|
|
483
|
+
tabbing to the funnel shows it before it takes focus." The rule below
|
|
484
|
+
is real and does fire, but nothing can trigger it from a keyboard:
|
|
485
|
+
`ColumnHeaders.tsx` renders BOTH the funnel and the kebab with
|
|
486
|
+
`tabIndex={-1}`, so no header control can take focus by tabbing and
|
|
487
|
+
`:focus-within` never comes true that way. The guarantee has never held.
|
|
488
|
+
|
|
489
|
+
What IS true, and is worth keeping: visibility is driven by
|
|
490
|
+
`opacity`/`width` and never `display: none`, so the buttons stay in the
|
|
491
|
+
accessibility tree and remain reachable programmatically and by
|
|
492
|
+
assistive technology that does not rely on the tab order.
|
|
493
|
+
|
|
494
|
+
Whether header chrome belongs in the tab order at all is open, and
|
|
495
|
+
deliberately not settled here — it would add two tab stops per column
|
|
496
|
+
across every grid in the app. HEDGE-146 carries that decision. This
|
|
497
|
+
comment is corrected rather than left standing because a stated
|
|
498
|
+
guarantee that does not hold is worse than no guarantee: HEDGE-141 read
|
|
499
|
+
this paragraph and took keyboard access as already covered.
|
|
500
|
+
3. HOVER REVEALS THE WHOLE HEADER'S CHROME, not one button, so the two
|
|
501
|
+
controls never reflow relative to each other.
|
|
502
|
+
|
|
503
|
+
`width`/`margin` collapse alongside `opacity` because opacity alone would
|
|
504
|
+
leave the 40px reserved and buy nothing at all — the entire point is the
|
|
505
|
+
horizontal space, not the ink.
|
|
506
|
+
═════════════════════════════════════════════════════════════════════════ */
|
|
507
|
+
|
|
508
|
+
/* ── HEDGE-141 — THE FUNNEL IS NEVER COLLAPSED, AT ANY DENSITY OR WIDTH ─────
|
|
509
|
+
The block above argues carefully that collapsing the chrome is safe BECAUSE
|
|
510
|
+
it is scoped to `dense`: an explicit, per-user request for maximum data, made
|
|
511
|
+
by someone who already knows the grid. That argument is sound and it is why
|
|
512
|
+
`dense` still collapses the kebab below.
|
|
513
|
+
|
|
514
|
+
Ledger 6.11 then applied the same collapse at ANY density via `data-narrow`,
|
|
515
|
+
and nobody came back to this reasoning. The scoping the argument depended on
|
|
516
|
+
was gone: the treatment now landed on the DEFAULT view, which is what every
|
|
517
|
+
user sees, and it took the funnel with it. Measured on today's main, at rest,
|
|
518
|
+
default density: **3 of 13 funnels visible on Files and 5 of 12 on
|
|
519
|
+
Transports** — `Client` and `Carrier`, the two columns the client named as
|
|
520
|
+
the ones she actually uses, among the invisible. The per-column filter was
|
|
521
|
+
delivered, is correct, and on most columns reads as absent.
|
|
522
|
+
|
|
523
|
+
That is not a density trade; it is the feature disappearing on the default
|
|
524
|
+
screen. So the funnel comes out of every collapse rule, and the KEBAB absorbs
|
|
525
|
+
the whole saving on its own.
|
|
526
|
+
|
|
527
|
+
The label budget still works, because it was never one control's worth of
|
|
528
|
+
space. 6.11 measured ~40px of chrome — funnel AND kebab — against a 58px
|
|
529
|
+
column. Collapsing the kebab alone returns ~22px of that, which is what
|
|
530
|
+
bought the label back in the first place; the title span already carries
|
|
531
|
+
`flex: 1; min-width: 0; text-overflow: ellipsis`, so on the narrowest columns
|
|
532
|
+
it now truncates instead of vanishing.
|
|
533
|
+
|
|
534
|
+
Nothing that is visible today becomes hidden by this change: the kebab was
|
|
535
|
+
ALREADY collapsed in exactly these cases. The change is strictly additive.
|
|
536
|
+
═════════════════════════════════════════════════════════════════════════ */
|
|
537
|
+
.hot-appearance-v2.hot-container[data-density-level="dense"] .hot-col-header .hot-col-kebab,
|
|
538
|
+
/* ── LEDGER 6.11 ────────────────────────────────────────────────────────────
|
|
539
|
+
Applied at ANY density to a column that is simply too narrow to hold a label
|
|
540
|
+
and its chrome at the same time. At default (comfortable) density "Type" and
|
|
541
|
+
"Ship" rendered as a funnel and a kebab with NO TITLE AT ALL, and three more
|
|
542
|
+
columns truncated to one or two characters — the chrome ate the ~40px before
|
|
543
|
+
a single letter was drawn.
|
|
544
|
+
|
|
545
|
+
`data-narrow` is set by ColumnHeaders from the MEASURED column width, so the
|
|
546
|
+
rule follows the cause (width) rather than a proxy for it (density), and a
|
|
547
|
+
user who drags a column wider gets the label back immediately. All three
|
|
548
|
+
guarantees below apply unchanged. */
|
|
549
|
+
.hot-appearance-v2 .hot-col-header[data-narrow] .hot-col-kebab {
|
|
550
|
+
width: 0;
|
|
551
|
+
margin-left: 0;
|
|
552
|
+
opacity: 0;
|
|
553
|
+
overflow: hidden;
|
|
554
|
+
pointer-events: none;
|
|
555
|
+
/* `--m3-duration-short3` is 150ms — the same 0.15s the buttons' own colour
|
|
556
|
+
transitions use, so the reveal reads as one motion rather than two. Taking
|
|
557
|
+
it from the token means a future change to the M3 motion scale moves both
|
|
558
|
+
halves together, and `prefers-reduced-motion` (which collapses every M3
|
|
559
|
+
duration to 1ms) now reaches this transition too. */
|
|
560
|
+
transition:
|
|
561
|
+
width var(--m3-duration-short3) var(--m3-ease-standard),
|
|
562
|
+
margin-left var(--m3-duration-short3) var(--m3-ease-standard),
|
|
563
|
+
opacity var(--m3-duration-short3) var(--m3-ease-standard);
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
.hot-appearance-v2.hot-container[data-density-level="dense"] .hot-col-header:hover .hot-col-kebab,
|
|
567
|
+
.hot-appearance-v2.hot-container[data-density-level="dense"] .hot-col-header:focus-within .hot-col-kebab,
|
|
568
|
+
.hot-appearance-v2 .hot-col-header[data-narrow]:hover .hot-col-kebab,
|
|
569
|
+
.hot-appearance-v2 .hot-col-header[data-narrow]:focus-within .hot-col-kebab {
|
|
570
|
+
width: 20px;
|
|
571
|
+
margin-left: 2px;
|
|
572
|
+
opacity: 1;
|
|
573
|
+
overflow: visible;
|
|
574
|
+
pointer-events: auto;
|
|
575
|
+
}
|
|
576
|
+
|
|
577
|
+
/* ── HEDGE-141 — buy the label back on the narrowest columns ────────────────
|
|
578
|
+
Keeping the funnel costs the title the funnel's own footprint, and on a 58px
|
|
579
|
+
column that is the difference between "Type" and "Ty…". Measured before this
|
|
580
|
+
rule: 58 = 8 padding + 19 title + 20 funnel + 2 margin + 8 padding, and six
|
|
581
|
+
labels on Files truncated to three or four characters.
|
|
582
|
+
|
|
583
|
+
So on a narrow column the funnel gives back its own trim — a 16px box with no
|
|
584
|
+
left margin, and 4px of the header's right padding — which returns 10px to
|
|
585
|
+
the title. That is `Type`, `Ship`, `Who` and `Mode` rendered in full rather
|
|
586
|
+
than as two letters and an ellipsis.
|
|
587
|
+
|
|
588
|
+
16px is still a comfortably clickable target here because the header cell
|
|
589
|
+
itself is 26-32px tall and the button is centred in it: the hit area is the
|
|
590
|
+
button's box, not the glyph, and the glyph stays 13px. Only the ring of empty
|
|
591
|
+
padding around it shrinks.
|
|
592
|
+
|
|
593
|
+
Scoped to `[data-narrow]`: every column wide enough to afford the full 20px
|
|
594
|
+
box keeps it, so the chrome does not change size as the user scrolls across a
|
|
595
|
+
table. LEFT padding is untouched, so header text stays aligned with the body
|
|
596
|
+
cells beneath it — only the right-hand gutter, which sits between the funnel
|
|
597
|
+
and the column edge, gives way. */
|
|
598
|
+
.hot-appearance-v2 .hot-col-header[data-narrow] .hot-col-funnel {
|
|
599
|
+
width: 16px;
|
|
600
|
+
margin-left: 0;
|
|
601
|
+
}
|
|
602
|
+
.hot-appearance-v2 .hot-col-header[data-narrow] {
|
|
603
|
+
padding-right: 4px;
|
|
604
|
+
}
|
|
605
|
+
|
|
606
|
+
/* ── HEDGE-141 — the one case where the funnel still yields ─────────────────
|
|
607
|
+
Below `FUNNEL_FLOOR_PX` (ColumnHeaders) even the funnel alone costs the label
|
|
608
|
+
its legibility: at 58px `Ship` rendered as `S...`. A column the user can no
|
|
609
|
+
longer name is not a column they can usefully filter, so here — and only here
|
|
610
|
+
— the funnel goes back to hover-reveal. The 6.11 guarantees that are real
|
|
611
|
+
still hold: an active filter opts straight back out, and nothing is ever
|
|
612
|
+
`display: none`, so the button stays in the accessibility tree. The
|
|
613
|
+
`:focus-within` rule fires, but nothing reaches it from a keyboard
|
|
614
|
+
(`tabIndex={-1}`) — HEDGE-146. Stated here too, because this comment
|
|
615
|
+
repeated the guarantee before it was checked. */
|
|
616
|
+
.hot-appearance-v2 .hot-col-header[data-funnel-tight] .hot-col-funnel {
|
|
617
|
+
width: 0;
|
|
618
|
+
margin-left: 0;
|
|
619
|
+
opacity: 0;
|
|
620
|
+
overflow: hidden;
|
|
621
|
+
pointer-events: none;
|
|
622
|
+
transition:
|
|
623
|
+
width var(--m3-duration-short3) var(--m3-ease-standard),
|
|
624
|
+
margin-left var(--m3-duration-short3) var(--m3-ease-standard),
|
|
625
|
+
opacity var(--m3-duration-short3) var(--m3-ease-standard);
|
|
626
|
+
}
|
|
627
|
+
.hot-appearance-v2 .hot-col-header[data-funnel-tight]:hover .hot-col-funnel,
|
|
628
|
+
.hot-appearance-v2 .hot-col-header[data-funnel-tight]:focus-within .hot-col-funnel,
|
|
629
|
+
/* Guarantee 1 — a live filter is never hidden, hover or no hover. */
|
|
630
|
+
.hot-appearance-v2 .hot-col-header[data-funnel-tight] .hot-col-funnel[data-filtered] {
|
|
631
|
+
width: 16px;
|
|
632
|
+
margin-left: 0;
|
|
633
|
+
opacity: 1;
|
|
634
|
+
overflow: visible;
|
|
635
|
+
pointer-events: auto;
|
|
636
|
+
}
|
|
637
|
+
@media (prefers-contrast: more) {
|
|
638
|
+
.hot-appearance-v2 .hot-col-header[data-funnel-tight] .hot-col-funnel {
|
|
639
|
+
width: 16px;
|
|
640
|
+
opacity: 1;
|
|
641
|
+
overflow: visible;
|
|
642
|
+
pointer-events: auto;
|
|
643
|
+
}
|
|
644
|
+
}
|
|
645
|
+
|
|
646
|
+
/* The 0.55 restore that used to live here is gone with the funnel's collapse.
|
|
647
|
+
It existed so a REVEALED funnel matched the resting one — but the funnel no
|
|
648
|
+
longer hides, and DynamicTable.v2.css deliberately removed its 55% wash
|
|
649
|
+
("a wash on top of an already tertiary ink, which is how a permanently-
|
|
650
|
+
rendered control ended up illegible"). Re-applying it on hover would have
|
|
651
|
+
dimmed precisely the narrow columns this ticket is about. */
|
|
652
|
+
|
|
653
|
+
/* A user who has asked their OS for more contrast has told us that opacity
|
|
654
|
+
games are not good enough for them: never hide the chrome for them at all. */
|
|
655
|
+
@media (prefers-contrast: more) {
|
|
656
|
+
.hot-appearance-v2.hot-container[data-density-level="dense"] .hot-col-header .hot-col-kebab,
|
|
657
|
+
.hot-appearance-v2 .hot-col-header[data-narrow] .hot-col-kebab {
|
|
658
|
+
width: 20px;
|
|
659
|
+
margin-left: 2px;
|
|
660
|
+
opacity: 1;
|
|
661
|
+
overflow: visible;
|
|
662
|
+
pointer-events: auto;
|
|
663
|
+
}
|
|
664
|
+
}
|
|
665
|
+
|
|
666
|
+
/* ── Selection checkbox: scale with the row ──────────────────────────────────
|
|
667
|
+
The checkbox was pinned at 16px (DynamicTable.v2.css) for every level while
|
|
668
|
+
the row shrank 32 → 26 → 20px, so by `dense` it filled ~80% of the row and
|
|
669
|
+
read as an oversized control bolted to the left edge.
|
|
670
|
+
|
|
671
|
+
Kept at roughly half the row height, matching how it sits in comfortable.
|
|
672
|
+
Level-scoped rather than `:not(comfortable)`-guarded because the two levels
|
|
673
|
+
need DIFFERENT values, not one shared override — comfortable is untouched
|
|
674
|
+
either way, which is the property the guard test protects. */
|
|
675
|
+
.hot-appearance-v2.hot-container[data-density-level="compact"] .hot-row-select {
|
|
676
|
+
width: 13px;
|
|
677
|
+
height: 13px;
|
|
678
|
+
}
|
|
679
|
+
.hot-appearance-v2.hot-container[data-density-level="compact"] .hot-row-select-all {
|
|
680
|
+
width: 11px;
|
|
681
|
+
height: 13px;
|
|
682
|
+
}
|
|
683
|
+
.hot-appearance-v2.hot-container[data-density-level="dense"] .hot-row-select {
|
|
684
|
+
width: 11px;
|
|
685
|
+
height: 11px;
|
|
686
|
+
}
|
|
687
|
+
.hot-appearance-v2.hot-container[data-density-level="dense"] .hot-row-select-all {
|
|
688
|
+
width: 10px;
|
|
689
|
+
height: 11px;
|
|
690
|
+
}
|