@sakaniui/react 0.10.2 → 0.11.0

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.
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "schemaVersion": 6,
3
3
  "name": "@sakaniui/react",
4
- "version": "0.10.2",
4
+ "version": "0.11.0",
5
5
  "description": "Machine-readable contract of the SakaniUI React library, generated from its TypeScript source.",
6
6
  "docs": "https://www.sakaniui.com",
7
7
  "guide": "https://www.sakaniui.com/llms-full.txt",
@@ -24,7 +24,7 @@
24
24
  "@sakaniui/react/emoji": "Fluent Emoji (full colour): EmojiName, one module each (1594 emoji, 311 with skin tones)."
25
25
  },
26
26
  "conventions": {
27
- "version": "This manifest describes @sakaniui/react@0.10.2. Each component has `since`, the first release that contained it; a prop added later has its own `since`, and a value added later is listed in the prop's `valuesSince`. If the project has an older version installed, anything newer than that does not exist there.",
27
+ "version": "This manifest describes @sakaniui/react@0.11.0. Each component has `since`, the first release that contained it; a prop added later has its own `since`, and a value added later is listed in the prop's `valuesSince`. If the project has an older version installed, anything newer than that does not exist there.",
28
28
  "acceptsNativeProps": "Components forward native HTML attributes (className, style, aria-*, event handlers) to their root element unless a prop says otherwise; only the props that are specific to SakaniUI are listed here.",
29
29
  "accessibleName": "When `contract.requiresAccessibleName` is true, a required prop (aria-label, aria-labelledby or an alt text) is the only thing that names the control or image. Do not omit it.",
30
30
  "tokens": "Use only the token names listed under `tokens`. Colour tokens follow the theme (the `.dark` class flips them); do not hard-code colours.",
@@ -459,9 +459,9 @@
459
459
  }
460
460
  },
461
461
  "counts": {
462
- "components": 127,
462
+ "components": 134,
463
463
  "blocks": 42,
464
- "utilities": 7
464
+ "utilities": 8
465
465
  },
466
466
  "components": [
467
467
  {
@@ -4015,6 +4015,1585 @@
4015
4015
  "since": "0.3.0",
4016
4016
  "example": "import { LocationDot } from '@sakaniui/react';\n\n<LocationDot location=\"Location\" />"
4017
4017
  },
4018
+ {
4019
+ "name": "Map",
4020
+ "kind": "component",
4021
+ "category": "Composite",
4022
+ "import": "@sakaniui/react",
4023
+ "summary": "Interactive tile map with pan, zoom and controls. Place MapMarker and MapPopup children by [latitude, longitude]; `tileUrl` swaps the tile provider (OpenStreetMap by default).",
4024
+ "props": [
4025
+ {
4026
+ "name": "center",
4027
+ "type": "LatLng",
4028
+ "required": false,
4029
+ "default": "[51.505, -0.09]",
4030
+ "description": "Where the map starts, as [latitude, longitude]. Changing it later flies the map there.",
4031
+ "shape": {
4032
+ "type": "LatLng",
4033
+ "collection": "object",
4034
+ "fields": [
4035
+ {
4036
+ "name": "0",
4037
+ "type": "number",
4038
+ "required": true
4039
+ },
4040
+ {
4041
+ "name": "1",
4042
+ "type": "number",
4043
+ "required": true
4044
+ },
4045
+ {
4046
+ "name": "length",
4047
+ "type": "2",
4048
+ "required": true
4049
+ },
4050
+ {
4051
+ "name": "toString",
4052
+ "type": "() => string",
4053
+ "required": true,
4054
+ "description": "Returns a string representation of an array."
4055
+ },
4056
+ {
4057
+ "name": "toLocaleString",
4058
+ "type": "{ (): string; (locales: string | string[], options?: (NumberFormatOptions & DateTimeFormatOptions) | undefined): string; }",
4059
+ "required": true,
4060
+ "description": "Returns a string representation of an array. The elements are converted to string using their toLocaleString methods."
4061
+ },
4062
+ {
4063
+ "name": "pop",
4064
+ "type": "() => number",
4065
+ "required": true,
4066
+ "description": "Removes the last element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
4067
+ },
4068
+ {
4069
+ "name": "push",
4070
+ "type": "(...items: number[]) => number",
4071
+ "required": true,
4072
+ "description": "Appends new elements to the end of an array, and returns the new length of the array."
4073
+ },
4074
+ {
4075
+ "name": "concat",
4076
+ "type": "{ (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<number>)[]): number[]; }",
4077
+ "required": true,
4078
+ "description": "Combines two or more arrays. This method returns a new array without modifying any existing arrays."
4079
+ },
4080
+ {
4081
+ "name": "join",
4082
+ "type": "(separator?: string | undefined) => string",
4083
+ "required": true,
4084
+ "description": "Adds all the elements of an array into a string, separated by the specified separator string."
4085
+ },
4086
+ {
4087
+ "name": "reverse",
4088
+ "type": "() => number[]",
4089
+ "required": true,
4090
+ "description": "Reverses the elements in an array in place. This method mutates the array and returns a reference to the same array."
4091
+ },
4092
+ {
4093
+ "name": "shift",
4094
+ "type": "() => number",
4095
+ "required": true,
4096
+ "description": "Removes the first element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
4097
+ },
4098
+ {
4099
+ "name": "slice",
4100
+ "type": "(start?: number | undefined, end?: number | undefined) => number[]",
4101
+ "required": true,
4102
+ "description": "Returns a copy of a section of an array. For both start and end, a negative index can be used to indicate an offset from the end of the array. For example, -2 refers to the second to last element of the array."
4103
+ },
4104
+ {
4105
+ "name": "sort",
4106
+ "type": "(compareFn?: ((a: number, b: number) => number) | undefined) => LatLng",
4107
+ "required": true,
4108
+ "description": "Sorts an array in place. This method mutates the array and returns a reference to the same array."
4109
+ },
4110
+ {
4111
+ "name": "splice",
4112
+ "type": "{ (start: number, deleteCount?: number | undefined): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }",
4113
+ "required": true,
4114
+ "description": "Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements."
4115
+ },
4116
+ {
4117
+ "name": "unshift",
4118
+ "type": "(...items: number[]) => number",
4119
+ "required": true,
4120
+ "description": "Inserts new elements at the start of an array, and returns the new length of the array."
4121
+ },
4122
+ {
4123
+ "name": "indexOf",
4124
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
4125
+ "required": true,
4126
+ "description": "Returns the index of the first occurrence of a value in an array, or -1 if it is not present."
4127
+ },
4128
+ {
4129
+ "name": "lastIndexOf",
4130
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
4131
+ "required": true,
4132
+ "description": "Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present."
4133
+ },
4134
+ {
4135
+ "name": "every",
4136
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }",
4137
+ "required": true,
4138
+ "description": "Determines whether all the members of an array satisfy the specified test."
4139
+ },
4140
+ {
4141
+ "name": "some",
4142
+ "type": "(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean",
4143
+ "required": true,
4144
+ "description": "Determines whether the specified callback function returns true for any element of an array."
4145
+ },
4146
+ {
4147
+ "name": "forEach",
4148
+ "type": "(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void",
4149
+ "required": true,
4150
+ "description": "Performs the specified action for each element in an array."
4151
+ },
4152
+ {
4153
+ "name": "map",
4154
+ "type": "<U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]",
4155
+ "required": true,
4156
+ "description": "Calls a defined callback function on each element of an array, and returns an array that contains the results."
4157
+ },
4158
+ {
4159
+ "name": "filter",
4160
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }",
4161
+ "required": true,
4162
+ "description": "Returns the elements of an array that meet the condition specified in a callback function."
4163
+ },
4164
+ {
4165
+ "name": "reduce",
4166
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
4167
+ "required": true,
4168
+ "description": "Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
4169
+ },
4170
+ {
4171
+ "name": "reduceRight",
4172
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
4173
+ "required": true,
4174
+ "description": "Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
4175
+ },
4176
+ {
4177
+ "name": "find",
4178
+ "type": "{ <S extends number>(predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }",
4179
+ "required": true,
4180
+ "description": "Returns the value of the first element in the array where predicate is true, and undefined otherwise."
4181
+ },
4182
+ {
4183
+ "name": "findIndex",
4184
+ "type": "(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number",
4185
+ "required": true,
4186
+ "description": "Returns the index of the first element in the array where predicate is true, and -1 otherwise."
4187
+ },
4188
+ {
4189
+ "name": "fill",
4190
+ "type": "(value: number, start?: number | undefined, end?: number | undefined) => LatLng",
4191
+ "required": true,
4192
+ "description": "Changes all array elements from `start` to `end` index to a static `value` and returns the modified array"
4193
+ },
4194
+ {
4195
+ "name": "copyWithin",
4196
+ "type": "(target: number, start: number, end?: number | undefined) => LatLng",
4197
+ "required": true,
4198
+ "description": "Returns the this object after copying a section of the array identified by start and end to the same array starting at position target"
4199
+ },
4200
+ {
4201
+ "name": "entries",
4202
+ "type": "() => ArrayIterator<[number, number]>",
4203
+ "required": true,
4204
+ "description": "Returns an iterable of key, value pairs for every entry in the array"
4205
+ },
4206
+ {
4207
+ "name": "keys",
4208
+ "type": "() => ArrayIterator<number>",
4209
+ "required": true,
4210
+ "description": "Returns an iterable of keys in the array"
4211
+ },
4212
+ {
4213
+ "name": "values",
4214
+ "type": "() => ArrayIterator<number>",
4215
+ "required": true,
4216
+ "description": "Returns an iterable of values in the array"
4217
+ },
4218
+ {
4219
+ "name": "includes",
4220
+ "type": "(searchElement: number, fromIndex?: number | undefined) => boolean",
4221
+ "required": true,
4222
+ "description": "Determines whether an array includes a certain element, returning true or false as appropriate."
4223
+ },
4224
+ {
4225
+ "name": "flatMap",
4226
+ "type": "<U, This = undefined>(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined) => U[]",
4227
+ "required": true,
4228
+ "description": "Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with depth 1."
4229
+ },
4230
+ {
4231
+ "name": "flat",
4232
+ "type": "<A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]",
4233
+ "required": true,
4234
+ "description": "Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth."
4235
+ },
4236
+ {
4237
+ "name": "at",
4238
+ "type": "(index: number) => number",
4239
+ "required": true,
4240
+ "description": "Returns the item located at the specified index."
4241
+ },
4242
+ {
4243
+ "name": "__@iterator@12750",
4244
+ "type": "() => ArrayIterator<number>",
4245
+ "required": true,
4246
+ "description": "Iterator"
4247
+ },
4248
+ {
4249
+ "name": "__@unscopables@12780",
4250
+ "type": "{ [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; }",
4251
+ "required": true,
4252
+ "description": "Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement."
4253
+ }
4254
+ ]
4255
+ }
4256
+ },
4257
+ {
4258
+ "name": "zoom",
4259
+ "type": "number",
4260
+ "required": false,
4261
+ "default": 12,
4262
+ "description": "Starting zoom, 0 (whole world) to maxZoom. Changing it later animates to it."
4263
+ },
4264
+ {
4265
+ "name": "minZoom",
4266
+ "type": "number",
4267
+ "required": false,
4268
+ "default": 2
4269
+ },
4270
+ {
4271
+ "name": "maxZoom",
4272
+ "type": "number",
4273
+ "required": false,
4274
+ "default": 18
4275
+ },
4276
+ {
4277
+ "name": "onViewChange",
4278
+ "type": "((view: MapView) => void)",
4279
+ "required": false,
4280
+ "description": "Called whenever the user pans or zooms."
4281
+ },
4282
+ {
4283
+ "name": "tileUrl",
4284
+ "type": "string",
4285
+ "required": false,
4286
+ "default": "https://tile.openstreetmap.org/{z}/{x}/{y}.png",
4287
+ "description": "Tile URL template with {z}, {x} and {y}. Defaults to OpenStreetMap."
4288
+ },
4289
+ {
4290
+ "name": "tileUrlDark",
4291
+ "type": "string",
4292
+ "required": false,
4293
+ "description": "Tiles to use in dark mode, from a provider that has a dark style. Without it the same tiles are darkened with `--map-tile-filter` (flat dark land, blue water, roads darker than the land)."
4294
+ },
4295
+ {
4296
+ "name": "theme",
4297
+ "type": "\"auto\" | \"dark\"",
4298
+ "required": false,
4299
+ "values": [
4300
+ "auto",
4301
+ "dark"
4302
+ ],
4303
+ "default": "auto",
4304
+ "description": "\"auto\" follows the surrounding theme (a `.dark` class on <html> or any ancestor)."
4305
+ },
4306
+ {
4307
+ "name": "attribution",
4308
+ "type": "ReactNode",
4309
+ "required": false,
4310
+ "description": "Attribution text required by the tile provider. Pass null to hide it (only if your provider allows)."
4311
+ },
4312
+ {
4313
+ "name": "controls",
4314
+ "type": "boolean",
4315
+ "required": false,
4316
+ "default": true,
4317
+ "description": "Show the zoom controls. Defaults to true."
4318
+ },
4319
+ {
4320
+ "name": "locate",
4321
+ "type": "boolean",
4322
+ "required": false,
4323
+ "default": false,
4324
+ "description": "Show the locate button (uses the browser's geolocation). Defaults to false."
4325
+ },
4326
+ {
4327
+ "name": "onLocate",
4328
+ "type": "((position: LatLng) => void)",
4329
+ "required": false,
4330
+ "description": "Called with the user's position after the locate button finds it."
4331
+ },
4332
+ {
4333
+ "name": "onLocateError",
4334
+ "type": "((error: GeolocationPositionError | Error) => void)",
4335
+ "required": false,
4336
+ "description": "Called when the locate button cannot find the user (permission denied, no signal, no support)."
4337
+ },
4338
+ {
4339
+ "name": "height",
4340
+ "type": "string | number",
4341
+ "required": false,
4342
+ "default": 400,
4343
+ "description": "Height in px or any CSS length. Defaults to 400."
4344
+ },
4345
+ {
4346
+ "name": "aria-label",
4347
+ "type": "string",
4348
+ "required": false,
4349
+ "default": "Map",
4350
+ "description": "Accessible name for the map region. Defaults to \"Map\"."
4351
+ },
4352
+ {
4353
+ "name": "className",
4354
+ "type": "string",
4355
+ "required": false
4356
+ },
4357
+ {
4358
+ "name": "children",
4359
+ "type": "ReactNode",
4360
+ "required": false,
4361
+ "description": "MapMarker and MapPopup elements."
4362
+ }
4363
+ ],
4364
+ "contract": {
4365
+ "requiredProps": [],
4366
+ "requiresAccessibleName": false
4367
+ },
4368
+ "since": "0.11.0",
4369
+ "example": "import { Map } from '@sakaniui/react';\n\n<Map />",
4370
+ "recipes": [
4371
+ {
4372
+ "title": "A live feed: markers that slide to each new position",
4373
+ "description": "Keep the positions in state, update them when the feed (WebSocket, server-sent events, polling) delivers, and give each MapMarker `glide` of about the interval between updates so it slides instead of jumping. A MapPopup that points at a moving marker needs the same `glide`.",
4374
+ "code": "import React from 'react';\nimport { Map, MapMarker, type LatLng } from '@sakaniui/react';\n\nexport const Example = () => {\n const [vehicles, setVehicles] = React.useState<{ id: string; position: LatLng }[]>([{ id: 'v1', position: [51.5, -0.09] }]);\n React.useEffect(() => {\n const socket = new WebSocket('wss://example.com/vehicles');\n socket.onmessage = (e) => setVehicles(JSON.parse(e.data));\n return () => socket.close();\n }, []);\n return (\n <Map center={[51.5, -0.09]} zoom={13} height={420}>\n {vehicles.map((v) => (\n <MapMarker key={v.id} variant=\"dot\" position={v.position} glide={1900} label={v.id} />\n ))}\n </Map>\n );\n};"
4375
+ },
4376
+ {
4377
+ "title": "Thousands of places: cluster them",
4378
+ "description": "Put the places in a MapClusterLayer instead of mapping them to MapMarkers yourself. Nearby places become a counted cluster that zooms in on click, and only what is in view is rendered. Key each marker returned from `renderPoint` by the point id.",
4379
+ "code": "import { Map, MapMarker, MapClusterLayer, type LatLng } from '@sakaniui/react';\n\nconst points: { id: number; position: LatLng }[] = [\n { id: 1, position: [51.5, -0.12] },\n { id: 2, position: [53.48, -2.24] },\n];\n\nexport const Example = () => (\n <Map center={[53, -1.8]} zoom={6} height={420}>\n <MapClusterLayer\n points={points}\n renderPoint={(p) => <MapMarker key={p.id} variant=\"dot\" position={p.position} label={`Place ${p.id}`} />}\n />\n </Map>\n);"
4380
+ }
4381
+ ],
4382
+ "aliases": [
4383
+ "map view",
4384
+ "interactive map",
4385
+ "street map",
4386
+ "location map",
4387
+ "leaflet",
4388
+ "mapbox",
4389
+ "google map",
4390
+ "google maps",
4391
+ "slippy map",
4392
+ "tile map"
4393
+ ]
4394
+ },
4395
+ {
4396
+ "name": "MapClusterLayer",
4397
+ "kind": "component",
4398
+ "category": "Composite",
4399
+ "import": "@sakaniui/react",
4400
+ "summary": "Draws thousands of places on a Map by grouping nearby ones into counted cluster markers (click to zoom in) and rendering only what is in view. `renderPoint` draws each single place.",
4401
+ "props": [
4402
+ {
4403
+ "name": "points",
4404
+ "type": "T[]",
4405
+ "required": true,
4406
+ "shape": {
4407
+ "type": "MapClusterPoint",
4408
+ "collection": "array",
4409
+ "fields": [
4410
+ {
4411
+ "name": "id",
4412
+ "type": "string | number",
4413
+ "required": true
4414
+ },
4415
+ {
4416
+ "name": "position",
4417
+ "type": "LatLng",
4418
+ "required": true
4419
+ }
4420
+ ]
4421
+ }
4422
+ },
4423
+ {
4424
+ "name": "renderPoint",
4425
+ "type": "(point: T) => ReactNode",
4426
+ "required": true,
4427
+ "description": "Draws one place that is not clustered, usually a <MapMarker>. Give it the point's `id` as its key."
4428
+ },
4429
+ {
4430
+ "name": "radius",
4431
+ "type": "number",
4432
+ "required": false,
4433
+ "default": 56,
4434
+ "description": "Grid size in px: larger groups more places together. Defaults to 56."
4435
+ },
4436
+ {
4437
+ "name": "clusterMaxZoom",
4438
+ "type": "number",
4439
+ "required": false,
4440
+ "default": 16,
4441
+ "description": "From this zoom up, nothing clusters. Defaults to 16."
4442
+ },
4443
+ {
4444
+ "name": "onClusterClick",
4445
+ "type": "((points: T[]) => void)",
4446
+ "required": false,
4447
+ "description": "Called after a cluster is clicked, with the places in it. The map zooms to them first."
4448
+ }
4449
+ ],
4450
+ "contract": {
4451
+ "requiredProps": [
4452
+ "points",
4453
+ "renderPoint"
4454
+ ],
4455
+ "requiresAccessibleName": false
4456
+ },
4457
+ "since": "0.11.0",
4458
+ "example": "import { MapClusterLayer } from '@sakaniui/react';\n\n<MapClusterLayer points={[{ id: \"item-1\", position: [1, 1] }]} renderPoint={() => {}} />",
4459
+ "aliases": [
4460
+ "marker clustering",
4461
+ "cluster markers",
4462
+ "supercluster",
4463
+ "many markers",
4464
+ "point clustering",
4465
+ "heatmap markers"
4466
+ ]
4467
+ },
4468
+ {
4469
+ "name": "MapControlButton",
4470
+ "kind": "component",
4471
+ "category": "Composite",
4472
+ "import": "@sakaniui/react",
4473
+ "summary": "A 32px icon button for a map overlay (the zoom and locate buttons Map shows). Needs an icon and an aria-label; has hover and disabled states.",
4474
+ "props": [
4475
+ {
4476
+ "name": "icon",
4477
+ "type": "IconComponent",
4478
+ "required": true,
4479
+ "description": "The icon, drawn at 16px."
4480
+ },
4481
+ {
4482
+ "name": "aria-label",
4483
+ "type": "string",
4484
+ "required": true,
4485
+ "description": "Accessible name; the button has no visible text."
4486
+ },
4487
+ {
4488
+ "name": "disabled",
4489
+ "type": "boolean",
4490
+ "required": false
4491
+ },
4492
+ {
4493
+ "name": "hovered",
4494
+ "type": "boolean",
4495
+ "required": false,
4496
+ "description": "Shows the hover appearance without a pointer (documentation and visual tests)."
4497
+ },
4498
+ {
4499
+ "name": "onClick",
4500
+ "type": "(() => void)",
4501
+ "required": false
4502
+ },
4503
+ {
4504
+ "name": "className",
4505
+ "type": "string",
4506
+ "required": false
4507
+ }
4508
+ ],
4509
+ "contract": {
4510
+ "requiredProps": [
4511
+ "icon",
4512
+ "aria-label"
4513
+ ],
4514
+ "requiresAccessibleName": true
4515
+ },
4516
+ "since": "0.11.0",
4517
+ "example": "import { MapControlButton } from '@sakaniui/react';\nimport { IconStar } from '@sakaniui/react/icons';\n\n<MapControlButton icon={IconStar} aria-label=\"Describe the action\" />",
4518
+ "aliases": [
4519
+ "map button",
4520
+ "zoom button",
4521
+ "map control"
4522
+ ]
4523
+ },
4524
+ {
4525
+ "name": "MapControls",
4526
+ "kind": "component",
4527
+ "category": "Composite",
4528
+ "import": "@sakaniui/react",
4529
+ "summary": "The zoom group and optional locate button a Map shows top-right. Map renders it itself; use it to build a custom overlay.",
4530
+ "props": [
4531
+ {
4532
+ "name": "onZoomIn",
4533
+ "type": "(() => void)",
4534
+ "required": false
4535
+ },
4536
+ {
4537
+ "name": "onZoomOut",
4538
+ "type": "(() => void)",
4539
+ "required": false
4540
+ },
4541
+ {
4542
+ "name": "zoomInDisabled",
4543
+ "type": "boolean",
4544
+ "required": false,
4545
+ "description": "Disables the zoom-in button, e.g. at the map's maximum zoom."
4546
+ },
4547
+ {
4548
+ "name": "zoomOutDisabled",
4549
+ "type": "boolean",
4550
+ "required": false
4551
+ },
4552
+ {
4553
+ "name": "zoom",
4554
+ "type": "boolean",
4555
+ "required": false,
4556
+ "default": true,
4557
+ "description": "Show the zoom group. Defaults to true."
4558
+ },
4559
+ {
4560
+ "name": "locate",
4561
+ "type": "boolean",
4562
+ "required": false,
4563
+ "default": false
4564
+ },
4565
+ {
4566
+ "name": "onLocate",
4567
+ "type": "(() => void)",
4568
+ "required": false
4569
+ },
4570
+ {
4571
+ "name": "className",
4572
+ "type": "string",
4573
+ "required": false
4574
+ }
4575
+ ],
4576
+ "contract": {
4577
+ "requiredProps": [],
4578
+ "requiresAccessibleName": false
4579
+ },
4580
+ "since": "0.11.0",
4581
+ "example": "import { MapControls } from '@sakaniui/react';\n\n<MapControls />",
4582
+ "aliases": [
4583
+ "zoom controls",
4584
+ "map zoom",
4585
+ "zoom in out",
4586
+ "locate button"
4587
+ ]
4588
+ },
4589
+ {
4590
+ "name": "MapGlobe",
4591
+ "kind": "component",
4592
+ "category": "Composite",
4593
+ "import": "@sakaniui/react",
4594
+ "summary": "A 3D dotted globe that spins and can be dragged. `variant` \"land\" dots the continents, \"ocean\" dots the sea; pass `markers` and `arcs` to show places and routes. Follows light and dark.",
4595
+ "props": [
4596
+ {
4597
+ "name": "variant",
4598
+ "type": "\"land\" | \"ocean\"",
4599
+ "required": false,
4600
+ "values": [
4601
+ "land",
4602
+ "ocean"
4603
+ ],
4604
+ "default": "land",
4605
+ "description": "Which part gets the bright dots. Defaults to \"land\"."
4606
+ },
4607
+ {
4608
+ "name": "center",
4609
+ "type": "LatLng",
4610
+ "required": false,
4611
+ "default": "[15, 90]",
4612
+ "description": "The place facing the viewer at first, as [latitude, longitude].",
4613
+ "shape": {
4614
+ "type": "LatLng",
4615
+ "collection": "object",
4616
+ "fields": [
4617
+ {
4618
+ "name": "0",
4619
+ "type": "number",
4620
+ "required": true
4621
+ },
4622
+ {
4623
+ "name": "1",
4624
+ "type": "number",
4625
+ "required": true
4626
+ },
4627
+ {
4628
+ "name": "length",
4629
+ "type": "2",
4630
+ "required": true
4631
+ },
4632
+ {
4633
+ "name": "toString",
4634
+ "type": "() => string",
4635
+ "required": true,
4636
+ "description": "Returns a string representation of an array."
4637
+ },
4638
+ {
4639
+ "name": "toLocaleString",
4640
+ "type": "{ (): string; (locales: string | string[], options?: (NumberFormatOptions & DateTimeFormatOptions) | undefined): string; }",
4641
+ "required": true,
4642
+ "description": "Returns a string representation of an array. The elements are converted to string using their toLocaleString methods."
4643
+ },
4644
+ {
4645
+ "name": "pop",
4646
+ "type": "() => number",
4647
+ "required": true,
4648
+ "description": "Removes the last element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
4649
+ },
4650
+ {
4651
+ "name": "push",
4652
+ "type": "(...items: number[]) => number",
4653
+ "required": true,
4654
+ "description": "Appends new elements to the end of an array, and returns the new length of the array."
4655
+ },
4656
+ {
4657
+ "name": "concat",
4658
+ "type": "{ (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<number>)[]): number[]; }",
4659
+ "required": true,
4660
+ "description": "Combines two or more arrays. This method returns a new array without modifying any existing arrays."
4661
+ },
4662
+ {
4663
+ "name": "join",
4664
+ "type": "(separator?: string | undefined) => string",
4665
+ "required": true,
4666
+ "description": "Adds all the elements of an array into a string, separated by the specified separator string."
4667
+ },
4668
+ {
4669
+ "name": "reverse",
4670
+ "type": "() => number[]",
4671
+ "required": true,
4672
+ "description": "Reverses the elements in an array in place. This method mutates the array and returns a reference to the same array."
4673
+ },
4674
+ {
4675
+ "name": "shift",
4676
+ "type": "() => number",
4677
+ "required": true,
4678
+ "description": "Removes the first element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
4679
+ },
4680
+ {
4681
+ "name": "slice",
4682
+ "type": "(start?: number | undefined, end?: number | undefined) => number[]",
4683
+ "required": true,
4684
+ "description": "Returns a copy of a section of an array. For both start and end, a negative index can be used to indicate an offset from the end of the array. For example, -2 refers to the second to last element of the array."
4685
+ },
4686
+ {
4687
+ "name": "sort",
4688
+ "type": "(compareFn?: ((a: number, b: number) => number) | undefined) => LatLng",
4689
+ "required": true,
4690
+ "description": "Sorts an array in place. This method mutates the array and returns a reference to the same array."
4691
+ },
4692
+ {
4693
+ "name": "splice",
4694
+ "type": "{ (start: number, deleteCount?: number | undefined): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }",
4695
+ "required": true,
4696
+ "description": "Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements."
4697
+ },
4698
+ {
4699
+ "name": "unshift",
4700
+ "type": "(...items: number[]) => number",
4701
+ "required": true,
4702
+ "description": "Inserts new elements at the start of an array, and returns the new length of the array."
4703
+ },
4704
+ {
4705
+ "name": "indexOf",
4706
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
4707
+ "required": true,
4708
+ "description": "Returns the index of the first occurrence of a value in an array, or -1 if it is not present."
4709
+ },
4710
+ {
4711
+ "name": "lastIndexOf",
4712
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
4713
+ "required": true,
4714
+ "description": "Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present."
4715
+ },
4716
+ {
4717
+ "name": "every",
4718
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }",
4719
+ "required": true,
4720
+ "description": "Determines whether all the members of an array satisfy the specified test."
4721
+ },
4722
+ {
4723
+ "name": "some",
4724
+ "type": "(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean",
4725
+ "required": true,
4726
+ "description": "Determines whether the specified callback function returns true for any element of an array."
4727
+ },
4728
+ {
4729
+ "name": "forEach",
4730
+ "type": "(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void",
4731
+ "required": true,
4732
+ "description": "Performs the specified action for each element in an array."
4733
+ },
4734
+ {
4735
+ "name": "map",
4736
+ "type": "<U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]",
4737
+ "required": true,
4738
+ "description": "Calls a defined callback function on each element of an array, and returns an array that contains the results."
4739
+ },
4740
+ {
4741
+ "name": "filter",
4742
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }",
4743
+ "required": true,
4744
+ "description": "Returns the elements of an array that meet the condition specified in a callback function."
4745
+ },
4746
+ {
4747
+ "name": "reduce",
4748
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
4749
+ "required": true,
4750
+ "description": "Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
4751
+ },
4752
+ {
4753
+ "name": "reduceRight",
4754
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
4755
+ "required": true,
4756
+ "description": "Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
4757
+ },
4758
+ {
4759
+ "name": "find",
4760
+ "type": "{ <S extends number>(predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }",
4761
+ "required": true,
4762
+ "description": "Returns the value of the first element in the array where predicate is true, and undefined otherwise."
4763
+ },
4764
+ {
4765
+ "name": "findIndex",
4766
+ "type": "(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number",
4767
+ "required": true,
4768
+ "description": "Returns the index of the first element in the array where predicate is true, and -1 otherwise."
4769
+ },
4770
+ {
4771
+ "name": "fill",
4772
+ "type": "(value: number, start?: number | undefined, end?: number | undefined) => LatLng",
4773
+ "required": true,
4774
+ "description": "Changes all array elements from `start` to `end` index to a static `value` and returns the modified array"
4775
+ },
4776
+ {
4777
+ "name": "copyWithin",
4778
+ "type": "(target: number, start: number, end?: number | undefined) => LatLng",
4779
+ "required": true,
4780
+ "description": "Returns the this object after copying a section of the array identified by start and end to the same array starting at position target"
4781
+ },
4782
+ {
4783
+ "name": "entries",
4784
+ "type": "() => ArrayIterator<[number, number]>",
4785
+ "required": true,
4786
+ "description": "Returns an iterable of key, value pairs for every entry in the array"
4787
+ },
4788
+ {
4789
+ "name": "keys",
4790
+ "type": "() => ArrayIterator<number>",
4791
+ "required": true,
4792
+ "description": "Returns an iterable of keys in the array"
4793
+ },
4794
+ {
4795
+ "name": "values",
4796
+ "type": "() => ArrayIterator<number>",
4797
+ "required": true,
4798
+ "description": "Returns an iterable of values in the array"
4799
+ },
4800
+ {
4801
+ "name": "includes",
4802
+ "type": "(searchElement: number, fromIndex?: number | undefined) => boolean",
4803
+ "required": true,
4804
+ "description": "Determines whether an array includes a certain element, returning true or false as appropriate."
4805
+ },
4806
+ {
4807
+ "name": "flatMap",
4808
+ "type": "<U, This = undefined>(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined) => U[]",
4809
+ "required": true,
4810
+ "description": "Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with depth 1."
4811
+ },
4812
+ {
4813
+ "name": "flat",
4814
+ "type": "<A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]",
4815
+ "required": true,
4816
+ "description": "Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth."
4817
+ },
4818
+ {
4819
+ "name": "at",
4820
+ "type": "(index: number) => number",
4821
+ "required": true,
4822
+ "description": "Returns the item located at the specified index."
4823
+ },
4824
+ {
4825
+ "name": "__@iterator@12750",
4826
+ "type": "() => ArrayIterator<number>",
4827
+ "required": true,
4828
+ "description": "Iterator"
4829
+ },
4830
+ {
4831
+ "name": "__@unscopables@12780",
4832
+ "type": "{ [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; }",
4833
+ "required": true,
4834
+ "description": "Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement."
4835
+ }
4836
+ ]
4837
+ }
4838
+ },
4839
+ {
4840
+ "name": "markers",
4841
+ "type": "MapGlobeMarker[]",
4842
+ "required": false,
4843
+ "default": "[]",
4844
+ "shape": {
4845
+ "type": "MapGlobeMarker",
4846
+ "collection": "array",
4847
+ "fields": [
4848
+ {
4849
+ "name": "position",
4850
+ "type": "LatLng",
4851
+ "required": true,
4852
+ "description": "[latitude, longitude]"
4853
+ },
4854
+ {
4855
+ "name": "active",
4856
+ "type": "boolean",
4857
+ "required": false,
4858
+ "description": "Draws a pulsing ring around it."
4859
+ },
4860
+ {
4861
+ "name": "selected",
4862
+ "type": "boolean",
4863
+ "required": false,
4864
+ "description": "The larger halo, for the marker the user picked."
4865
+ },
4866
+ {
4867
+ "name": "hovered",
4868
+ "type": "boolean",
4869
+ "required": false,
4870
+ "description": "Shows the hover appearance without a pointer (documentation and visual tests). Real hover works on its own."
4871
+ },
4872
+ {
4873
+ "name": "label",
4874
+ "type": "string",
4875
+ "required": false,
4876
+ "description": "Name shown in a small card above the marker while it is hovered or selected; also its accessible name."
4877
+ }
4878
+ ]
4879
+ }
4880
+ },
4881
+ {
4882
+ "name": "arcs",
4883
+ "type": "MapGlobeArc[]",
4884
+ "required": false,
4885
+ "default": "[]",
4886
+ "shape": {
4887
+ "type": "MapGlobeArc",
4888
+ "collection": "array",
4889
+ "fields": [
4890
+ {
4891
+ "name": "from",
4892
+ "type": "LatLng",
4893
+ "required": true
4894
+ },
4895
+ {
4896
+ "name": "to",
4897
+ "type": "LatLng",
4898
+ "required": true
4899
+ }
4900
+ ]
4901
+ }
4902
+ },
4903
+ {
4904
+ "name": "autoRotate",
4905
+ "type": "boolean",
4906
+ "required": false,
4907
+ "default": true,
4908
+ "description": "Spin on its own. Defaults to true (off under reduced motion)."
4909
+ },
4910
+ {
4911
+ "name": "rotationSpeed",
4912
+ "type": "number",
4913
+ "required": false,
4914
+ "default": 6,
4915
+ "description": "Degrees per second. Defaults to 6."
4916
+ },
4917
+ {
4918
+ "name": "draggable",
4919
+ "type": "boolean",
4920
+ "required": false,
4921
+ "default": true,
4922
+ "description": "Let people drag to spin it. Defaults to true."
4923
+ },
4924
+ {
4925
+ "name": "atmosphere",
4926
+ "type": "boolean",
4927
+ "required": false,
4928
+ "default": true,
4929
+ "description": "The soft halo past the edge. Defaults to true."
4930
+ },
4931
+ {
4932
+ "name": "dotSpacing",
4933
+ "type": "number",
4934
+ "required": false,
4935
+ "default": 1.3,
4936
+ "description": "Degrees between dots; smaller is denser. Defaults to 1.3."
4937
+ },
4938
+ {
4939
+ "name": "theme",
4940
+ "type": "\"auto\" | \"dark\"",
4941
+ "required": false,
4942
+ "values": [
4943
+ "auto",
4944
+ "dark"
4945
+ ],
4946
+ "default": "auto",
4947
+ "description": "\"auto\" follows the surrounding theme. \"dark\" draws light dots wherever the globe sits, for a globe on a dark surface inside a light page. (The globe has no background of its own; it takes the colour behind it.)"
4948
+ },
4949
+ {
4950
+ "name": "onMarkerClick",
4951
+ "type": "((index: number, marker: MapGlobeMarker) => void)",
4952
+ "required": false,
4953
+ "description": "Called when a marker is clicked or activated from the keyboard (markers with a `label` get a hidden button)."
4954
+ },
4955
+ {
4956
+ "name": "onMarkerHover",
4957
+ "type": "((index: number | null) => void)",
4958
+ "required": false,
4959
+ "description": "Called when the pointer or keyboard focus moves onto a marker, and with null when it leaves."
4960
+ },
4961
+ {
4962
+ "name": "aria-label",
4963
+ "type": "string",
4964
+ "required": false,
4965
+ "default": "Globe",
4966
+ "description": "Accessible description. Defaults to \"Globe\"."
4967
+ },
4968
+ {
4969
+ "name": "className",
4970
+ "type": "string",
4971
+ "required": false
4972
+ }
4973
+ ],
4974
+ "contract": {
4975
+ "requiredProps": [],
4976
+ "requiresAccessibleName": false
4977
+ },
4978
+ "since": "0.11.0",
4979
+ "example": "import { MapGlobe } from '@sakaniui/react';\n\n<MapGlobe />",
4980
+ "aliases": [
4981
+ "globe",
4982
+ "3d globe",
4983
+ "world globe",
4984
+ "earth",
4985
+ "dotted globe",
4986
+ "spinning globe",
4987
+ "world map",
4988
+ "dot globe"
4989
+ ]
4990
+ },
4991
+ {
4992
+ "name": "MapMarker",
4993
+ "kind": "component",
4994
+ "category": "Composite",
4995
+ "import": "@sakaniui/react",
4996
+ "summary": "A place on a Map.",
4997
+ "props": [
4998
+ {
4999
+ "name": "position",
5000
+ "type": "LatLng",
5001
+ "required": true,
5002
+ "description": "[latitude, longitude]",
5003
+ "shape": {
5004
+ "type": "LatLng",
5005
+ "collection": "object",
5006
+ "fields": [
5007
+ {
5008
+ "name": "0",
5009
+ "type": "number",
5010
+ "required": true
5011
+ },
5012
+ {
5013
+ "name": "1",
5014
+ "type": "number",
5015
+ "required": true
5016
+ },
5017
+ {
5018
+ "name": "length",
5019
+ "type": "2",
5020
+ "required": true
5021
+ },
5022
+ {
5023
+ "name": "toString",
5024
+ "type": "() => string",
5025
+ "required": true,
5026
+ "description": "Returns a string representation of an array."
5027
+ },
5028
+ {
5029
+ "name": "toLocaleString",
5030
+ "type": "{ (): string; (locales: string | string[], options?: (NumberFormatOptions & DateTimeFormatOptions) | undefined): string; }",
5031
+ "required": true,
5032
+ "description": "Returns a string representation of an array. The elements are converted to string using their toLocaleString methods."
5033
+ },
5034
+ {
5035
+ "name": "pop",
5036
+ "type": "() => number",
5037
+ "required": true,
5038
+ "description": "Removes the last element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
5039
+ },
5040
+ {
5041
+ "name": "push",
5042
+ "type": "(...items: number[]) => number",
5043
+ "required": true,
5044
+ "description": "Appends new elements to the end of an array, and returns the new length of the array."
5045
+ },
5046
+ {
5047
+ "name": "concat",
5048
+ "type": "{ (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<number>)[]): number[]; }",
5049
+ "required": true,
5050
+ "description": "Combines two or more arrays. This method returns a new array without modifying any existing arrays."
5051
+ },
5052
+ {
5053
+ "name": "join",
5054
+ "type": "(separator?: string | undefined) => string",
5055
+ "required": true,
5056
+ "description": "Adds all the elements of an array into a string, separated by the specified separator string."
5057
+ },
5058
+ {
5059
+ "name": "reverse",
5060
+ "type": "() => number[]",
5061
+ "required": true,
5062
+ "description": "Reverses the elements in an array in place. This method mutates the array and returns a reference to the same array."
5063
+ },
5064
+ {
5065
+ "name": "shift",
5066
+ "type": "() => number",
5067
+ "required": true,
5068
+ "description": "Removes the first element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
5069
+ },
5070
+ {
5071
+ "name": "slice",
5072
+ "type": "(start?: number | undefined, end?: number | undefined) => number[]",
5073
+ "required": true,
5074
+ "description": "Returns a copy of a section of an array. For both start and end, a negative index can be used to indicate an offset from the end of the array. For example, -2 refers to the second to last element of the array."
5075
+ },
5076
+ {
5077
+ "name": "sort",
5078
+ "type": "(compareFn?: ((a: number, b: number) => number) | undefined) => LatLng",
5079
+ "required": true,
5080
+ "description": "Sorts an array in place. This method mutates the array and returns a reference to the same array."
5081
+ },
5082
+ {
5083
+ "name": "splice",
5084
+ "type": "{ (start: number, deleteCount?: number | undefined): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }",
5085
+ "required": true,
5086
+ "description": "Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements."
5087
+ },
5088
+ {
5089
+ "name": "unshift",
5090
+ "type": "(...items: number[]) => number",
5091
+ "required": true,
5092
+ "description": "Inserts new elements at the start of an array, and returns the new length of the array."
5093
+ },
5094
+ {
5095
+ "name": "indexOf",
5096
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
5097
+ "required": true,
5098
+ "description": "Returns the index of the first occurrence of a value in an array, or -1 if it is not present."
5099
+ },
5100
+ {
5101
+ "name": "lastIndexOf",
5102
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
5103
+ "required": true,
5104
+ "description": "Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present."
5105
+ },
5106
+ {
5107
+ "name": "every",
5108
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }",
5109
+ "required": true,
5110
+ "description": "Determines whether all the members of an array satisfy the specified test."
5111
+ },
5112
+ {
5113
+ "name": "some",
5114
+ "type": "(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean",
5115
+ "required": true,
5116
+ "description": "Determines whether the specified callback function returns true for any element of an array."
5117
+ },
5118
+ {
5119
+ "name": "forEach",
5120
+ "type": "(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void",
5121
+ "required": true,
5122
+ "description": "Performs the specified action for each element in an array."
5123
+ },
5124
+ {
5125
+ "name": "map",
5126
+ "type": "<U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]",
5127
+ "required": true,
5128
+ "description": "Calls a defined callback function on each element of an array, and returns an array that contains the results."
5129
+ },
5130
+ {
5131
+ "name": "filter",
5132
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }",
5133
+ "required": true,
5134
+ "description": "Returns the elements of an array that meet the condition specified in a callback function."
5135
+ },
5136
+ {
5137
+ "name": "reduce",
5138
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
5139
+ "required": true,
5140
+ "description": "Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
5141
+ },
5142
+ {
5143
+ "name": "reduceRight",
5144
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
5145
+ "required": true,
5146
+ "description": "Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
5147
+ },
5148
+ {
5149
+ "name": "find",
5150
+ "type": "{ <S extends number>(predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }",
5151
+ "required": true,
5152
+ "description": "Returns the value of the first element in the array where predicate is true, and undefined otherwise."
5153
+ },
5154
+ {
5155
+ "name": "findIndex",
5156
+ "type": "(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number",
5157
+ "required": true,
5158
+ "description": "Returns the index of the first element in the array where predicate is true, and -1 otherwise."
5159
+ },
5160
+ {
5161
+ "name": "fill",
5162
+ "type": "(value: number, start?: number | undefined, end?: number | undefined) => LatLng",
5163
+ "required": true,
5164
+ "description": "Changes all array elements from `start` to `end` index to a static `value` and returns the modified array"
5165
+ },
5166
+ {
5167
+ "name": "copyWithin",
5168
+ "type": "(target: number, start: number, end?: number | undefined) => LatLng",
5169
+ "required": true,
5170
+ "description": "Returns the this object after copying a section of the array identified by start and end to the same array starting at position target"
5171
+ },
5172
+ {
5173
+ "name": "entries",
5174
+ "type": "() => ArrayIterator<[number, number]>",
5175
+ "required": true,
5176
+ "description": "Returns an iterable of key, value pairs for every entry in the array"
5177
+ },
5178
+ {
5179
+ "name": "keys",
5180
+ "type": "() => ArrayIterator<number>",
5181
+ "required": true,
5182
+ "description": "Returns an iterable of keys in the array"
5183
+ },
5184
+ {
5185
+ "name": "values",
5186
+ "type": "() => ArrayIterator<number>",
5187
+ "required": true,
5188
+ "description": "Returns an iterable of values in the array"
5189
+ },
5190
+ {
5191
+ "name": "includes",
5192
+ "type": "(searchElement: number, fromIndex?: number | undefined) => boolean",
5193
+ "required": true,
5194
+ "description": "Determines whether an array includes a certain element, returning true or false as appropriate."
5195
+ },
5196
+ {
5197
+ "name": "flatMap",
5198
+ "type": "<U, This = undefined>(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined) => U[]",
5199
+ "required": true,
5200
+ "description": "Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with depth 1."
5201
+ },
5202
+ {
5203
+ "name": "flat",
5204
+ "type": "<A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]",
5205
+ "required": true,
5206
+ "description": "Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth."
5207
+ },
5208
+ {
5209
+ "name": "at",
5210
+ "type": "(index: number) => number",
5211
+ "required": true,
5212
+ "description": "Returns the item located at the specified index."
5213
+ },
5214
+ {
5215
+ "name": "__@iterator@12750",
5216
+ "type": "() => ArrayIterator<number>",
5217
+ "required": true,
5218
+ "description": "Iterator"
5219
+ },
5220
+ {
5221
+ "name": "__@unscopables@12780",
5222
+ "type": "{ [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; }",
5223
+ "required": true,
5224
+ "description": "Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement."
5225
+ }
5226
+ ]
5227
+ }
5228
+ },
5229
+ {
5230
+ "name": "variant",
5231
+ "type": "\"pin\" | \"dot\" | \"cluster\"",
5232
+ "required": false,
5233
+ "values": [
5234
+ "pin",
5235
+ "dot",
5236
+ "cluster"
5237
+ ],
5238
+ "default": "pin"
5239
+ },
5240
+ {
5241
+ "name": "count",
5242
+ "type": "number",
5243
+ "required": false,
5244
+ "description": "Number shown on a cluster."
5245
+ },
5246
+ {
5247
+ "name": "selected",
5248
+ "type": "boolean",
5249
+ "required": false
5250
+ },
5251
+ {
5252
+ "name": "hovered",
5253
+ "type": "boolean",
5254
+ "required": false,
5255
+ "description": "Shows the hover appearance without a pointer (documentation and visual tests). Real hover works on its own."
5256
+ },
5257
+ {
5258
+ "name": "glide",
5259
+ "type": "number",
5260
+ "required": false,
5261
+ "description": "Milliseconds to slide to a new `position` instead of jumping, for markers fed by a live source (about the interval between updates reads as continuous). Off by default; reduced motion turns it off."
5262
+ },
5263
+ {
5264
+ "name": "label",
5265
+ "type": "string",
5266
+ "required": false,
5267
+ "description": "Accessible name, e.g. the place's name."
5268
+ },
5269
+ {
5270
+ "name": "onClick",
5271
+ "type": "((e: MouseEvent<HTMLButtonElement, MouseEvent>) => void)",
5272
+ "required": false
5273
+ },
5274
+ {
5275
+ "name": "className",
5276
+ "type": "string",
5277
+ "required": false
5278
+ }
5279
+ ],
5280
+ "contract": {
5281
+ "requiredProps": [
5282
+ "position"
5283
+ ],
5284
+ "requiresAccessibleName": false
5285
+ },
5286
+ "since": "0.11.0",
5287
+ "example": "import { MapMarker } from '@sakaniui/react';\n\n<MapMarker position={[1, 1]} />",
5288
+ "aliases": [
5289
+ "map pin",
5290
+ "pin",
5291
+ "location pin",
5292
+ "map marker pin",
5293
+ "live marker",
5294
+ "moving marker",
5295
+ "vehicle marker"
5296
+ ]
5297
+ },
5298
+ {
5299
+ "name": "MapPopup",
5300
+ "kind": "component",
5301
+ "category": "Composite",
5302
+ "import": "@sakaniui/react",
5303
+ "summary": "Card that opens above a place on a Map.",
5304
+ "props": [
5305
+ {
5306
+ "name": "position",
5307
+ "type": "LatLng",
5308
+ "required": true,
5309
+ "description": "[latitude, longitude] the pointer points at.",
5310
+ "shape": {
5311
+ "type": "LatLng",
5312
+ "collection": "object",
5313
+ "fields": [
5314
+ {
5315
+ "name": "0",
5316
+ "type": "number",
5317
+ "required": true
5318
+ },
5319
+ {
5320
+ "name": "1",
5321
+ "type": "number",
5322
+ "required": true
5323
+ },
5324
+ {
5325
+ "name": "length",
5326
+ "type": "2",
5327
+ "required": true
5328
+ },
5329
+ {
5330
+ "name": "toString",
5331
+ "type": "() => string",
5332
+ "required": true,
5333
+ "description": "Returns a string representation of an array."
5334
+ },
5335
+ {
5336
+ "name": "toLocaleString",
5337
+ "type": "{ (): string; (locales: string | string[], options?: (NumberFormatOptions & DateTimeFormatOptions) | undefined): string; }",
5338
+ "required": true,
5339
+ "description": "Returns a string representation of an array. The elements are converted to string using their toLocaleString methods."
5340
+ },
5341
+ {
5342
+ "name": "pop",
5343
+ "type": "() => number",
5344
+ "required": true,
5345
+ "description": "Removes the last element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
5346
+ },
5347
+ {
5348
+ "name": "push",
5349
+ "type": "(...items: number[]) => number",
5350
+ "required": true,
5351
+ "description": "Appends new elements to the end of an array, and returns the new length of the array."
5352
+ },
5353
+ {
5354
+ "name": "concat",
5355
+ "type": "{ (...items: ConcatArray<number>[]): number[]; (...items: (number | ConcatArray<number>)[]): number[]; }",
5356
+ "required": true,
5357
+ "description": "Combines two or more arrays. This method returns a new array without modifying any existing arrays."
5358
+ },
5359
+ {
5360
+ "name": "join",
5361
+ "type": "(separator?: string | undefined) => string",
5362
+ "required": true,
5363
+ "description": "Adds all the elements of an array into a string, separated by the specified separator string."
5364
+ },
5365
+ {
5366
+ "name": "reverse",
5367
+ "type": "() => number[]",
5368
+ "required": true,
5369
+ "description": "Reverses the elements in an array in place. This method mutates the array and returns a reference to the same array."
5370
+ },
5371
+ {
5372
+ "name": "shift",
5373
+ "type": "() => number",
5374
+ "required": true,
5375
+ "description": "Removes the first element from an array and returns it. If the array is empty, undefined is returned and the array is not modified."
5376
+ },
5377
+ {
5378
+ "name": "slice",
5379
+ "type": "(start?: number | undefined, end?: number | undefined) => number[]",
5380
+ "required": true,
5381
+ "description": "Returns a copy of a section of an array. For both start and end, a negative index can be used to indicate an offset from the end of the array. For example, -2 refers to the second to last element of the array."
5382
+ },
5383
+ {
5384
+ "name": "sort",
5385
+ "type": "(compareFn?: ((a: number, b: number) => number) | undefined) => LatLng",
5386
+ "required": true,
5387
+ "description": "Sorts an array in place. This method mutates the array and returns a reference to the same array."
5388
+ },
5389
+ {
5390
+ "name": "splice",
5391
+ "type": "{ (start: number, deleteCount?: number | undefined): number[]; (start: number, deleteCount: number, ...items: number[]): number[]; }",
5392
+ "required": true,
5393
+ "description": "Removes elements from an array and, if necessary, inserts new elements in their place, returning the deleted elements."
5394
+ },
5395
+ {
5396
+ "name": "unshift",
5397
+ "type": "(...items: number[]) => number",
5398
+ "required": true,
5399
+ "description": "Inserts new elements at the start of an array, and returns the new length of the array."
5400
+ },
5401
+ {
5402
+ "name": "indexOf",
5403
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
5404
+ "required": true,
5405
+ "description": "Returns the index of the first occurrence of a value in an array, or -1 if it is not present."
5406
+ },
5407
+ {
5408
+ "name": "lastIndexOf",
5409
+ "type": "(searchElement: number, fromIndex?: number | undefined) => number",
5410
+ "required": true,
5411
+ "description": "Returns the index of the last occurrence of a specified value in an array, or -1 if it is not present."
5412
+ },
5413
+ {
5414
+ "name": "every",
5415
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): this is S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): boolean; }",
5416
+ "required": true,
5417
+ "description": "Determines whether all the members of an array satisfy the specified test."
5418
+ },
5419
+ {
5420
+ "name": "some",
5421
+ "type": "(predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any) => boolean",
5422
+ "required": true,
5423
+ "description": "Determines whether the specified callback function returns true for any element of an array."
5424
+ },
5425
+ {
5426
+ "name": "forEach",
5427
+ "type": "(callbackfn: (value: number, index: number, array: number[]) => void, thisArg?: any) => void",
5428
+ "required": true,
5429
+ "description": "Performs the specified action for each element in an array."
5430
+ },
5431
+ {
5432
+ "name": "map",
5433
+ "type": "<U>(callbackfn: (value: number, index: number, array: number[]) => U, thisArg?: any) => U[]",
5434
+ "required": true,
5435
+ "description": "Calls a defined callback function on each element of an array, and returns an array that contains the results."
5436
+ },
5437
+ {
5438
+ "name": "filter",
5439
+ "type": "{ <S extends number>(predicate: (value: number, index: number, array: number[]) => value is S, thisArg?: any): S[]; (predicate: (value: number, index: number, array: number[]) => unknown, thisArg?: any): number[]; }",
5440
+ "required": true,
5441
+ "description": "Returns the elements of an array that meet the condition specified in a callback function."
5442
+ },
5443
+ {
5444
+ "name": "reduce",
5445
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
5446
+ "required": true,
5447
+ "description": "Calls the specified callback function for all the elements in an array. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
5448
+ },
5449
+ {
5450
+ "name": "reduceRight",
5451
+ "type": "{ (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number): number; (callbackfn: (previousValue: number, currentValue: number, currentIndex: number, array: number[]) => number, initialValue: number): number; <U>(callbackfn: (previousValue: U, currentValue: number, currentIndex: number, array: number[]) => U, initialValue: U): U; }",
5452
+ "required": true,
5453
+ "description": "Calls the specified callback function for all the elements in an array, in descending order. The return value of the callback function is the accumulated result, and is provided as an argument in the next call to the callback function."
5454
+ },
5455
+ {
5456
+ "name": "find",
5457
+ "type": "{ <S extends number>(predicate: (value: number, index: number, obj: number[]) => value is S, thisArg?: any): S | undefined; (predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any): number | undefined; }",
5458
+ "required": true,
5459
+ "description": "Returns the value of the first element in the array where predicate is true, and undefined otherwise."
5460
+ },
5461
+ {
5462
+ "name": "findIndex",
5463
+ "type": "(predicate: (value: number, index: number, obj: number[]) => unknown, thisArg?: any) => number",
5464
+ "required": true,
5465
+ "description": "Returns the index of the first element in the array where predicate is true, and -1 otherwise."
5466
+ },
5467
+ {
5468
+ "name": "fill",
5469
+ "type": "(value: number, start?: number | undefined, end?: number | undefined) => LatLng",
5470
+ "required": true,
5471
+ "description": "Changes all array elements from `start` to `end` index to a static `value` and returns the modified array"
5472
+ },
5473
+ {
5474
+ "name": "copyWithin",
5475
+ "type": "(target: number, start: number, end?: number | undefined) => LatLng",
5476
+ "required": true,
5477
+ "description": "Returns the this object after copying a section of the array identified by start and end to the same array starting at position target"
5478
+ },
5479
+ {
5480
+ "name": "entries",
5481
+ "type": "() => ArrayIterator<[number, number]>",
5482
+ "required": true,
5483
+ "description": "Returns an iterable of key, value pairs for every entry in the array"
5484
+ },
5485
+ {
5486
+ "name": "keys",
5487
+ "type": "() => ArrayIterator<number>",
5488
+ "required": true,
5489
+ "description": "Returns an iterable of keys in the array"
5490
+ },
5491
+ {
5492
+ "name": "values",
5493
+ "type": "() => ArrayIterator<number>",
5494
+ "required": true,
5495
+ "description": "Returns an iterable of values in the array"
5496
+ },
5497
+ {
5498
+ "name": "includes",
5499
+ "type": "(searchElement: number, fromIndex?: number | undefined) => boolean",
5500
+ "required": true,
5501
+ "description": "Determines whether an array includes a certain element, returning true or false as appropriate."
5502
+ },
5503
+ {
5504
+ "name": "flatMap",
5505
+ "type": "<U, This = undefined>(callback: (this: This, value: number, index: number, array: number[]) => U | readonly U[], thisArg?: This | undefined) => U[]",
5506
+ "required": true,
5507
+ "description": "Calls a defined callback function on each element of an array. Then, flattens the result into a new array. This is identical to a map followed by flat with depth 1."
5508
+ },
5509
+ {
5510
+ "name": "flat",
5511
+ "type": "<A, D extends number = 1>(this: A, depth?: D | undefined) => FlatArray<A, D>[]",
5512
+ "required": true,
5513
+ "description": "Returns a new array with all sub-array elements concatenated into it recursively up to the specified depth."
5514
+ },
5515
+ {
5516
+ "name": "at",
5517
+ "type": "(index: number) => number",
5518
+ "required": true,
5519
+ "description": "Returns the item located at the specified index."
5520
+ },
5521
+ {
5522
+ "name": "__@iterator@12750",
5523
+ "type": "() => ArrayIterator<number>",
5524
+ "required": true,
5525
+ "description": "Iterator"
5526
+ },
5527
+ {
5528
+ "name": "__@unscopables@12780",
5529
+ "type": "{ [x: number]: boolean | undefined; length?: boolean | undefined; toString?: boolean | undefined; toLocaleString?: boolean | undefined; pop?: boolean | undefined; push?: boolean | undefined; concat?: boolean | undefined; join?: boolean | undefined; reverse?: boolean | undefined; shift?: boolean | undefined; slice?: boolean | undefined; sort?: boolean | undefined; splice?: boolean | undefined; unshift?: boolean | undefined; indexOf?: boolean | undefined; lastIndexOf?: boolean | undefined; every?: boolean | undefined; some?: boolean | undefined; forEach?: boolean | undefined; map?: boolean | undefined; filter?: boolean | undefined; reduce?: boolean | undefined; reduceRight?: boolean | undefined; find?: boolean | undefined; findIndex?: boolean | undefined; fill?: boolean | undefined; copyWithin?: boolean | undefined; entries?: boolean | undefined; keys?: boolean | undefined; values?: boolean | undefined; includes?: boolean | undefined; flatMap?: boolean | undefined; flat?: boolean | undefined; at?: boolean | undefined; [Symbol.iterator]?: boolean | undefined; readonly [Symbol.unscopables]?: boolean | undefined; }",
5530
+ "required": true,
5531
+ "description": "Is an object whose properties have the value 'true' when they will be absent when used in a 'with' statement."
5532
+ }
5533
+ ]
5534
+ }
5535
+ },
5536
+ {
5537
+ "name": "title",
5538
+ "type": "ReactNode",
5539
+ "required": false
5540
+ },
5541
+ {
5542
+ "name": "description",
5543
+ "type": "ReactNode",
5544
+ "required": false
5545
+ },
5546
+ {
5547
+ "name": "onClose",
5548
+ "type": "(() => void)",
5549
+ "required": false,
5550
+ "description": "Shows a close button when given."
5551
+ },
5552
+ {
5553
+ "name": "offset",
5554
+ "type": "number",
5555
+ "required": false,
5556
+ "default": 48,
5557
+ "description": "Gap between the place and the pointer tip, in px. Defaults to 48 (above a pin); use 14 for a dot."
5558
+ },
5559
+ {
5560
+ "name": "pointer",
5561
+ "type": "boolean",
5562
+ "required": false,
5563
+ "default": true
5564
+ },
5565
+ {
5566
+ "name": "glide",
5567
+ "type": "number",
5568
+ "required": false,
5569
+ "description": "Milliseconds to follow a moving `position`; use the same value as the marker it points at."
5570
+ },
5571
+ {
5572
+ "name": "children",
5573
+ "type": "ReactNode",
5574
+ "required": false,
5575
+ "description": "Extra content under the description (actions, a thumbnail...)."
5576
+ },
5577
+ {
5578
+ "name": "className",
5579
+ "type": "string",
5580
+ "required": false
5581
+ }
5582
+ ],
5583
+ "contract": {
5584
+ "requiredProps": [
5585
+ "position"
5586
+ ],
5587
+ "requiresAccessibleName": false
5588
+ },
5589
+ "since": "0.11.0",
5590
+ "example": "import { MapPopup } from '@sakaniui/react';\n\n<MapPopup position={[1, 1]} />",
5591
+ "aliases": [
5592
+ "map tooltip",
5593
+ "info window",
5594
+ "marker popup"
5595
+ ]
5596
+ },
4018
5597
  {
4019
5598
  "name": "Marquee",
4020
5599
  "kind": "component",
@@ -11229,6 +12808,12 @@
11229
12808
  "kind": "hook",
11230
12809
  "import": "@sakaniui/react",
11231
12810
  "since": "0.4.0"
12811
+ },
12812
+ {
12813
+ "name": "useMapContext",
12814
+ "kind": "hook",
12815
+ "import": "@sakaniui/react",
12816
+ "since": "0.11.0"
11232
12817
  }
11233
12818
  ]
11234
12819
  }