@sfperusacdev/sf-ui 0.1.11
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/README.md +116 -0
- package/dist/sf-ui.css +2 -0
- package/dist/sf-ui.js +13228 -0
- package/dist/sf-ui.js.map +1 -0
- package/dist/sf-ui.umd.cjs +21 -0
- package/dist/sf-ui.umd.cjs.map +1 -0
- package/dist/theme/dark.css +156 -0
- package/dist/theme/erp.css +84 -0
- package/dist/theme/sark.css +117 -0
- package/dist/theme/sf-tokens.css +474 -0
- package/dist/types/src/adapters/maps/google/index.d.ts +18 -0
- package/dist/types/src/adapters/maps/index.d.ts +2 -0
- package/dist/types/src/adapters/maps/leaflet/index.d.ts +10 -0
- package/dist/types/src/components/advanced-inputs/CodeEditor.d.ts +20 -0
- package/dist/types/src/components/advanced-inputs/MapFlyTo.d.ts +9 -0
- package/dist/types/src/components/advanced-inputs/MapGeocoderBar.d.ts +8 -0
- package/dist/types/src/components/advanced-inputs/MapPicker.d.ts +22 -0
- package/dist/types/src/components/advanced-inputs/MapPickerMap.d.ts +10 -0
- package/dist/types/src/components/advanced-inputs/PhotoInput.d.ts +18 -0
- package/dist/types/src/components/advanced-inputs/RichTextEditor.d.ts +16 -0
- package/dist/types/src/components/advanced-inputs/SignaturePad.d.ts +17 -0
- package/dist/types/src/components/advanced-inputs/codeEditorClassName.d.ts +7 -0
- package/dist/types/src/components/advanced-inputs/codeEditorExtensions.d.ts +3 -0
- package/dist/types/src/components/advanced-inputs/index.d.ts +8 -0
- package/dist/types/src/components/advanced-inputs/mapPickerUtils.d.ts +19 -0
- package/dist/types/src/components/advanced-inputs/types.d.ts +5 -0
- package/dist/types/src/components/buttons/ActionButton.d.ts +11 -0
- package/dist/types/src/components/buttons/Button.d.ts +12 -0
- package/dist/types/src/components/buttons/ButtonGroup.d.ts +7 -0
- package/dist/types/src/components/buttons/FormActions.d.ts +12 -0
- package/dist/types/src/components/buttons/RowActions.d.ts +10 -0
- package/dist/types/src/components/buttons/ToolbarButton.d.ts +10 -0
- package/dist/types/src/components/buttons/buttonClassName.d.ts +9 -0
- package/dist/types/src/components/buttons/index.d.ts +9 -0
- package/dist/types/src/components/cards/Badge.d.ts +11 -0
- package/dist/types/src/components/cards/EntityCard.d.ts +28 -0
- package/dist/types/src/components/cards/KPICard.d.ts +22 -0
- package/dist/types/src/components/cards/MetricBar.d.ts +13 -0
- package/dist/types/src/components/cards/ModuleCard.d.ts +34 -0
- package/dist/types/src/components/cards/RecommendationCard.d.ts +13 -0
- package/dist/types/src/components/cards/badgeClassName.d.ts +8 -0
- package/dist/types/src/components/cards/index.d.ts +12 -0
- package/dist/types/src/components/cards/types.d.ts +16 -0
- package/dist/types/src/components/charts/Chart.d.ts +3 -0
- package/dist/types/src/components/charts/Sparkline.d.ts +2 -0
- package/dist/types/src/components/charts/chartUtils.d.ts +14 -0
- package/dist/types/src/components/charts/index.d.ts +5 -0
- package/dist/types/src/components/charts/types.d.ts +32 -0
- package/dist/types/src/components/dashboard/Calendar.d.ts +10 -0
- package/dist/types/src/components/dashboard/DashboardCard.d.ts +43 -0
- package/dist/types/src/components/dashboard/DonutGauge.d.ts +25 -0
- package/dist/types/src/components/dashboard/EventLog.d.ts +37 -0
- package/dist/types/src/components/dashboard/Stepper.d.ts +14 -0
- package/dist/types/src/components/dashboard/calendarUtils.d.ts +5 -0
- package/dist/types/src/components/dashboard/index.d.ts +11 -0
- package/dist/types/src/components/dashboard/types.d.ts +39 -0
- package/dist/types/src/components/display/AuditTimeline.d.ts +20 -0
- package/dist/types/src/components/display/Avatar.d.ts +22 -0
- package/dist/types/src/components/display/Carousel.d.ts +10 -0
- package/dist/types/src/components/display/LiveChip.d.ts +6 -0
- package/dist/types/src/components/display/LiveStatusBar.d.ts +23 -0
- package/dist/types/src/components/display/PassengerBoardCard.d.ts +22 -0
- package/dist/types/src/components/display/RecordList.d.ts +26 -0
- package/dist/types/src/components/display/Timeline.d.ts +17 -0
- package/dist/types/src/components/display/index.d.ts +16 -0
- package/dist/types/src/components/document-inputs/CurrencyInput.d.ts +21 -0
- package/dist/types/src/components/document-inputs/DniInput.d.ts +17 -0
- package/dist/types/src/components/document-inputs/DocumentInputs.fuzz.test.d.ts +1 -0
- package/dist/types/src/components/document-inputs/OtpInput.d.ts +15 -0
- package/dist/types/src/components/document-inputs/PhoneInput.d.ts +18 -0
- package/dist/types/src/components/document-inputs/RucInput.d.ts +17 -0
- package/dist/types/src/components/document-inputs/documentUtils.d.ts +11 -0
- package/dist/types/src/components/document-inputs/index.d.ts +7 -0
- package/dist/types/src/components/feedback/AccessDenied.d.ts +8 -0
- package/dist/types/src/components/feedback/Alert.d.ts +13 -0
- package/dist/types/src/components/feedback/EmptyState.d.ts +9 -0
- package/dist/types/src/components/feedback/ErrorView.d.ts +8 -0
- package/dist/types/src/components/feedback/LoadingView.d.ts +5 -0
- package/dist/types/src/components/feedback/RetryBlock.d.ts +11 -0
- package/dist/types/src/components/feedback/Skeleton.d.ts +9 -0
- package/dist/types/src/components/feedback/Spinner.d.ts +6 -0
- package/dist/types/src/components/feedback/Toast.d.ts +27 -0
- package/dist/types/src/components/feedback/index.d.ts +13 -0
- package/dist/types/src/components/icons/SyncIcon.d.ts +4 -0
- package/dist/types/src/components/icons/index.d.ts +2 -0
- package/dist/types/src/components/inputs/AsyncCardSelect.d.ts +17 -0
- package/dist/types/src/components/inputs/AsyncSearchSelect.d.ts +20 -0
- package/dist/types/src/components/inputs/AsyncSearchTableSelect.d.ts +21 -0
- package/dist/types/src/components/inputs/BooleanCheckbox.d.ts +14 -0
- package/dist/types/src/components/inputs/CardSelect.d.ts +18 -0
- package/dist/types/src/components/inputs/Checkbox.d.ts +16 -0
- package/dist/types/src/components/inputs/CheckboxGroup.d.ts +18 -0
- package/dist/types/src/components/inputs/DateInput.d.ts +20 -0
- package/dist/types/src/components/inputs/DatePicker.d.ts +19 -0
- package/dist/types/src/components/inputs/DisplayField.d.ts +15 -0
- package/dist/types/src/components/inputs/FieldLayout.d.ts +13 -0
- package/dist/types/src/components/inputs/FileInput.d.ts +21 -0
- package/dist/types/src/components/inputs/FileInput.security.test.d.ts +1 -0
- package/dist/types/src/components/inputs/Input.d.ts +21 -0
- package/dist/types/src/components/inputs/NumberInput.d.ts +21 -0
- package/dist/types/src/components/inputs/PasswordInput.d.ts +17 -0
- package/dist/types/src/components/inputs/RadioGroup.d.ts +18 -0
- package/dist/types/src/components/inputs/SearchSelect.d.ts +24 -0
- package/dist/types/src/components/inputs/SearchTableSelect.d.ts +22 -0
- package/dist/types/src/components/inputs/Select.d.ts +18 -0
- package/dist/types/src/components/inputs/SelectOption.d.ts +4 -0
- package/dist/types/src/components/inputs/SmartDateInput.d.ts +35 -0
- package/dist/types/src/components/inputs/SmartDateInput.test.d.ts +1 -0
- package/dist/types/src/components/inputs/SmartInput.d.ts +84 -0
- package/dist/types/src/components/inputs/SmartInput.test.d.ts +1 -0
- package/dist/types/src/components/inputs/SmartSelect.d.ts +77 -0
- package/dist/types/src/components/inputs/SmartSelect.test.d.ts +1 -0
- package/dist/types/src/components/inputs/TextArea.d.ts +19 -0
- package/dist/types/src/components/inputs/Toggle.d.ts +18 -0
- package/dist/types/src/components/inputs/Transfer.d.ts +10 -0
- package/dist/types/src/components/inputs/TreeSelect.d.ts +21 -0
- package/dist/types/src/components/inputs/YesNoSelect.d.ts +17 -0
- package/dist/types/src/components/inputs/fieldClassName.d.ts +8 -0
- package/dist/types/src/components/inputs/index.d.ts +37 -0
- package/dist/types/src/components/inputs/inputFocusTransition.d.ts +2 -0
- package/dist/types/src/components/inputs/passwordStrength.d.ts +7 -0
- package/dist/types/src/components/inputs/textareaClassName.d.ts +7 -0
- package/dist/types/src/components/inputs/treeSelectUtils.d.ts +9 -0
- package/dist/types/src/components/inputs/types-form.d.ts +12 -0
- package/dist/types/src/components/inputs/useAsyncOptions.d.ts +15 -0
- package/dist/types/src/components/interactive-inputs/CardRadioGroup.d.ts +15 -0
- package/dist/types/src/components/interactive-inputs/ColorInput.d.ts +15 -0
- package/dist/types/src/components/interactive-inputs/KeyValueInput.d.ts +16 -0
- package/dist/types/src/components/interactive-inputs/NumberStepper.d.ts +17 -0
- package/dist/types/src/components/interactive-inputs/ProgressBar.d.ts +15 -0
- package/dist/types/src/components/interactive-inputs/ProgressBarReadonly.d.ts +15 -0
- package/dist/types/src/components/interactive-inputs/RangeSliderInput.d.ts +20 -0
- package/dist/types/src/components/interactive-inputs/RatingInput.d.ts +16 -0
- package/dist/types/src/components/interactive-inputs/SliderInput.d.ts +19 -0
- package/dist/types/src/components/interactive-inputs/SortableList.d.ts +12 -0
- package/dist/types/src/components/interactive-inputs/TagsInput.d.ts +16 -0
- package/dist/types/src/components/interactive-inputs/index.d.ts +24 -0
- package/dist/types/src/components/interactive-inputs/interactiveUtils.d.ts +14 -0
- package/dist/types/src/components/interactive-inputs/types.d.ts +8 -0
- package/dist/types/src/components/layout/Accordion.d.ts +17 -0
- package/dist/types/src/components/layout/AppShell.d.ts +100 -0
- package/dist/types/src/components/layout/AppShell.test.d.ts +1 -0
- package/dist/types/src/components/layout/Breadcrumb.d.ts +14 -0
- package/dist/types/src/components/layout/DateWeekStrip.d.ts +12 -0
- package/dist/types/src/components/layout/FilterBar.d.ts +54 -0
- package/dist/types/src/components/layout/FormWizard.d.ts +11 -0
- package/dist/types/src/components/layout/HeightProvider.d.ts +7 -0
- package/dist/types/src/components/layout/ItineraryEditor.d.ts +20 -0
- package/dist/types/src/components/layout/LiveRouteBoard.d.ts +50 -0
- package/dist/types/src/components/layout/MaestroLayout.d.ts +15 -0
- package/dist/types/src/components/layout/MasterDetailLayout.d.ts +21 -0
- package/dist/types/src/components/layout/PageContainer.d.ts +8 -0
- package/dist/types/src/components/layout/PageHeader.d.ts +13 -0
- package/dist/types/src/components/layout/ScrollArea.d.ts +9 -0
- package/dist/types/src/components/layout/Separator.d.ts +6 -0
- package/dist/types/src/components/layout/SidePanel.d.ts +15 -0
- package/dist/types/src/components/layout/SidePanelContainer.d.ts +21 -0
- package/dist/types/src/components/layout/TablePageLayout.d.ts +9 -0
- package/dist/types/src/components/layout/Tabs.d.ts +17 -0
- package/dist/types/src/components/layout/UnitSelector.d.ts +14 -0
- package/dist/types/src/components/layout/Visibility.d.ts +10 -0
- package/dist/types/src/components/layout/WeekdayToggleStrip.d.ts +12 -0
- package/dist/types/src/components/layout/flotaLayout.test.d.ts +1 -0
- package/dist/types/src/components/layout/index.d.ts +40 -0
- package/dist/types/src/components/layout/transportApi.test.d.ts +1 -0
- package/dist/types/src/components/layout/useFormWizard.d.ts +40 -0
- package/dist/types/src/components/maps/base/MapFrame.d.ts +8 -0
- package/dist/types/src/components/maps/base/MapStatus.d.ts +5 -0
- package/dist/types/src/components/maps/base/index.d.ts +4 -0
- package/dist/types/src/components/maps/forms/AddressSearchInput.d.ts +16 -0
- package/dist/types/src/components/maps/forms/AreaInput.d.ts +7 -0
- package/dist/types/src/components/maps/forms/CoordinatesInput.d.ts +6 -0
- package/dist/types/src/components/maps/forms/LocationPicker.d.ts +16 -0
- package/dist/types/src/components/maps/forms/LocationPicker.test.d.ts +1 -0
- package/dist/types/src/components/maps/forms/RouteInput.d.ts +7 -0
- package/dist/types/src/components/maps/forms/ShapeInput.d.ts +19 -0
- package/dist/types/src/components/maps/forms/ShapeInput.test.d.ts +1 -0
- package/dist/types/src/components/maps/forms/SmartMapInput.d.ts +39 -0
- package/dist/types/src/components/maps/forms/SmartMapInput.test.d.ts +1 -0
- package/dist/types/src/components/maps/forms/index.d.ts +12 -0
- package/dist/types/src/components/maps/index.d.ts +3 -0
- package/dist/types/src/components/maps/renderers/google/GoogleMapRenderer.d.ts +6 -0
- package/dist/types/src/components/maps/renderers/google/index.d.ts +1 -0
- package/dist/types/src/components/maps/renderers/index.d.ts +2 -0
- package/dist/types/src/components/maps/renderers/leaflet/LeafletMapRenderer.d.ts +7 -0
- package/dist/types/src/components/maps/renderers/leaflet/index.d.ts +1 -0
- package/dist/types/src/components/maps/views/MapView.d.ts +9 -0
- package/dist/types/src/components/maps/views/index.d.ts +2 -0
- package/dist/types/src/components/media-inputs/FileDropInput.d.ts +21 -0
- package/dist/types/src/components/media-inputs/MultiPhotoInput.d.ts +20 -0
- package/dist/types/src/components/media-inputs/MultiPhotoInput.security.test.d.ts +1 -0
- package/dist/types/src/components/media-inputs/PhotoCropEditor.d.ts +9 -0
- package/dist/types/src/components/media-inputs/PhotoCropInput.d.ts +19 -0
- package/dist/types/src/components/media-inputs/PhotoInput.d.ts +1 -0
- package/dist/types/src/components/media-inputs/SignaturePad.d.ts +1 -0
- package/dist/types/src/components/media-inputs/SmartMediaInput.d.ts +43 -0
- package/dist/types/src/components/media-inputs/SmartMediaInput.test.d.ts +1 -0
- package/dist/types/src/components/media-inputs/cropImageFromArea.d.ts +7 -0
- package/dist/types/src/components/media-inputs/index.d.ts +13 -0
- package/dist/types/src/components/media-inputs/mediaUtils.d.ts +9 -0
- package/dist/types/src/components/media-inputs/types.d.ts +6 -0
- package/dist/types/src/components/overlays/CommandPalette.d.ts +17 -0
- package/dist/types/src/components/overlays/ConfirmDialog.d.ts +14 -0
- package/dist/types/src/components/overlays/ContextMenu.d.ts +15 -0
- package/dist/types/src/components/overlays/Drawer.d.ts +23 -0
- package/dist/types/src/components/overlays/DropdownMenu.d.ts +21 -0
- package/dist/types/src/components/overlays/MessageDialog.d.ts +11 -0
- package/dist/types/src/components/overlays/Modal.d.ts +31 -0
- package/dist/types/src/components/overlays/NotificationBell.d.ts +12 -0
- package/dist/types/src/components/overlays/OptionItem.d.ts +11 -0
- package/dist/types/src/components/overlays/Popover.d.ts +18 -0
- package/dist/types/src/components/overlays/ProductTour.d.ts +15 -0
- package/dist/types/src/components/overlays/QRView.d.ts +9 -0
- package/dist/types/src/components/overlays/TabMenuOption.d.ts +9 -0
- package/dist/types/src/components/overlays/Tooltip.d.ts +10 -0
- package/dist/types/src/components/overlays/index.d.ts +27 -0
- package/dist/types/src/components/range-inputs/DateRangeInput.d.ts +19 -0
- package/dist/types/src/components/range-inputs/DateRangeUtcInput.d.ts +3 -0
- package/dist/types/src/components/range-inputs/TimeRangeInput.d.ts +18 -0
- package/dist/types/src/components/range-inputs/index.d.ts +8 -0
- package/dist/types/src/components/range-inputs/rangeUtils.d.ts +8 -0
- package/dist/types/src/components/range-inputs/types.d.ts +10 -0
- package/dist/types/src/components/table/ActiveFiltersBar.d.ts +10 -0
- package/dist/types/src/components/table/AsyncCustomTable.d.ts +13 -0
- package/dist/types/src/components/table/CustomTable.d.ts +83 -0
- package/dist/types/src/components/table/EditableDataGrid.d.ts +15 -0
- package/dist/types/src/components/table/EditableDataGrid.test.d.ts +1 -0
- package/dist/types/src/components/table/ExpandableTableSection.d.ts +26 -0
- package/dist/types/src/components/table/PaginationRangeInput.d.ts +14 -0
- package/dist/types/src/components/table/TableColumnSettings.d.ts +13 -0
- package/dist/types/src/components/table/TableFiltersPanel.d.ts +17 -0
- package/dist/types/src/components/table/TableSortingPanel.d.ts +16 -0
- package/dist/types/src/components/table/activeFilterUtils.d.ts +9 -0
- package/dist/types/src/components/table/asyncStateStore.d.ts +6 -0
- package/dist/types/src/components/table/customTableController.d.ts +51 -0
- package/dist/types/src/components/table/index.d.ts +26 -0
- package/dist/types/src/components/table/tableFilters.d.ts +21 -0
- package/dist/types/src/components/table/useTableColumnSettings.d.ts +29 -0
- package/dist/types/src/components/visualization/NetworkLegend.d.ts +8 -0
- package/dist/types/src/components/visualization/NetworkMap.d.ts +19 -0
- package/dist/types/src/components/visualization/OrgTree.d.ts +20 -0
- package/dist/types/src/components/visualization/index.d.ts +9 -0
- package/dist/types/src/components/visualization/networkMapUtils.d.ts +32 -0
- package/dist/types/src/components/visualization/orgTreeUtils.d.ts +6 -0
- package/dist/types/src/components/visualization/types.d.ts +38 -0
- package/dist/types/src/constants/index.d.ts +1 -0
- package/dist/types/src/constants/maps/index.d.ts +8 -0
- package/dist/types/src/contracts/maps/index.d.ts +27 -0
- package/dist/types/src/engines/maps/google/googleMapEngine.d.ts +3 -0
- package/dist/types/src/engines/maps/google/index.d.ts +1 -0
- package/dist/types/src/engines/maps/index.d.ts +2 -0
- package/dist/types/src/engines/maps/leaflet/index.d.ts +1 -0
- package/dist/types/src/engines/maps/leaflet/leafletMapEngine.d.ts +3 -0
- package/dist/types/src/hooks/index.d.ts +11 -0
- package/dist/types/src/hooks/maps/index.d.ts +3 -0
- package/dist/types/src/hooks/maps/useAddressSearch.d.ts +7 -0
- package/dist/types/src/hooks/maps/useAddressSearch.test.d.ts +1 -0
- package/dist/types/src/hooks/maps/useMapEngine.d.ts +5 -0
- package/dist/types/src/hooks/maps/useMapsConfig.d.ts +1 -0
- package/dist/types/src/hooks/useArrayPaginator.d.ts +21 -0
- package/dist/types/src/hooks/useClickAway.d.ts +2 -0
- package/dist/types/src/hooks/useCustomForm.d.ts +26 -0
- package/dist/types/src/hooks/useFilterData.d.ts +10 -0
- package/dist/types/src/hooks/useIsClient.d.ts +2 -0
- package/dist/types/src/hooks/useMaestroFilter.d.ts +15 -0
- package/dist/types/src/hooks/useMaestroFilter.test.d.ts +1 -0
- package/dist/types/src/hooks/useQueryStringState.d.ts +2 -0
- package/dist/types/src/hooks/useStoredState.d.ts +2 -0
- package/dist/types/src/index.d.ts +24 -0
- package/dist/types/src/performance/catalogPhases.performance.test.d.ts +1 -0
- package/dist/types/src/performance/componentRender.performance.test.d.ts +1 -0
- package/dist/types/src/providers/SfProvider.d.ts +21 -0
- package/dist/types/src/providers/SfProvider.maps.test.d.ts +1 -0
- package/dist/types/src/providers/index.d.ts +2 -0
- package/dist/types/src/services/maps/distance/basicDistanceService.d.ts +2 -0
- package/dist/types/src/services/maps/distance/basicDistanceService.test.d.ts +1 -0
- package/dist/types/src/services/maps/distance/index.d.ts +1 -0
- package/dist/types/src/services/maps/geocoding/googleGeocodingService.d.ts +3 -0
- package/dist/types/src/services/maps/geocoding/index.d.ts +2 -0
- package/dist/types/src/services/maps/geocoding/nominatimGeocodingService.d.ts +2 -0
- package/dist/types/src/services/maps/googleMapsLoader.d.ts +66 -0
- package/dist/types/src/services/maps/index.d.ts +5 -0
- package/dist/types/src/services/maps/places/index.d.ts +1 -0
- package/dist/types/src/services/maps/places/mapsPlacesService.d.ts +2 -0
- package/dist/types/src/services/maps/routing/basicRouteService.d.ts +2 -0
- package/dist/types/src/services/maps/routing/basicRouteService.test.d.ts +1 -0
- package/dist/types/src/services/maps/routing/index.d.ts +1 -0
- package/dist/types/src/types/maps/index.d.ts +155 -0
- package/dist/types/src/utils/exportTableCsv.d.ts +11 -0
- package/dist/types/src/utils/exportTableXlsx.d.ts +5 -0
- package/dist/types/src/utils/index.d.ts +9 -0
- package/dist/types/src/utils/maps/geocoder.d.ts +8 -0
- package/dist/types/src/utils/maps/index.d.ts +10 -0
- package/dist/types/src/utils/maps/index.test.d.ts +1 -0
- package/dist/types/src/utils/queryParams.d.ts +3 -0
- package/dist/types/src/utils/resolveCssVar.d.ts +2 -0
- package/dist/types/src/utils/sanitizeRichHtml.d.ts +1 -0
- package/dist/types/src/utils/sanitizeRichHtml.test.d.ts +1 -0
- package/dist/types/src/utils/spreadsheetSanitizer.d.ts +1 -0
- package/dist/types/src/utils/spreadsheetSanitizer.test.d.ts +1 -0
- package/dist/types/src/utils/toStringArray.d.ts +1 -0
- package/dist/types/src/utils/validators.d.ts +52 -0
- package/package.json +128 -0
|
@@ -0,0 +1,474 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Tokens sf-ui — defaults slate (Sección A referencia).
|
|
3
|
+
* Sobrescribir con theme/erp.css, theme/sark.css o theme/dark.css.
|
|
4
|
+
*/
|
|
5
|
+
:root {
|
|
6
|
+
/* Marca / acento (focus, primary ERP cuando aplica tema) */
|
|
7
|
+
--sf-primary: #0f172a;
|
|
8
|
+
--sf-primary-muted: #64748b;
|
|
9
|
+
--sf-accent: #64748b;
|
|
10
|
+
--sf-accent-hover: #475569;
|
|
11
|
+
--sf-accent-10: rgb(15 23 42 / 0.06);
|
|
12
|
+
|
|
13
|
+
/* Verdes — tabla / agro (fallback slate en referencia) */
|
|
14
|
+
--sf-navy: #0f172a;
|
|
15
|
+
--sf-navy-muted: #64748b;
|
|
16
|
+
--sf-green: #0f172a;
|
|
17
|
+
--sf-green-mid: #334155;
|
|
18
|
+
--sf-green-light: #64748b;
|
|
19
|
+
|
|
20
|
+
/* Superficies */
|
|
21
|
+
--sf-surface: #f8fafc;
|
|
22
|
+
--sf-surface-alt: #f1f5f9;
|
|
23
|
+
--sf-white: #ffffff;
|
|
24
|
+
--sf-page-bg: #f8fafc;
|
|
25
|
+
|
|
26
|
+
/* Bordes y texto */
|
|
27
|
+
--sf-border: #e5e7eb;
|
|
28
|
+
--sf-border-strong: #d1d5db;
|
|
29
|
+
--sf-text: #111827;
|
|
30
|
+
--sf-text-muted: #6b7280;
|
|
31
|
+
--sf-text-subtle: #9ca3af;
|
|
32
|
+
--sf-label: #0f172a;
|
|
33
|
+
|
|
34
|
+
/* Inputs */
|
|
35
|
+
--sf-input-bg: #ffffff;
|
|
36
|
+
--sf-input-bg-readonly: #f8fafc;
|
|
37
|
+
--sf-input-border: #d1d5db;
|
|
38
|
+
--sf-input-border-focus: #94a3b8;
|
|
39
|
+
--sf-input-text: #111827;
|
|
40
|
+
--sf-input-placeholder: #94a3b8;
|
|
41
|
+
--sf-input-height: 2.5rem;
|
|
42
|
+
--sf-input-height-sm: 2rem;
|
|
43
|
+
--sf-input-radius: 0.375rem;
|
|
44
|
+
--sf-input-font-size: 0.875rem;
|
|
45
|
+
|
|
46
|
+
/* Focus ring */
|
|
47
|
+
--sf-ring: rgb(148 163 184 / 0.35);
|
|
48
|
+
--sf-ring-focus: rgb(226 232 240);
|
|
49
|
+
--sf-ring-width: 2px;
|
|
50
|
+
--sf-ring-error: rgb(254 202 202);
|
|
51
|
+
--sf-input-border-error: #ef4444;
|
|
52
|
+
|
|
53
|
+
/* Semánticos */
|
|
54
|
+
--sf-danger: #dc2626;
|
|
55
|
+
--sf-danger-strong: #b91c1c;
|
|
56
|
+
--sf-danger-bg: #fff1f2;
|
|
57
|
+
--sf-danger-border: #fecdd3;
|
|
58
|
+
--sf-warning: #d97706;
|
|
59
|
+
--sf-warning-bg: #fffbeb;
|
|
60
|
+
--sf-warning-border: #fde68a;
|
|
61
|
+
--sf-success: #16a34a;
|
|
62
|
+
--sf-success-bg: #f0fdf4;
|
|
63
|
+
--sf-success-border: #bbf7d0;
|
|
64
|
+
|
|
65
|
+
/* Tabla */
|
|
66
|
+
--sf-table-header-bg: var(--sf-primary);
|
|
67
|
+
--sf-table-header-text: var(--sf-white);
|
|
68
|
+
--sf-table-header-border: color-mix(in srgb, var(--sf-primary) 82%, var(--sf-white));
|
|
69
|
+
--sf-row-hover: #f0f7ff;
|
|
70
|
+
--sf-row-alt: #f8fafc;
|
|
71
|
+
--sf-row-selected: rgb(15 23 42 / 0.06);
|
|
72
|
+
|
|
73
|
+
/* Botones */
|
|
74
|
+
--sf-btn-primary-bg: #0f172a;
|
|
75
|
+
--sf-btn-primary-hover: #1e293b;
|
|
76
|
+
--sf-btn-primary-text: #ffffff;
|
|
77
|
+
--sf-btn-primary-shadow: none;
|
|
78
|
+
--sf-btn-primary-shadow-hover: none;
|
|
79
|
+
--sf-btn-outline-border: rgb(15 23 42 / 0.25);
|
|
80
|
+
--sf-btn-outline-text: #334155;
|
|
81
|
+
--sf-btn-outline-hover-bg: #f8fafc;
|
|
82
|
+
|
|
83
|
+
/* Info (badges, alerts) */
|
|
84
|
+
--sf-info: #2563eb;
|
|
85
|
+
--sf-info-bg: #eff6ff;
|
|
86
|
+
--sf-info-border: #bfdbfe;
|
|
87
|
+
|
|
88
|
+
/* Modal / overlay */
|
|
89
|
+
--sf-modal-overlay: rgb(15 23 42 / 0.4);
|
|
90
|
+
--sf-modal-bg: #ffffff;
|
|
91
|
+
--sf-modal-border: #e5e7eb;
|
|
92
|
+
--sf-modal-title: #111827;
|
|
93
|
+
--sf-modal-body-text: #334155;
|
|
94
|
+
--sf-modal-close: #64748b;
|
|
95
|
+
--sf-modal-close-hover-bg: #f1f5f9;
|
|
96
|
+
--sf-modal-close-hover-text: #111827;
|
|
97
|
+
--sf-modal-shadow: 0 20px 25px rgb(0 0 0 / 0.1), 0 8px 10px rgb(0 0 0 / 0.04);
|
|
98
|
+
--sf-modal-header-bg: var(--sf-primary);
|
|
99
|
+
--sf-modal-header-text: var(--sf-white);
|
|
100
|
+
/** Mismo tono que eyebrow del topbar / subtítulo en chip usuario (AppShell). */
|
|
101
|
+
--sf-modal-header-subtitle: var(--sf-app-shell-topbar-muted);
|
|
102
|
+
--sf-modal-header-icon-bg: var(--sf-app-shell-accent);
|
|
103
|
+
--sf-modal-header-icon-text: var(--sf-white);
|
|
104
|
+
--sf-modal-header-close: color-mix(in srgb, var(--sf-white) 68%, transparent);
|
|
105
|
+
--sf-modal-header-close-hover-bg: color-mix(in srgb, var(--sf-white) 12%, transparent);
|
|
106
|
+
--sf-modal-header-close-hover-text: var(--sf-white);
|
|
107
|
+
--sf-modal-footer-bg: var(--sf-surface-alt);
|
|
108
|
+
|
|
109
|
+
/* Cards / layout */
|
|
110
|
+
--sf-card-bg: #ffffff;
|
|
111
|
+
--sf-card-border: #e5e7eb;
|
|
112
|
+
--sf-card-shadow: 0 1px 2px rgb(0 0 0 / 0.05);
|
|
113
|
+
--sf-card-shadow-hover: 0 4px 6px rgb(0 0 0 / 0.07);
|
|
114
|
+
--sf-card-title: #111827;
|
|
115
|
+
--sf-card-subtitle: #64748b;
|
|
116
|
+
--sf-card-muted: #94a3b8;
|
|
117
|
+
--sf-card-radius: 0.75rem;
|
|
118
|
+
|
|
119
|
+
/* Badges */
|
|
120
|
+
--sf-badge-neutral-bg: #f1f5f9;
|
|
121
|
+
--sf-badge-neutral-text: #334155;
|
|
122
|
+
--sf-badge-neutral-dot: #94a3b8;
|
|
123
|
+
--sf-badge-primary-bg: #0f172a;
|
|
124
|
+
--sf-badge-primary-text: #ffffff;
|
|
125
|
+
--sf-badge-primary-dot: #334155;
|
|
126
|
+
|
|
127
|
+
/* Alert */
|
|
128
|
+
--sf-alert-body: #334155;
|
|
129
|
+
--sf-alert-info-accent: var(--sf-info);
|
|
130
|
+
--sf-alert-success-accent: var(--sf-success);
|
|
131
|
+
--sf-alert-warning-accent: var(--sf-warning);
|
|
132
|
+
--sf-alert-danger-accent: var(--sf-danger);
|
|
133
|
+
|
|
134
|
+
/* Tabs */
|
|
135
|
+
--sf-tab-list-border: var(--sf-border);
|
|
136
|
+
--sf-tab-active-bg: var(--sf-white);
|
|
137
|
+
--sf-tab-active-text: var(--sf-text);
|
|
138
|
+
--sf-tab-active-border: var(--sf-border);
|
|
139
|
+
--sf-tab-active-indicator: var(--sf-accent);
|
|
140
|
+
--sf-tab-idle-text: var(--sf-text-muted);
|
|
141
|
+
--sf-tab-hover-bg: var(--sf-surface);
|
|
142
|
+
--sf-tab-badge-bg: var(--sf-surface-alt);
|
|
143
|
+
--sf-tab-badge-text: var(--sf-text-muted);
|
|
144
|
+
--sf-tab-badge-active-bg: var(--sf-primary);
|
|
145
|
+
--sf-tab-badge-active-text: var(--sf-white);
|
|
146
|
+
|
|
147
|
+
/* Dropdown */
|
|
148
|
+
--sf-dropdown-bg: var(--sf-white);
|
|
149
|
+
--sf-dropdown-border: var(--sf-card-border);
|
|
150
|
+
--sf-dropdown-shadow: var(--sf-shadow-4);
|
|
151
|
+
--sf-dropdown-item-text: var(--sf-text);
|
|
152
|
+
--sf-dropdown-item-hover-bg: var(--sf-surface);
|
|
153
|
+
--sf-dropdown-item-danger: var(--sf-danger);
|
|
154
|
+
--sf-dropdown-item-danger-hover-bg: var(--sf-danger-bg);
|
|
155
|
+
|
|
156
|
+
/* Page header */
|
|
157
|
+
--sf-page-header-bg: var(--sf-white);
|
|
158
|
+
--sf-page-header-border: var(--sf-border);
|
|
159
|
+
--sf-page-header-shadow: var(--sf-shadow-2);
|
|
160
|
+
|
|
161
|
+
/* AppShell topbar user chip */
|
|
162
|
+
--sf-app-shell-user-chip-bg: color-mix(in srgb, var(--sf-primary) 86%, var(--sf-surface-alt));
|
|
163
|
+
--sf-app-shell-user-chip-bg-hover: color-mix(in srgb, var(--sf-primary) 80%, var(--sf-surface-alt));
|
|
164
|
+
--sf-app-shell-user-chip-border: color-mix(in srgb, var(--sf-white) 22%, transparent);
|
|
165
|
+
--sf-app-shell-user-chip-border-hover: color-mix(in srgb, var(--sf-white) 34%, transparent);
|
|
166
|
+
--sf-app-shell-user-chip-radius: 0.5rem;
|
|
167
|
+
--sf-app-shell-topbar-muted: #9fb6c4;
|
|
168
|
+
--sf-app-shell-user-chip-name: var(--sf-white);
|
|
169
|
+
--sf-app-shell-user-chip-subtitle: var(--sf-app-shell-topbar-muted);
|
|
170
|
+
--sf-app-shell-user-avatar-bg: var(--sf-app-shell-accent);
|
|
171
|
+
--sf-app-shell-user-avatar-text: var(--sf-white);
|
|
172
|
+
--sf-app-shell-user-avatar-ring: color-mix(in srgb, var(--sf-white) 28%, transparent);
|
|
173
|
+
--sf-app-shell-user-avatar-radius: 0.75rem;
|
|
174
|
+
--sf-app-shell-accent: #2e9e5b;
|
|
175
|
+
|
|
176
|
+
/* Domain tokens neutralizados (fuente única, sin prefijos de proyecto) */
|
|
177
|
+
--sf-app-header-bg: var(--sf-primary);
|
|
178
|
+
--sf-success-hover: #15803d;
|
|
179
|
+
--sf-primary-hover: var(--sf-primary-muted);
|
|
180
|
+
--sf-danger-hover: var(--sf-danger-strong);
|
|
181
|
+
--sf-border-soft: color-mix(in srgb, var(--sf-border) 78%, var(--sf-white));
|
|
182
|
+
|
|
183
|
+
--sf-state-ok-text: var(--sf-success);
|
|
184
|
+
--sf-state-ok-bg: var(--sf-success-bg);
|
|
185
|
+
--sf-state-warn-text: var(--sf-warning);
|
|
186
|
+
--sf-state-warn-bg: var(--sf-warning-bg);
|
|
187
|
+
--sf-state-warn-soft-bg: color-mix(in srgb, var(--sf-warning-bg) 60%, var(--sf-white));
|
|
188
|
+
--sf-state-error-bg: var(--sf-danger-bg);
|
|
189
|
+
--sf-state-select-bg: var(--sf-row-selected);
|
|
190
|
+
|
|
191
|
+
--sf-live-dot: var(--sf-success);
|
|
192
|
+
--sf-live-chip-bg: color-mix(in srgb, var(--sf-success) 14%, var(--sf-white));
|
|
193
|
+
--sf-live-chip-text: var(--sf-success);
|
|
194
|
+
--sf-live-status-bg: var(--sf-white);
|
|
195
|
+
--sf-live-status-border: var(--sf-border);
|
|
196
|
+
--sf-passenger-onboard-bg: var(--sf-onboard-bg);
|
|
197
|
+
--sf-passenger-onboard-border: var(--sf-onboard-border);
|
|
198
|
+
--sf-passenger-pending-text: var(--sf-text-muted);
|
|
199
|
+
--sf-live-route-bg: var(--sf-white);
|
|
200
|
+
--sf-live-route-border: var(--sf-border);
|
|
201
|
+
--sf-live-route-hover: var(--sf-surface-alt);
|
|
202
|
+
--sf-live-unit-pill-bg: var(--sf-surface-alt);
|
|
203
|
+
--sf-live-unit-pill-border: var(--sf-border);
|
|
204
|
+
|
|
205
|
+
--sf-onboard-border: color-mix(in srgb, var(--sf-accent) 25%, var(--sf-border));
|
|
206
|
+
--sf-onboard-bg: color-mix(in srgb, var(--sf-accent) 10%, var(--sf-white));
|
|
207
|
+
--sf-onboard-avatar-bg: color-mix(in srgb, var(--sf-accent) 20%, var(--sf-white));
|
|
208
|
+
--sf-pending-avatar-bg: var(--sf-surface-alt);
|
|
209
|
+
--sf-pending-avatar-text: var(--sf-text-muted);
|
|
210
|
+
|
|
211
|
+
--sf-route-active-bg: color-mix(in srgb, var(--sf-accent) 14%, var(--sf-white));
|
|
212
|
+
--sf-route-active-border: color-mix(in srgb, var(--sf-accent) 42%, var(--sf-border));
|
|
213
|
+
--sf-route-active-text: var(--sf-accent);
|
|
214
|
+
|
|
215
|
+
--sf-timeline-edit-icon-bg: var(--sf-info-bg);
|
|
216
|
+
--sf-timeline-edit-icon-text: var(--sf-info);
|
|
217
|
+
--sf-timeline-sync-icon-bg: var(--sf-state-warn-soft-bg);
|
|
218
|
+
--sf-timeline-sync-icon-text: var(--sf-warning);
|
|
219
|
+
--sf-timeline-create-icon-bg: var(--sf-success-bg);
|
|
220
|
+
--sf-timeline-create-icon-text: var(--sf-success);
|
|
221
|
+
--sf-timeline-detail-bg: var(--sf-surface-alt);
|
|
222
|
+
--sf-timeline-detail-border: var(--sf-border-soft);
|
|
223
|
+
--sf-timeline-section-text: var(--sf-text-subtle);
|
|
224
|
+
|
|
225
|
+
--sf-record-icon-bg-info: var(--sf-info-bg);
|
|
226
|
+
--sf-record-icon-text-info: var(--sf-info);
|
|
227
|
+
--sf-record-icon-bg-warning: var(--sf-state-warn-soft-bg);
|
|
228
|
+
--sf-record-icon-text-warning: var(--sf-warning);
|
|
229
|
+
--sf-record-icon-bg-success: var(--sf-success-bg);
|
|
230
|
+
--sf-record-icon-text-success: var(--sf-success);
|
|
231
|
+
--sf-record-icon-bg-neutral: var(--sf-surface-alt);
|
|
232
|
+
--sf-record-icon-text-neutral: var(--sf-text-muted);
|
|
233
|
+
--sf-record-item-border: var(--sf-border);
|
|
234
|
+
--sf-record-item-bg: var(--sf-white);
|
|
235
|
+
|
|
236
|
+
--sf-kpi-accent-emerald: var(--sf-success);
|
|
237
|
+
--sf-kpi-accent-blue: var(--sf-info);
|
|
238
|
+
--sf-kpi-accent-amber: var(--sf-warning);
|
|
239
|
+
--sf-kpi-accent-red: var(--sf-danger);
|
|
240
|
+
--sf-kpi-accent-teal: var(--sf-map-track-4);
|
|
241
|
+
--sf-kpi-accent-slate: var(--sf-primary);
|
|
242
|
+
|
|
243
|
+
--sf-progress-fill: var(--sf-accent);
|
|
244
|
+
--sf-progress-fill-success: var(--sf-success);
|
|
245
|
+
--sf-progress-fill-warning: var(--sf-warning);
|
|
246
|
+
--sf-progress-fill-danger: var(--sf-danger);
|
|
247
|
+
--sf-progress-fill-info: var(--sf-info);
|
|
248
|
+
--sf-progress-track: var(--sf-border);
|
|
249
|
+
|
|
250
|
+
--sf-master-detail-list-bg: var(--sf-surface-alt);
|
|
251
|
+
--sf-master-detail-list-width: 18rem;
|
|
252
|
+
--sf-master-detail-divider: var(--sf-border);
|
|
253
|
+
--sf-master-detail-panel-bg: var(--sf-white);
|
|
254
|
+
|
|
255
|
+
--sf-filter-bar-bg: var(--sf-white);
|
|
256
|
+
--sf-filter-bar-border: var(--sf-border);
|
|
257
|
+
|
|
258
|
+
--sf-itinerary-map-bg: color-mix(in srgb, var(--sf-info-bg) 55%, var(--sf-white));
|
|
259
|
+
--sf-itinerary-map-grid: color-mix(in srgb, var(--sf-border) 65%, transparent);
|
|
260
|
+
--sf-itinerary-path: var(--sf-accent);
|
|
261
|
+
--sf-itinerary-stop-marker-bg: var(--sf-primary);
|
|
262
|
+
--sf-itinerary-stop-marker-text: var(--sf-white);
|
|
263
|
+
--sf-itinerary-origin-dot: var(--sf-success);
|
|
264
|
+
--sf-itinerary-destination-dot: var(--sf-danger);
|
|
265
|
+
|
|
266
|
+
--sf-expandable-row-bg: var(--sf-white);
|
|
267
|
+
--sf-expandable-row-border: var(--sf-border);
|
|
268
|
+
--sf-expandable-row-hover: var(--sf-surface-alt);
|
|
269
|
+
|
|
270
|
+
--sf-maestro-toolbar-bg: var(--sf-white);
|
|
271
|
+
--sf-maestro-toolbar-border: var(--sf-border);
|
|
272
|
+
--sf-maestro-title-text: var(--sf-text);
|
|
273
|
+
--sf-maestro-search-icon: var(--sf-text-muted);
|
|
274
|
+
|
|
275
|
+
--sf-map-track-1: #2e9e5b;
|
|
276
|
+
--sf-map-track-2: #1e6fa3;
|
|
277
|
+
--sf-map-track-3: #ee7a14;
|
|
278
|
+
--sf-map-track-4: #16a89c;
|
|
279
|
+
--sf-map-track-5: #7c3aed;
|
|
280
|
+
--sf-map-track-6: #d97706;
|
|
281
|
+
--sf-map-track-7: #c0392b;
|
|
282
|
+
--sf-map-track-8: #5c7180;
|
|
283
|
+
|
|
284
|
+
/* Toolbar button */
|
|
285
|
+
--sf-toolbar-bg-selected: var(--sf-surface-alt);
|
|
286
|
+
--sf-toolbar-border-selected: var(--sf-border-strong);
|
|
287
|
+
--sf-toolbar-text: var(--sf-text-muted);
|
|
288
|
+
--sf-toolbar-text-hover: var(--sf-text);
|
|
289
|
+
--sf-toolbar-hover-bg: var(--sf-surface);
|
|
290
|
+
--sf-toolbar-hover-border: var(--sf-border);
|
|
291
|
+
|
|
292
|
+
/* Metric bar */
|
|
293
|
+
--sf-metric-track: var(--sf-surface-alt);
|
|
294
|
+
--sf-metric-label: var(--sf-text-muted);
|
|
295
|
+
--sf-metric-value: var(--sf-text);
|
|
296
|
+
--sf-metric-tone-slate: #334155;
|
|
297
|
+
--sf-metric-tone-emerald: var(--sf-success);
|
|
298
|
+
--sf-metric-tone-amber: var(--sf-warning);
|
|
299
|
+
--sf-metric-tone-red: var(--sf-danger);
|
|
300
|
+
--sf-metric-tone-blue: var(--sf-info);
|
|
301
|
+
|
|
302
|
+
/* Module launcher card — SARK menu / Link tile parity */
|
|
303
|
+
--sf-module-bg: rgb(255 255 255 / 0.6);
|
|
304
|
+
--sf-module-border: transparent;
|
|
305
|
+
--sf-module-tile-border: rgb(0 0 0 / 0.06);
|
|
306
|
+
--sf-module-shadow: 0 1px 2px rgb(0 0 0 / 0.04), 0 4px 12px rgb(13 42 58 / 0.08);
|
|
307
|
+
--sf-module-tile-shadow: 0 1px 2px rgb(0 0 0 / 0.05), 0 6px 16px rgb(13 42 58 / 0.1);
|
|
308
|
+
--sf-module-hover-bg: rgb(12 33 49 / 0.2);
|
|
309
|
+
--sf-module-hover-border: #0c2131;
|
|
310
|
+
--sf-module-active-bg: rgb(0 0 0 / 0.1);
|
|
311
|
+
--sf-module-hover-lift: -4px;
|
|
312
|
+
--sf-module-hover-lift-row: -3px;
|
|
313
|
+
--sf-module-accent: var(--sf-accent);
|
|
314
|
+
--sf-module-icon-accent-fill: color-mix(in srgb, var(--sf-module-accent) 14%, var(--sf-module-icon-bg));
|
|
315
|
+
--sf-module-icon-accent-center: color-mix(in srgb, var(--sf-module-accent) 26%, var(--sf-module-icon-bg));
|
|
316
|
+
--sf-module-icon-letter-color: var(--sf-module-accent);
|
|
317
|
+
--sf-module-icon-border: #edf1f4;
|
|
318
|
+
--sf-module-icon-border-logo: #eaeff2;
|
|
319
|
+
--sf-module-icon-bg: #ffffff;
|
|
320
|
+
--sf-module-favorite-active: #f5b301;
|
|
321
|
+
--sf-module-favorite-idle: #9ca3af;
|
|
322
|
+
--sf-module-favorite-opacity: 0.78;
|
|
323
|
+
--sf-module-badge-bg: #e5484d;
|
|
324
|
+
--sf-module-badge-text: #ffffff;
|
|
325
|
+
--sf-module-badge-shadow: rgb(229 72 77 / 0.5);
|
|
326
|
+
--sf-module-new-color: #2e9e5b;
|
|
327
|
+
--sf-module-new-bg: rgb(46 158 91 / 0.14);
|
|
328
|
+
--sf-module-title-color: #000000;
|
|
329
|
+
--sf-module-title-weight: 400;
|
|
330
|
+
--sf-module-subtitle-color: #8a98a4;
|
|
331
|
+
--sf-module-tile-min: 9.5rem;
|
|
332
|
+
--sf-module-tile-min-compact: 7.75rem;
|
|
333
|
+
--sf-module-row-min: 13.75rem;
|
|
334
|
+
--sf-module-grid-gap: 1rem;
|
|
335
|
+
--sf-module-grid-gap-compact: 0.75rem;
|
|
336
|
+
--sf-module-row-grid-gap: 0.875rem;
|
|
337
|
+
--sf-module-tile-radius: 18%;
|
|
338
|
+
--sf-module-row-radius: 0.875rem;
|
|
339
|
+
--sf-module-icon-radius-ratio: 0.3;
|
|
340
|
+
--sf-module-body-min-height-tile: 2.375rem;
|
|
341
|
+
--sf-module-body-min-height-tile-compact: 2.125rem;
|
|
342
|
+
--sf-module-transition: background 0.14s ease, border-color 0.14s ease, transform 0.14s ease;
|
|
343
|
+
|
|
344
|
+
/* Entity card */
|
|
345
|
+
--sf-entity-photo-bg: var(--sf-surface-alt);
|
|
346
|
+
--sf-entity-photo-text: var(--sf-text-subtle);
|
|
347
|
+
--sf-entity-ring-default: var(--sf-card-border);
|
|
348
|
+
--sf-entity-ring-featured: var(--sf-warning);
|
|
349
|
+
--sf-entity-ring-warning: var(--sf-danger);
|
|
350
|
+
--sf-entity-score-high-border: var(--sf-success);
|
|
351
|
+
--sf-entity-score-high-bg: var(--sf-success-bg);
|
|
352
|
+
--sf-entity-score-high-text: var(--sf-success);
|
|
353
|
+
--sf-entity-score-mid-border: var(--sf-warning);
|
|
354
|
+
--sf-entity-score-mid-bg: var(--sf-warning-bg);
|
|
355
|
+
--sf-entity-score-mid-text: var(--sf-warning);
|
|
356
|
+
--sf-entity-score-low-border: var(--sf-danger);
|
|
357
|
+
--sf-entity-score-low-bg: var(--sf-danger-bg);
|
|
358
|
+
--sf-entity-score-low-text: var(--sf-danger);
|
|
359
|
+
|
|
360
|
+
/* Skeleton (base Fase 19) */
|
|
361
|
+
--sf-skeleton-bg: var(--sf-surface-alt);
|
|
362
|
+
--sf-skeleton-shimmer: var(--sf-border);
|
|
363
|
+
|
|
364
|
+
/* Spinner / overlays feedback */
|
|
365
|
+
--sf-spinner-track: #cbd5e1;
|
|
366
|
+
--sf-spinner-fill: var(--sf-primary);
|
|
367
|
+
--sf-overlay-loading: rgb(255 255 255 / 0.7);
|
|
368
|
+
--sf-overlay-error: rgb(255 255 255 / 0.85);
|
|
369
|
+
|
|
370
|
+
/* ActionButton semánticos extra */
|
|
371
|
+
--sf-btn-success-bg: var(--sf-success);
|
|
372
|
+
--sf-btn-success-hover: #15803d;
|
|
373
|
+
--sf-btn-warning-bg: var(--sf-warning);
|
|
374
|
+
--sf-btn-warning-hover: #b45309;
|
|
375
|
+
--sf-btn-info-bg: var(--sf-info);
|
|
376
|
+
--sf-btn-info-bg-hover: #1d4ed8;
|
|
377
|
+
|
|
378
|
+
/* Gauge / calendar */
|
|
379
|
+
--sf-gauge-track: #e2e8f0;
|
|
380
|
+
|
|
381
|
+
/* Toast (Fase 19) */
|
|
382
|
+
--sf-toast-bg: var(--sf-card-bg);
|
|
383
|
+
--sf-toast-border: var(--sf-card-border);
|
|
384
|
+
--sf-toast-shadow: var(--sf-shadow-8);
|
|
385
|
+
--sf-toast-title: var(--sf-card-title);
|
|
386
|
+
--sf-toast-body: var(--sf-text-muted);
|
|
387
|
+
--sf-toast-close: var(--sf-text-subtle);
|
|
388
|
+
|
|
389
|
+
/* Tooltip (Fase 19) */
|
|
390
|
+
--sf-tooltip-bg: var(--sf-text);
|
|
391
|
+
--sf-tooltip-text: var(--sf-btn-primary-text);
|
|
392
|
+
--sf-tooltip-shadow: var(--sf-shadow-4);
|
|
393
|
+
|
|
394
|
+
/* Avatar (Fase 19) */
|
|
395
|
+
--sf-avatar-bg: var(--sf-surface-alt);
|
|
396
|
+
--sf-avatar-text: var(--sf-text-muted);
|
|
397
|
+
--sf-avatar-ring: var(--sf-card-bg);
|
|
398
|
+
--sf-avatar-accent-bg: var(--sf-accent);
|
|
399
|
+
--sf-avatar-accent-text: var(--sf-white);
|
|
400
|
+
--sf-avatar-accent-radius: 9999px;
|
|
401
|
+
|
|
402
|
+
/* AppShell nav badge */
|
|
403
|
+
--sf-app-shell-nav-badge-bg: var(--sf-accent);
|
|
404
|
+
--sf-app-shell-nav-badge-text: var(--sf-white);
|
|
405
|
+
|
|
406
|
+
/* Navegación / contenedores (Fase 20) */
|
|
407
|
+
--sf-breadcrumb-text: var(--sf-text-muted);
|
|
408
|
+
--sf-breadcrumb-hover: var(--sf-text);
|
|
409
|
+
--sf-breadcrumb-current: var(--sf-card-title);
|
|
410
|
+
--sf-breadcrumb-separator: var(--sf-text-subtle);
|
|
411
|
+
--sf-accordion-border: var(--sf-border);
|
|
412
|
+
--sf-accordion-trigger-hover: var(--sf-surface-alt);
|
|
413
|
+
--sf-drawer-bg: var(--sf-card-bg);
|
|
414
|
+
--sf-drawer-border: var(--sf-border);
|
|
415
|
+
--sf-drawer-overlay: var(--sf-modal-overlay);
|
|
416
|
+
--sf-drawer-shadow: var(--sf-shadow-8);
|
|
417
|
+
--sf-popover-bg: var(--sf-dropdown-bg);
|
|
418
|
+
--sf-popover-border: var(--sf-dropdown-border);
|
|
419
|
+
--sf-popover-shadow: var(--sf-dropdown-shadow);
|
|
420
|
+
--sf-scroll-track: var(--sf-surface-alt);
|
|
421
|
+
--sf-scroll-thumb: var(--sf-border-strong);
|
|
422
|
+
|
|
423
|
+
/* Charts (Fase 22) */
|
|
424
|
+
--sf-chart-1: var(--sf-primary);
|
|
425
|
+
--sf-chart-2: var(--sf-info);
|
|
426
|
+
--sf-chart-3: var(--sf-success);
|
|
427
|
+
--sf-chart-4: var(--sf-warning);
|
|
428
|
+
--sf-chart-5: var(--sf-danger);
|
|
429
|
+
--sf-chart-grid: var(--sf-border);
|
|
430
|
+
--sf-chart-axis: var(--sf-text-muted);
|
|
431
|
+
--sf-chart-tooltip-bg: var(--sf-card-bg);
|
|
432
|
+
--sf-chart-tooltip-border: var(--sf-card-border);
|
|
433
|
+
--sf-chart-tooltip-text: var(--sf-text);
|
|
434
|
+
|
|
435
|
+
/* Network map (Fase 13 / 25) */
|
|
436
|
+
--sf-network-panel-bg: rgb(255 255 255 / 0.95);
|
|
437
|
+
--sf-network-marker-label-text: var(--sf-btn-primary-text);
|
|
438
|
+
--sf-network-marker-label-bg: rgb(15 23 42 / 0.75);
|
|
439
|
+
--sf-network-marker-label-bg-selected: rgb(51 65 85 / 0.9);
|
|
440
|
+
--sf-network-marker-dot-text: var(--sf-btn-primary-text);
|
|
441
|
+
--sf-network-marker-shadow: rgb(15 23 42 / 0.35);
|
|
442
|
+
--sf-network-marker-ring-selected: rgb(51 65 85 / 0.45);
|
|
443
|
+
--sf-network-kind-nap: #7c3aed;
|
|
444
|
+
--sf-network-kind-olt: #0ea5e9;
|
|
445
|
+
--sf-network-kind-splitter: var(--sf-text-muted);
|
|
446
|
+
--sf-network-status-normal: var(--sf-success);
|
|
447
|
+
--sf-network-status-warning: var(--sf-warning);
|
|
448
|
+
--sf-network-status-critical: var(--sf-danger);
|
|
449
|
+
--sf-network-status-maintenance: var(--sf-info);
|
|
450
|
+
--sf-network-edge-backbone: var(--sf-success);
|
|
451
|
+
--sf-network-edge-distribution: var(--sf-warning);
|
|
452
|
+
--sf-network-edge-maintenance: var(--sf-info);
|
|
453
|
+
|
|
454
|
+
/* Map shapes (Fase 11) */
|
|
455
|
+
--sf-map-area-stroke: var(--sf-info);
|
|
456
|
+
--sf-map-area-fill: var(--sf-info);
|
|
457
|
+
--sf-map-route-stroke: #0f766e;
|
|
458
|
+
--sf-map-route-fill: #14b8a6;
|
|
459
|
+
--sf-map-panel-bg: var(--sf-network-panel-bg);
|
|
460
|
+
--sf-map-vertex-border: var(--sf-white);
|
|
461
|
+
--sf-map-vertex-shadow: var(--sf-network-marker-shadow);
|
|
462
|
+
--sf-map-vertex-ring: rgb(59 130 246 / 0.35);
|
|
463
|
+
--sf-map-vertex-ring-active: rgb(59 130 246 / 0.45);
|
|
464
|
+
--sf-org-tree-chip-inset: rgb(0 0 0 / 0.05);
|
|
465
|
+
--sf-org-tree-toggle-hover-bg: rgb(255 255 255 / 0.6);
|
|
466
|
+
--sf-calendar-badge-on-selected-bg: rgb(255 255 255 / 0.3);
|
|
467
|
+
|
|
468
|
+
/* Elevación */
|
|
469
|
+
--sf-shadow-2: 0 1px 2px rgb(0 0 0 / 0.05);
|
|
470
|
+
--sf-shadow-4: 0 4px 16px rgb(0 0 0 / 0.08);
|
|
471
|
+
--sf-shadow-8: 0 10px 32px rgb(15 23 42 / 0.1), 0 4px 10px rgb(15 23 42 / 0.06);
|
|
472
|
+
|
|
473
|
+
--sf-transition: 200ms ease;
|
|
474
|
+
}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { SfLatLng, SfPlace } from '../../../types/maps';
|
|
2
|
+
export type GoogleMapsLikeLatLng = {
|
|
3
|
+
lat: () => number;
|
|
4
|
+
lng: () => number;
|
|
5
|
+
};
|
|
6
|
+
export type GoogleMapsLikeGeocoderResult = {
|
|
7
|
+
place_id?: string;
|
|
8
|
+
formatted_address?: string;
|
|
9
|
+
geometry?: {
|
|
10
|
+
location?: GoogleMapsLikeLatLng;
|
|
11
|
+
};
|
|
12
|
+
};
|
|
13
|
+
export declare const googleLatLngToSfLatLng: (point: GoogleMapsLikeLatLng) => SfLatLng;
|
|
14
|
+
export declare const sfLatLngToGoogleLiteral: (point: SfLatLng) => {
|
|
15
|
+
lat: number;
|
|
16
|
+
lng: number;
|
|
17
|
+
};
|
|
18
|
+
export declare const googleGeocoderResultToSfPlace: (result: GoogleMapsLikeGeocoderResult) => SfPlace | null;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { SfLatLng, SfMapMarker } from '../../../types/maps';
|
|
2
|
+
export declare const leafletLatLngToSfLatLng: (point: {
|
|
3
|
+
lat: number;
|
|
4
|
+
lng: number;
|
|
5
|
+
}) => SfLatLng;
|
|
6
|
+
export declare const sfLatLngToLeafletLatLng: (point: SfLatLng) => [number, number];
|
|
7
|
+
export declare const leafletMarkerToSfMarker: (id: string, position: {
|
|
8
|
+
lat: number;
|
|
9
|
+
lng: number;
|
|
10
|
+
}, label?: string) => SfMapMarker;
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { FieldValues, Path, UseFormReturn } from 'react-hook-form';
|
|
2
|
+
import { CodeEditorLanguage } from './types';
|
|
3
|
+
type CodeEditorProps<TFormValues extends FieldValues> = {
|
|
4
|
+
form: UseFormReturn<TFormValues>;
|
|
5
|
+
name: Path<TFormValues>;
|
|
6
|
+
label?: string;
|
|
7
|
+
info?: string;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
language?: CodeEditorLanguage;
|
|
10
|
+
highlighted?: boolean;
|
|
11
|
+
readOnly?: boolean;
|
|
12
|
+
disabled?: boolean;
|
|
13
|
+
rows?: number;
|
|
14
|
+
small?: boolean;
|
|
15
|
+
className?: string;
|
|
16
|
+
onChange?: (value: string) => void;
|
|
17
|
+
onRefresh?: () => Promise<void> | void;
|
|
18
|
+
};
|
|
19
|
+
export declare const CodeEditor: <TFormValues extends FieldValues>({ form, name, label, info, required, language, highlighted, readOnly, disabled, rows, small, className, onChange, onRefresh, }: CodeEditorProps<TFormValues>) => import("react").JSX.Element;
|
|
20
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { MapGeocoderResult } from '../../utils/maps/geocoder';
|
|
2
|
+
export type MapGeocoderBarProps = {
|
|
3
|
+
onSelect: (result: MapGeocoderResult) => void;
|
|
4
|
+
placeholder?: string;
|
|
5
|
+
className?: string;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
};
|
|
8
|
+
export declare const MapGeocoderBar: ({ onSelect, placeholder, className, disabled, }: MapGeocoderBarProps) => import("react").JSX.Element;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { FieldValues, Path, UseFormReturn } from 'react-hook-form';
|
|
2
|
+
import { MapPoint } from './types';
|
|
3
|
+
type MapPickerProps<TFormValues extends FieldValues> = {
|
|
4
|
+
form: UseFormReturn<TFormValues>;
|
|
5
|
+
name: Path<TFormValues>;
|
|
6
|
+
label?: string;
|
|
7
|
+
info?: string;
|
|
8
|
+
required?: boolean;
|
|
9
|
+
zoom?: number;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
showGeocoder?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
onChange?: (value: MapPoint) => void;
|
|
15
|
+
onRefresh?: () => Promise<void> | void;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* @deprecated Use `LocationPicker` or `SmartMapInput kind="coordinates"` from `components/maps/forms`.
|
|
19
|
+
* This component remains for compatibility during migration.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MapPicker: <TFormValues extends FieldValues>({ form, name, label, info, required, zoom, readOnly, disabled, showGeocoder, className, onChange, onRefresh, }: MapPickerProps<TFormValues>) => import("react").JSX.Element;
|
|
22
|
+
export {};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
type MapPickerMapProps = {
|
|
2
|
+
lat: number;
|
|
3
|
+
lng: number;
|
|
4
|
+
zoom?: number;
|
|
5
|
+
readOnly?: boolean;
|
|
6
|
+
showGeocoder?: boolean;
|
|
7
|
+
onPick: (lat: string, lng: string) => void;
|
|
8
|
+
};
|
|
9
|
+
export declare const MapPickerMap: ({ lat, lng, zoom, readOnly, showGeocoder, onPick, }: MapPickerMapProps) => import("react").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { FieldValues, Path, UseFormReturn } from 'react-hook-form';
|
|
2
|
+
type PhotoInputProps<TFormValues extends FieldValues> = {
|
|
3
|
+
form: UseFormReturn<TFormValues>;
|
|
4
|
+
name: Path<TFormValues>;
|
|
5
|
+
label?: string;
|
|
6
|
+
info?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
capture?: "user" | "environment";
|
|
9
|
+
maxSizeMb?: number;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
small?: boolean;
|
|
13
|
+
className?: string;
|
|
14
|
+
onChange?: (file: File | null) => void;
|
|
15
|
+
onRefresh?: () => Promise<void> | void;
|
|
16
|
+
};
|
|
17
|
+
export declare const PhotoInput: <TFormValues extends FieldValues>({ form, name, label, info, required, capture, maxSizeMb, readOnly, disabled, small, className, onChange, onRefresh, }: PhotoInputProps<TFormValues>) => import("react").JSX.Element;
|
|
18
|
+
export {};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { FieldValues, Path, UseFormReturn } from 'react-hook-form';
|
|
2
|
+
type RichTextEditorProps<TFormValues extends FieldValues> = {
|
|
3
|
+
form: UseFormReturn<TFormValues>;
|
|
4
|
+
name: Path<TFormValues>;
|
|
5
|
+
label?: string;
|
|
6
|
+
info?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
readOnly?: boolean;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
height?: number;
|
|
11
|
+
className?: string;
|
|
12
|
+
onChange?: (html: string) => void;
|
|
13
|
+
onRefresh?: () => Promise<void> | void;
|
|
14
|
+
};
|
|
15
|
+
export declare const RichTextEditor: <TFormValues extends FieldValues>({ form, name, label, info, required, readOnly, disabled, height, className, onChange, onRefresh, }: RichTextEditorProps<TFormValues>) => import("react").JSX.Element;
|
|
16
|
+
export {};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { FieldValues, Path, UseFormReturn } from 'react-hook-form';
|
|
2
|
+
type SignaturePadProps<TFormValues extends FieldValues> = {
|
|
3
|
+
form: UseFormReturn<TFormValues>;
|
|
4
|
+
name: Path<TFormValues>;
|
|
5
|
+
label?: string;
|
|
6
|
+
info?: string;
|
|
7
|
+
required?: boolean;
|
|
8
|
+
width?: number;
|
|
9
|
+
height?: number;
|
|
10
|
+
readOnly?: boolean;
|
|
11
|
+
disabled?: boolean;
|
|
12
|
+
className?: string;
|
|
13
|
+
onChange?: (dataUrl: string) => void;
|
|
14
|
+
onRefresh?: () => Promise<void> | void;
|
|
15
|
+
};
|
|
16
|
+
export declare const SignaturePad: <TFormValues extends FieldValues>({ form, name, label, info, required, width, height, readOnly, disabled, className, onChange, onRefresh, }: SignaturePadProps<TFormValues>) => import("react").JSX.Element;
|
|
17
|
+
export {};
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { RichTextEditor } from './RichTextEditor';
|
|
2
|
+
export { CodeEditor } from './CodeEditor';
|
|
3
|
+
/**
|
|
4
|
+
* @deprecated Legacy map input. Use `components/maps/forms/LocationPicker` or `SmartMapInput`.
|
|
5
|
+
*/
|
|
6
|
+
export { MapPicker } from './MapPicker';
|
|
7
|
+
export { codeEditorClassName } from './codeEditorClassName';
|
|
8
|
+
export type { CodeEditorLanguage, MapPoint } from './types';
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { default as L } from 'leaflet';
|
|
2
|
+
/** Marcador sin assets PNG — evita roturas con bundlers (Vite/webpack). */
|
|
3
|
+
export declare const mapPickerMarkerIcon: L.DivIcon;
|
|
4
|
+
export declare const DEFAULT_MAP_CENTER: {
|
|
5
|
+
readonly lat: "-12.0464";
|
|
6
|
+
readonly lng: "-77.0428";
|
|
7
|
+
};
|
|
8
|
+
export declare const parseMapCoordinate: (value: string, fallback: number) => number;
|
|
9
|
+
export declare const formatMapCoordinate: (value: number) => string;
|
|
10
|
+
/** Opciones recomendadas para getCurrentPosition (GPS / WiFi, sin caché). */
|
|
11
|
+
export declare const GEOLOCATION_OPTIONS: PositionOptions;
|
|
12
|
+
/** Por encima de esto mostramos aviso de ubicación aproximada. */
|
|
13
|
+
export declare const LOW_ACCURACY_THRESHOLD_M = 1000;
|
|
14
|
+
export declare const formatGeolocationAccuracyHint: (accuracyMeters: number) => string | null;
|
|
15
|
+
export declare const geolocationErrorMessage: (code: number) => string;
|
|
16
|
+
export declare const toMapPoint: (value: unknown) => {
|
|
17
|
+
lat: string;
|
|
18
|
+
lng: string;
|
|
19
|
+
};
|