@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.
Files changed (303) hide show
  1. package/README.md +116 -0
  2. package/dist/sf-ui.css +2 -0
  3. package/dist/sf-ui.js +13228 -0
  4. package/dist/sf-ui.js.map +1 -0
  5. package/dist/sf-ui.umd.cjs +21 -0
  6. package/dist/sf-ui.umd.cjs.map +1 -0
  7. package/dist/theme/dark.css +156 -0
  8. package/dist/theme/erp.css +84 -0
  9. package/dist/theme/sark.css +117 -0
  10. package/dist/theme/sf-tokens.css +474 -0
  11. package/dist/types/src/adapters/maps/google/index.d.ts +18 -0
  12. package/dist/types/src/adapters/maps/index.d.ts +2 -0
  13. package/dist/types/src/adapters/maps/leaflet/index.d.ts +10 -0
  14. package/dist/types/src/components/advanced-inputs/CodeEditor.d.ts +20 -0
  15. package/dist/types/src/components/advanced-inputs/MapFlyTo.d.ts +9 -0
  16. package/dist/types/src/components/advanced-inputs/MapGeocoderBar.d.ts +8 -0
  17. package/dist/types/src/components/advanced-inputs/MapPicker.d.ts +22 -0
  18. package/dist/types/src/components/advanced-inputs/MapPickerMap.d.ts +10 -0
  19. package/dist/types/src/components/advanced-inputs/PhotoInput.d.ts +18 -0
  20. package/dist/types/src/components/advanced-inputs/RichTextEditor.d.ts +16 -0
  21. package/dist/types/src/components/advanced-inputs/SignaturePad.d.ts +17 -0
  22. package/dist/types/src/components/advanced-inputs/codeEditorClassName.d.ts +7 -0
  23. package/dist/types/src/components/advanced-inputs/codeEditorExtensions.d.ts +3 -0
  24. package/dist/types/src/components/advanced-inputs/index.d.ts +8 -0
  25. package/dist/types/src/components/advanced-inputs/mapPickerUtils.d.ts +19 -0
  26. package/dist/types/src/components/advanced-inputs/types.d.ts +5 -0
  27. package/dist/types/src/components/buttons/ActionButton.d.ts +11 -0
  28. package/dist/types/src/components/buttons/Button.d.ts +12 -0
  29. package/dist/types/src/components/buttons/ButtonGroup.d.ts +7 -0
  30. package/dist/types/src/components/buttons/FormActions.d.ts +12 -0
  31. package/dist/types/src/components/buttons/RowActions.d.ts +10 -0
  32. package/dist/types/src/components/buttons/ToolbarButton.d.ts +10 -0
  33. package/dist/types/src/components/buttons/buttonClassName.d.ts +9 -0
  34. package/dist/types/src/components/buttons/index.d.ts +9 -0
  35. package/dist/types/src/components/cards/Badge.d.ts +11 -0
  36. package/dist/types/src/components/cards/EntityCard.d.ts +28 -0
  37. package/dist/types/src/components/cards/KPICard.d.ts +22 -0
  38. package/dist/types/src/components/cards/MetricBar.d.ts +13 -0
  39. package/dist/types/src/components/cards/ModuleCard.d.ts +34 -0
  40. package/dist/types/src/components/cards/RecommendationCard.d.ts +13 -0
  41. package/dist/types/src/components/cards/badgeClassName.d.ts +8 -0
  42. package/dist/types/src/components/cards/index.d.ts +12 -0
  43. package/dist/types/src/components/cards/types.d.ts +16 -0
  44. package/dist/types/src/components/charts/Chart.d.ts +3 -0
  45. package/dist/types/src/components/charts/Sparkline.d.ts +2 -0
  46. package/dist/types/src/components/charts/chartUtils.d.ts +14 -0
  47. package/dist/types/src/components/charts/index.d.ts +5 -0
  48. package/dist/types/src/components/charts/types.d.ts +32 -0
  49. package/dist/types/src/components/dashboard/Calendar.d.ts +10 -0
  50. package/dist/types/src/components/dashboard/DashboardCard.d.ts +43 -0
  51. package/dist/types/src/components/dashboard/DonutGauge.d.ts +25 -0
  52. package/dist/types/src/components/dashboard/EventLog.d.ts +37 -0
  53. package/dist/types/src/components/dashboard/Stepper.d.ts +14 -0
  54. package/dist/types/src/components/dashboard/calendarUtils.d.ts +5 -0
  55. package/dist/types/src/components/dashboard/index.d.ts +11 -0
  56. package/dist/types/src/components/dashboard/types.d.ts +39 -0
  57. package/dist/types/src/components/display/AuditTimeline.d.ts +20 -0
  58. package/dist/types/src/components/display/Avatar.d.ts +22 -0
  59. package/dist/types/src/components/display/Carousel.d.ts +10 -0
  60. package/dist/types/src/components/display/LiveChip.d.ts +6 -0
  61. package/dist/types/src/components/display/LiveStatusBar.d.ts +23 -0
  62. package/dist/types/src/components/display/PassengerBoardCard.d.ts +22 -0
  63. package/dist/types/src/components/display/RecordList.d.ts +26 -0
  64. package/dist/types/src/components/display/Timeline.d.ts +17 -0
  65. package/dist/types/src/components/display/index.d.ts +16 -0
  66. package/dist/types/src/components/document-inputs/CurrencyInput.d.ts +21 -0
  67. package/dist/types/src/components/document-inputs/DniInput.d.ts +17 -0
  68. package/dist/types/src/components/document-inputs/DocumentInputs.fuzz.test.d.ts +1 -0
  69. package/dist/types/src/components/document-inputs/OtpInput.d.ts +15 -0
  70. package/dist/types/src/components/document-inputs/PhoneInput.d.ts +18 -0
  71. package/dist/types/src/components/document-inputs/RucInput.d.ts +17 -0
  72. package/dist/types/src/components/document-inputs/documentUtils.d.ts +11 -0
  73. package/dist/types/src/components/document-inputs/index.d.ts +7 -0
  74. package/dist/types/src/components/feedback/AccessDenied.d.ts +8 -0
  75. package/dist/types/src/components/feedback/Alert.d.ts +13 -0
  76. package/dist/types/src/components/feedback/EmptyState.d.ts +9 -0
  77. package/dist/types/src/components/feedback/ErrorView.d.ts +8 -0
  78. package/dist/types/src/components/feedback/LoadingView.d.ts +5 -0
  79. package/dist/types/src/components/feedback/RetryBlock.d.ts +11 -0
  80. package/dist/types/src/components/feedback/Skeleton.d.ts +9 -0
  81. package/dist/types/src/components/feedback/Spinner.d.ts +6 -0
  82. package/dist/types/src/components/feedback/Toast.d.ts +27 -0
  83. package/dist/types/src/components/feedback/index.d.ts +13 -0
  84. package/dist/types/src/components/icons/SyncIcon.d.ts +4 -0
  85. package/dist/types/src/components/icons/index.d.ts +2 -0
  86. package/dist/types/src/components/inputs/AsyncCardSelect.d.ts +17 -0
  87. package/dist/types/src/components/inputs/AsyncSearchSelect.d.ts +20 -0
  88. package/dist/types/src/components/inputs/AsyncSearchTableSelect.d.ts +21 -0
  89. package/dist/types/src/components/inputs/BooleanCheckbox.d.ts +14 -0
  90. package/dist/types/src/components/inputs/CardSelect.d.ts +18 -0
  91. package/dist/types/src/components/inputs/Checkbox.d.ts +16 -0
  92. package/dist/types/src/components/inputs/CheckboxGroup.d.ts +18 -0
  93. package/dist/types/src/components/inputs/DateInput.d.ts +20 -0
  94. package/dist/types/src/components/inputs/DatePicker.d.ts +19 -0
  95. package/dist/types/src/components/inputs/DisplayField.d.ts +15 -0
  96. package/dist/types/src/components/inputs/FieldLayout.d.ts +13 -0
  97. package/dist/types/src/components/inputs/FileInput.d.ts +21 -0
  98. package/dist/types/src/components/inputs/FileInput.security.test.d.ts +1 -0
  99. package/dist/types/src/components/inputs/Input.d.ts +21 -0
  100. package/dist/types/src/components/inputs/NumberInput.d.ts +21 -0
  101. package/dist/types/src/components/inputs/PasswordInput.d.ts +17 -0
  102. package/dist/types/src/components/inputs/RadioGroup.d.ts +18 -0
  103. package/dist/types/src/components/inputs/SearchSelect.d.ts +24 -0
  104. package/dist/types/src/components/inputs/SearchTableSelect.d.ts +22 -0
  105. package/dist/types/src/components/inputs/Select.d.ts +18 -0
  106. package/dist/types/src/components/inputs/SelectOption.d.ts +4 -0
  107. package/dist/types/src/components/inputs/SmartDateInput.d.ts +35 -0
  108. package/dist/types/src/components/inputs/SmartDateInput.test.d.ts +1 -0
  109. package/dist/types/src/components/inputs/SmartInput.d.ts +84 -0
  110. package/dist/types/src/components/inputs/SmartInput.test.d.ts +1 -0
  111. package/dist/types/src/components/inputs/SmartSelect.d.ts +77 -0
  112. package/dist/types/src/components/inputs/SmartSelect.test.d.ts +1 -0
  113. package/dist/types/src/components/inputs/TextArea.d.ts +19 -0
  114. package/dist/types/src/components/inputs/Toggle.d.ts +18 -0
  115. package/dist/types/src/components/inputs/Transfer.d.ts +10 -0
  116. package/dist/types/src/components/inputs/TreeSelect.d.ts +21 -0
  117. package/dist/types/src/components/inputs/YesNoSelect.d.ts +17 -0
  118. package/dist/types/src/components/inputs/fieldClassName.d.ts +8 -0
  119. package/dist/types/src/components/inputs/index.d.ts +37 -0
  120. package/dist/types/src/components/inputs/inputFocusTransition.d.ts +2 -0
  121. package/dist/types/src/components/inputs/passwordStrength.d.ts +7 -0
  122. package/dist/types/src/components/inputs/textareaClassName.d.ts +7 -0
  123. package/dist/types/src/components/inputs/treeSelectUtils.d.ts +9 -0
  124. package/dist/types/src/components/inputs/types-form.d.ts +12 -0
  125. package/dist/types/src/components/inputs/useAsyncOptions.d.ts +15 -0
  126. package/dist/types/src/components/interactive-inputs/CardRadioGroup.d.ts +15 -0
  127. package/dist/types/src/components/interactive-inputs/ColorInput.d.ts +15 -0
  128. package/dist/types/src/components/interactive-inputs/KeyValueInput.d.ts +16 -0
  129. package/dist/types/src/components/interactive-inputs/NumberStepper.d.ts +17 -0
  130. package/dist/types/src/components/interactive-inputs/ProgressBar.d.ts +15 -0
  131. package/dist/types/src/components/interactive-inputs/ProgressBarReadonly.d.ts +15 -0
  132. package/dist/types/src/components/interactive-inputs/RangeSliderInput.d.ts +20 -0
  133. package/dist/types/src/components/interactive-inputs/RatingInput.d.ts +16 -0
  134. package/dist/types/src/components/interactive-inputs/SliderInput.d.ts +19 -0
  135. package/dist/types/src/components/interactive-inputs/SortableList.d.ts +12 -0
  136. package/dist/types/src/components/interactive-inputs/TagsInput.d.ts +16 -0
  137. package/dist/types/src/components/interactive-inputs/index.d.ts +24 -0
  138. package/dist/types/src/components/interactive-inputs/interactiveUtils.d.ts +14 -0
  139. package/dist/types/src/components/interactive-inputs/types.d.ts +8 -0
  140. package/dist/types/src/components/layout/Accordion.d.ts +17 -0
  141. package/dist/types/src/components/layout/AppShell.d.ts +100 -0
  142. package/dist/types/src/components/layout/AppShell.test.d.ts +1 -0
  143. package/dist/types/src/components/layout/Breadcrumb.d.ts +14 -0
  144. package/dist/types/src/components/layout/DateWeekStrip.d.ts +12 -0
  145. package/dist/types/src/components/layout/FilterBar.d.ts +54 -0
  146. package/dist/types/src/components/layout/FormWizard.d.ts +11 -0
  147. package/dist/types/src/components/layout/HeightProvider.d.ts +7 -0
  148. package/dist/types/src/components/layout/ItineraryEditor.d.ts +20 -0
  149. package/dist/types/src/components/layout/LiveRouteBoard.d.ts +50 -0
  150. package/dist/types/src/components/layout/MaestroLayout.d.ts +15 -0
  151. package/dist/types/src/components/layout/MasterDetailLayout.d.ts +21 -0
  152. package/dist/types/src/components/layout/PageContainer.d.ts +8 -0
  153. package/dist/types/src/components/layout/PageHeader.d.ts +13 -0
  154. package/dist/types/src/components/layout/ScrollArea.d.ts +9 -0
  155. package/dist/types/src/components/layout/Separator.d.ts +6 -0
  156. package/dist/types/src/components/layout/SidePanel.d.ts +15 -0
  157. package/dist/types/src/components/layout/SidePanelContainer.d.ts +21 -0
  158. package/dist/types/src/components/layout/TablePageLayout.d.ts +9 -0
  159. package/dist/types/src/components/layout/Tabs.d.ts +17 -0
  160. package/dist/types/src/components/layout/UnitSelector.d.ts +14 -0
  161. package/dist/types/src/components/layout/Visibility.d.ts +10 -0
  162. package/dist/types/src/components/layout/WeekdayToggleStrip.d.ts +12 -0
  163. package/dist/types/src/components/layout/flotaLayout.test.d.ts +1 -0
  164. package/dist/types/src/components/layout/index.d.ts +40 -0
  165. package/dist/types/src/components/layout/transportApi.test.d.ts +1 -0
  166. package/dist/types/src/components/layout/useFormWizard.d.ts +40 -0
  167. package/dist/types/src/components/maps/base/MapFrame.d.ts +8 -0
  168. package/dist/types/src/components/maps/base/MapStatus.d.ts +5 -0
  169. package/dist/types/src/components/maps/base/index.d.ts +4 -0
  170. package/dist/types/src/components/maps/forms/AddressSearchInput.d.ts +16 -0
  171. package/dist/types/src/components/maps/forms/AreaInput.d.ts +7 -0
  172. package/dist/types/src/components/maps/forms/CoordinatesInput.d.ts +6 -0
  173. package/dist/types/src/components/maps/forms/LocationPicker.d.ts +16 -0
  174. package/dist/types/src/components/maps/forms/LocationPicker.test.d.ts +1 -0
  175. package/dist/types/src/components/maps/forms/RouteInput.d.ts +7 -0
  176. package/dist/types/src/components/maps/forms/ShapeInput.d.ts +19 -0
  177. package/dist/types/src/components/maps/forms/ShapeInput.test.d.ts +1 -0
  178. package/dist/types/src/components/maps/forms/SmartMapInput.d.ts +39 -0
  179. package/dist/types/src/components/maps/forms/SmartMapInput.test.d.ts +1 -0
  180. package/dist/types/src/components/maps/forms/index.d.ts +12 -0
  181. package/dist/types/src/components/maps/index.d.ts +3 -0
  182. package/dist/types/src/components/maps/renderers/google/GoogleMapRenderer.d.ts +6 -0
  183. package/dist/types/src/components/maps/renderers/google/index.d.ts +1 -0
  184. package/dist/types/src/components/maps/renderers/index.d.ts +2 -0
  185. package/dist/types/src/components/maps/renderers/leaflet/LeafletMapRenderer.d.ts +7 -0
  186. package/dist/types/src/components/maps/renderers/leaflet/index.d.ts +1 -0
  187. package/dist/types/src/components/maps/views/MapView.d.ts +9 -0
  188. package/dist/types/src/components/maps/views/index.d.ts +2 -0
  189. package/dist/types/src/components/media-inputs/FileDropInput.d.ts +21 -0
  190. package/dist/types/src/components/media-inputs/MultiPhotoInput.d.ts +20 -0
  191. package/dist/types/src/components/media-inputs/MultiPhotoInput.security.test.d.ts +1 -0
  192. package/dist/types/src/components/media-inputs/PhotoCropEditor.d.ts +9 -0
  193. package/dist/types/src/components/media-inputs/PhotoCropInput.d.ts +19 -0
  194. package/dist/types/src/components/media-inputs/PhotoInput.d.ts +1 -0
  195. package/dist/types/src/components/media-inputs/SignaturePad.d.ts +1 -0
  196. package/dist/types/src/components/media-inputs/SmartMediaInput.d.ts +43 -0
  197. package/dist/types/src/components/media-inputs/SmartMediaInput.test.d.ts +1 -0
  198. package/dist/types/src/components/media-inputs/cropImageFromArea.d.ts +7 -0
  199. package/dist/types/src/components/media-inputs/index.d.ts +13 -0
  200. package/dist/types/src/components/media-inputs/mediaUtils.d.ts +9 -0
  201. package/dist/types/src/components/media-inputs/types.d.ts +6 -0
  202. package/dist/types/src/components/overlays/CommandPalette.d.ts +17 -0
  203. package/dist/types/src/components/overlays/ConfirmDialog.d.ts +14 -0
  204. package/dist/types/src/components/overlays/ContextMenu.d.ts +15 -0
  205. package/dist/types/src/components/overlays/Drawer.d.ts +23 -0
  206. package/dist/types/src/components/overlays/DropdownMenu.d.ts +21 -0
  207. package/dist/types/src/components/overlays/MessageDialog.d.ts +11 -0
  208. package/dist/types/src/components/overlays/Modal.d.ts +31 -0
  209. package/dist/types/src/components/overlays/NotificationBell.d.ts +12 -0
  210. package/dist/types/src/components/overlays/OptionItem.d.ts +11 -0
  211. package/dist/types/src/components/overlays/Popover.d.ts +18 -0
  212. package/dist/types/src/components/overlays/ProductTour.d.ts +15 -0
  213. package/dist/types/src/components/overlays/QRView.d.ts +9 -0
  214. package/dist/types/src/components/overlays/TabMenuOption.d.ts +9 -0
  215. package/dist/types/src/components/overlays/Tooltip.d.ts +10 -0
  216. package/dist/types/src/components/overlays/index.d.ts +27 -0
  217. package/dist/types/src/components/range-inputs/DateRangeInput.d.ts +19 -0
  218. package/dist/types/src/components/range-inputs/DateRangeUtcInput.d.ts +3 -0
  219. package/dist/types/src/components/range-inputs/TimeRangeInput.d.ts +18 -0
  220. package/dist/types/src/components/range-inputs/index.d.ts +8 -0
  221. package/dist/types/src/components/range-inputs/rangeUtils.d.ts +8 -0
  222. package/dist/types/src/components/range-inputs/types.d.ts +10 -0
  223. package/dist/types/src/components/table/ActiveFiltersBar.d.ts +10 -0
  224. package/dist/types/src/components/table/AsyncCustomTable.d.ts +13 -0
  225. package/dist/types/src/components/table/CustomTable.d.ts +83 -0
  226. package/dist/types/src/components/table/EditableDataGrid.d.ts +15 -0
  227. package/dist/types/src/components/table/EditableDataGrid.test.d.ts +1 -0
  228. package/dist/types/src/components/table/ExpandableTableSection.d.ts +26 -0
  229. package/dist/types/src/components/table/PaginationRangeInput.d.ts +14 -0
  230. package/dist/types/src/components/table/TableColumnSettings.d.ts +13 -0
  231. package/dist/types/src/components/table/TableFiltersPanel.d.ts +17 -0
  232. package/dist/types/src/components/table/TableSortingPanel.d.ts +16 -0
  233. package/dist/types/src/components/table/activeFilterUtils.d.ts +9 -0
  234. package/dist/types/src/components/table/asyncStateStore.d.ts +6 -0
  235. package/dist/types/src/components/table/customTableController.d.ts +51 -0
  236. package/dist/types/src/components/table/index.d.ts +26 -0
  237. package/dist/types/src/components/table/tableFilters.d.ts +21 -0
  238. package/dist/types/src/components/table/useTableColumnSettings.d.ts +29 -0
  239. package/dist/types/src/components/visualization/NetworkLegend.d.ts +8 -0
  240. package/dist/types/src/components/visualization/NetworkMap.d.ts +19 -0
  241. package/dist/types/src/components/visualization/OrgTree.d.ts +20 -0
  242. package/dist/types/src/components/visualization/index.d.ts +9 -0
  243. package/dist/types/src/components/visualization/networkMapUtils.d.ts +32 -0
  244. package/dist/types/src/components/visualization/orgTreeUtils.d.ts +6 -0
  245. package/dist/types/src/components/visualization/types.d.ts +38 -0
  246. package/dist/types/src/constants/index.d.ts +1 -0
  247. package/dist/types/src/constants/maps/index.d.ts +8 -0
  248. package/dist/types/src/contracts/maps/index.d.ts +27 -0
  249. package/dist/types/src/engines/maps/google/googleMapEngine.d.ts +3 -0
  250. package/dist/types/src/engines/maps/google/index.d.ts +1 -0
  251. package/dist/types/src/engines/maps/index.d.ts +2 -0
  252. package/dist/types/src/engines/maps/leaflet/index.d.ts +1 -0
  253. package/dist/types/src/engines/maps/leaflet/leafletMapEngine.d.ts +3 -0
  254. package/dist/types/src/hooks/index.d.ts +11 -0
  255. package/dist/types/src/hooks/maps/index.d.ts +3 -0
  256. package/dist/types/src/hooks/maps/useAddressSearch.d.ts +7 -0
  257. package/dist/types/src/hooks/maps/useAddressSearch.test.d.ts +1 -0
  258. package/dist/types/src/hooks/maps/useMapEngine.d.ts +5 -0
  259. package/dist/types/src/hooks/maps/useMapsConfig.d.ts +1 -0
  260. package/dist/types/src/hooks/useArrayPaginator.d.ts +21 -0
  261. package/dist/types/src/hooks/useClickAway.d.ts +2 -0
  262. package/dist/types/src/hooks/useCustomForm.d.ts +26 -0
  263. package/dist/types/src/hooks/useFilterData.d.ts +10 -0
  264. package/dist/types/src/hooks/useIsClient.d.ts +2 -0
  265. package/dist/types/src/hooks/useMaestroFilter.d.ts +15 -0
  266. package/dist/types/src/hooks/useMaestroFilter.test.d.ts +1 -0
  267. package/dist/types/src/hooks/useQueryStringState.d.ts +2 -0
  268. package/dist/types/src/hooks/useStoredState.d.ts +2 -0
  269. package/dist/types/src/index.d.ts +24 -0
  270. package/dist/types/src/performance/catalogPhases.performance.test.d.ts +1 -0
  271. package/dist/types/src/performance/componentRender.performance.test.d.ts +1 -0
  272. package/dist/types/src/providers/SfProvider.d.ts +21 -0
  273. package/dist/types/src/providers/SfProvider.maps.test.d.ts +1 -0
  274. package/dist/types/src/providers/index.d.ts +2 -0
  275. package/dist/types/src/services/maps/distance/basicDistanceService.d.ts +2 -0
  276. package/dist/types/src/services/maps/distance/basicDistanceService.test.d.ts +1 -0
  277. package/dist/types/src/services/maps/distance/index.d.ts +1 -0
  278. package/dist/types/src/services/maps/geocoding/googleGeocodingService.d.ts +3 -0
  279. package/dist/types/src/services/maps/geocoding/index.d.ts +2 -0
  280. package/dist/types/src/services/maps/geocoding/nominatimGeocodingService.d.ts +2 -0
  281. package/dist/types/src/services/maps/googleMapsLoader.d.ts +66 -0
  282. package/dist/types/src/services/maps/index.d.ts +5 -0
  283. package/dist/types/src/services/maps/places/index.d.ts +1 -0
  284. package/dist/types/src/services/maps/places/mapsPlacesService.d.ts +2 -0
  285. package/dist/types/src/services/maps/routing/basicRouteService.d.ts +2 -0
  286. package/dist/types/src/services/maps/routing/basicRouteService.test.d.ts +1 -0
  287. package/dist/types/src/services/maps/routing/index.d.ts +1 -0
  288. package/dist/types/src/types/maps/index.d.ts +155 -0
  289. package/dist/types/src/utils/exportTableCsv.d.ts +11 -0
  290. package/dist/types/src/utils/exportTableXlsx.d.ts +5 -0
  291. package/dist/types/src/utils/index.d.ts +9 -0
  292. package/dist/types/src/utils/maps/geocoder.d.ts +8 -0
  293. package/dist/types/src/utils/maps/index.d.ts +10 -0
  294. package/dist/types/src/utils/maps/index.test.d.ts +1 -0
  295. package/dist/types/src/utils/queryParams.d.ts +3 -0
  296. package/dist/types/src/utils/resolveCssVar.d.ts +2 -0
  297. package/dist/types/src/utils/sanitizeRichHtml.d.ts +1 -0
  298. package/dist/types/src/utils/sanitizeRichHtml.test.d.ts +1 -0
  299. package/dist/types/src/utils/spreadsheetSanitizer.d.ts +1 -0
  300. package/dist/types/src/utils/spreadsheetSanitizer.test.d.ts +1 -0
  301. package/dist/types/src/utils/toStringArray.d.ts +1 -0
  302. package/dist/types/src/utils/validators.d.ts +52 -0
  303. 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,2 @@
1
+ export * from './google';
2
+ export * from './leaflet';
@@ -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,9 @@
1
+ type MapTarget = {
2
+ lat: number;
3
+ lng: number;
4
+ };
5
+ export declare const MapFlyTo: ({ target, zoom }: {
6
+ target: MapTarget | null;
7
+ zoom?: number;
8
+ }) => null;
9
+ 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,7 @@
1
+ export declare const codeEditorClassName: ({ small, error, className, }: {
2
+ small?: boolean;
3
+ error?: boolean;
4
+ className?: string;
5
+ readOnly?: boolean;
6
+ disabled?: boolean;
7
+ }) => string;
@@ -0,0 +1,3 @@
1
+ import { Extension } from '@codemirror/state';
2
+ import { CodeEditorLanguage } from './types';
3
+ export declare const codeEditorLanguageExtension: (language: CodeEditorLanguage) => Extension[];
@@ -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
+ };