bool isValidInternalNavigationPath(String path) { if (path.isEmpty || !path.startsWith('/')) { return false; } return !path.startsWith('//') && !path.contains('://') && !path.contains('?') && !path.contains('#') && !path.contains(':'); } String buildUiSchemaNavigationTarget({ required String path, Map? params, }) { final baseUri = Uri.parse(path); final queryParams = {}; if (params != null) { for (final entry in params.entries) { final value = entry.value; if (value is String && value.isNotEmpty) { queryParams[entry.key] = value; } else if (value is num || value is bool) { queryParams[entry.key] = value.toString(); } } } final mergedQueryParams = {...baseUri.queryParameters, ...queryParams}; final targetUri = baseUri.replace( queryParameters: mergedQueryParams.isEmpty ? null : mergedQueryParams, ); return targetUri.toString(); }