├── .babelrc ├── .github └── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── LICENSE ├── README.md ├── _config.yml ├── example ├── basic │ └── index.html ├── flare │ ├── flare.json │ ├── index.html │ └── screenshot.png ├── large-data │ └── index.html ├── sort-by-size │ └── index.html └── truncate-labels │ ├── flare.json │ └── index.html ├── package.json ├── rollup.config.dev.js ├── rollup.config.js ├── src ├── index.d.ts ├── index.js ├── sunburst.css ├── sunburst.js └── text.js └── yarn.lock /.babelrc: -------------------------------------------------------------------------------- 1 | { 2 | "presets": [ 3 | ["@babel/preset-env", { "modules": false }] 4 | ] 5 | } -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Describe the bug** 11 | A clear and concise description of what the bug is. 12 | 13 | **To Reproduce** 14 | Steps to reproduce the behavior: 15 | 1. Go to '...' 16 | 2. Click on '....' 17 | 3. Scroll down to '....' 18 | 4. See error 19 | 20 | **Expected behavior** 21 | A clear and concise description of what you expected to happen. 22 | 23 | **Screenshots** 24 | If applicable, add screenshots to help explain your problem. 25 | 26 | **Desktop (please complete the following information):** 27 | - OS: [e.g. iOS] 28 | - Browser [e.g. chrome, safari] 29 | - Version [e.g. 22] 30 | 31 | **Smartphone (please complete the following information):** 32 | - Device: [e.g. iPhone6] 33 | - OS: [e.g. iOS8.1] 34 | - Browser [e.g. stock browser, safari] 35 | - Version [e.g. 22] 36 | 37 | **Additional context** 38 | Add any other context about the problem here. 39 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **Is your feature request related to a problem? Please describe.** 11 | A clear and concise description of what the problem is. Ex. I'm always frustrated when [...] 12 | 13 | **Describe the solution you'd like** 14 | A clear and concise description of what you want to happen. 15 | 16 | **Describe alternatives you've considered** 17 | A clear and concise description of any alternative solutions or features you've considered. 18 | 19 | **Additional context** 20 | Add any other context or screenshots about the feature request here. 21 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2017 Vasco Asturiano 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | Sunburst Chart 2 | ============== 3 | 4 | [![NPM package][npm-img]][npm-url] 5 | [![Build Size][build-size-img]][build-size-url] 6 | [![NPM Downloads][npm-downloads-img]][npm-downloads-url] 7 | 8 |

9 | 10 |

11 | 12 | An interactive sunburst chart for representing hierarchical data, where each data node of a tree is represented by an annular segment within multi-layered rings. 13 | 14 | Clicking on an arc focuses the view on the associated sub-tree, enabling a gradual exploration of the data. Clicking in the chart's center zooms out one level, while clicking on the canvas resets the zoom level to the root view. 15 | The chart also responds to data changes by animating the arcs of each of the nodes into their new positions. 16 | 17 | By default the arcs areas are linearly proportional to their data values, resulting in a decrease of the thickness of the outer layers in a quadratic fashion. This can however be customized using the `radiusScaleExponent` method. 18 | 19 | For improved performance, arcs smaller than a given threshold (`minSliceAngle`) are excluded from the DOM, allowing for representation of large data sets while maintaining a smooth interaction. See [here for an example](https://vasturiano.github.io/sunburst-chart/example/large-data) of a randomly generated large data structure. 20 | 21 | See also the [Icicle](https://github.com/vasturiano/icicle-chart), [Circle Pack](https://github.com/vasturiano/circlepack-chart) and [Treemap](https://github.com/vasturiano/treemap-chart) charts. 22 | 23 | And check out the [React bindings](https://github.com/vasturiano/react-sunburst-chart). 24 | 25 | ## ❤️ Support This Project 26 | 27 | If you find this module useful and would like to support its development, you can [buy me a ☕](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=L398E7PKP47E8¤cy_code=USD&source=url). Your contributions help keep open-source sustainable! 28 | [![paypal](https://www.paypalobjects.com/en_US/i/btn/btn_donate_SM.gif)](https://www.paypal.com/cgi-bin/webscr?cmd=_donations&business=L398E7PKP47E8¤cy_code=USD&source=url) 29 | 30 | ## Quick start 31 | 32 | ```js 33 | import Sunburst from 'sunburst-chart'; 34 | ``` 35 | or using a *script* tag 36 | ```html 37 | 38 | ``` 39 | then 40 | ```js 41 | const myChart = new Sunburst(); 42 | .data(); 43 | ``` 44 | 45 | ## API reference 46 | 47 | | Method | Description | Default | 48 | | --- | --- | :--: | 49 | | data([object]) | Getter/setter for chart data (see below for syntax details). | | 50 | | width([number]) | Getter/setter for the chart width in px. | *<window width>* | 51 | | height([number]) | Getter/setter for the chart height in px. | *<window height>* | 52 | | children([string or fn]) | Getter/setter for a data node's children accessor, used to establish the hierarchical relationship between nodes. Supports either a string indicating the object's property name, or a `function(node)` which should return an array of nodes. | `children` | 53 | | label([string or fn]) | Getter/setter for a node object label accessor, used to display labels on the arcs and their tooltips. | `name` | 54 | | size([string or fn]) | Getter/setter for a node object size accessor, used to compute the angles of the arcs. | `value` | 55 | | color([string or fn]) | Getter/setter for a node object color accessor, used to color fill the arcs. | grey | 56 | | strokeColor([string or fn]) | Getter/setter for a node object stroke color accessor, used to color the contour of the arcs. | white | 57 | | nodeClassName([string or fn]) | Getter/setter for a node object classname accessor. Determines the CSS class(es) to apply to each slice node. | - | 58 | | minSliceAngle([number]) | Getter/setter for the minimum angle of an arc (in degrees) required for it to be rendered in the DOM. | `0.2` | 59 | | maxLevels([number]) | Getter/setter for the maximum number of layers to show at any given time. | - | 60 | | excludeRoot([boolean]) | Getter/setter for whether to exclude the root node from the top level representation, to maximize the available radial space. | `false` | 61 | | centerRadius([number]) | Getter/setter for the relative radius of the center circle. The value should be proportional to the whole chart radius. Only values between `<0, 1>` are permitted. | `0.1` | 62 | | radiusScaleExponent([number]) | Getter/setter for the exponent of the power scale used to calculate the thickness of the multi-layered rings. The default is `0.5` (square-root) which ensures the area of every segment remains proportional to their value, by decreasing the radius outwards in a quadratic fashion. For a linear scale, use `1`. Negatives values are not permitted. | `0.5` | 63 | | sort([fn]) | Getter/setter for the compare method used to sort sibling arcs. A value of `null` (*default*) maintains the existing order found in the input data structure. This method is equivalent to [d3-hierarchy's sort](https://github.com/d3/d3-hierarchy#node_sort), it receives two arguments representing two sibling arcs and expects a numeric return value (`-1`, `0` or `1`) indicating the order. Each element is an instance of [d3-hierarchy node](https://github.com/d3/d3-hierarchy#hierarchy) and has several useful properties to specify order: `data` (the corresponding data object), `value` (summed value of node and all its descendants) and `depth` (layer degree). For [example](https://vasturiano.github.io/sunburst-chart/example/sort-by-size/), to order arcs by angular size, use: `(a, b) => b.value - a.value`. | *<existing order*> | 64 | | showLabels([boolean]) | Getter/setter for whether to show labels in the arcs. Regardless of this setting, labels too large to fit within an arc's boundaries are automatically hidden. | `true` | 65 | | labelOrientation([angular, radial or auto]) | Getter/setter for the orientation of the labels. `angular` positions curved labels along the arc perimeter. `radial` will orient labels along the radial axis, centered on the arc's centroid. The `auto` mode will pick whichever of the two methods that allows the label to fit inside the arc's boundaries. If both modes fit, the method that keeps the text most horizontal is selected. | `auto` | 66 | | handleNonFittingLabel([fn(label, availablePx, node)]) | Getter/setter for how to handle labels that are too large to fit in their designated space. Expects a function that receives as arguments the label, the available space (in px) and the corresponding node object. This function should return a string to be rendered instead, or a falsy value indicating the label should be hidden (default). See [here for a label truncation example](https://vasturiano.github.io/sunburst-chart/example/truncate-labels). | - | 67 | | showTooltip([fn]) | Getter/setter to specify a node object tooltip's visibility. If this function returns `false` for a particular node, that node's tooltip will not display at all. If unspecified, all nodes' tooltips will display. | `() => true` | 68 | | tooltipTitle([fn]) | Getter/setter for a node object tooltip title. The function should return a string to be displayed in bold in the first line of the tooltip. If unspecified, the full hierarchical name will be displayed. | | 69 | | tooltipContent([fn]) | Getter/setter for a node object tooltip content. Use this to specify extra content in each of the arc's tooltips in addition to the title set in `tooltipTitle`. | | 70 | | focusOnNode([object]) | Getter/setter for the data node to focus the chart on. Use this method to retrieve the current node in focus, or to programmatically zoom the chart to a particular node. | | 71 | | onHover([fn]) | Callback function for mouse hover events. The data node object (or `null` if hovering on background) and the event object are included as arguments `onHover(node, event)`. | | 72 | | onClick([fn]) | Callback function for click events. The data node object (or `null` if clicking on background) and the event object are included as arguments `onClick(node, event)`. A falsy value (default) automatically focuses on clicked nodes, equivalent to `myChart.onClick(myChart.focusOnNode)`. | | 73 | | onRightClick([fn]) | Callback function for right-click events. The data node object (or `null` if right-clicking on background) and the event object are included as arguments `onRightClick(node, event)`. A falsy value (default) will fallback to the default browser behaviour, which is to open the context menu. | | 74 | | transitionDuration([number]) | Getter/setter for the animation duration of transitions between states (opening, zoom in/out) in milliseconds. Enter `0` to disable animations. | `750` | 75 | 76 | ## Data syntax 77 | 78 | ```js 79 | { 80 | name: "root", 81 | children: [ 82 | { 83 | name: "leafA", 84 | value: 3 85 | }, 86 | { 87 | name: "nodeB", 88 | children: [ 89 | { 90 | name: "leafBA", 91 | value: 5 92 | }, 93 | { 94 | name: "leafBB", 95 | value: 1 96 | } 97 | ] 98 | } 99 | ] 100 | } 101 | ``` 102 | 103 | 104 | [npm-img]: https://img.shields.io/npm/v/sunburst-chart 105 | [npm-url]: https://npmjs.org/package/sunburst-chart 106 | [build-size-img]: https://img.shields.io/bundlephobia/minzip/sunburst-chart 107 | [build-size-url]: https://bundlephobia.com/result?p=sunburst-chart 108 | [npm-downloads-img]: https://img.shields.io/npm/dt/sunburst-chart 109 | [npm-downloads-url]: https://www.npmtrends.com/sunburst-chart 110 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-cayman -------------------------------------------------------------------------------- /example/basic/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 47 | 48 | -------------------------------------------------------------------------------- /example/flare/flare.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flare", 3 | "children": [ 4 | { 5 | "name": "analytics", 6 | "children": [ 7 | { 8 | "name": "cluster", 9 | "children": [ 10 | {"name": "AgglomerativeCluster", "size": 3938}, 11 | {"name": "CommunityStructure", "size": 3812}, 12 | {"name": "HierarchicalCluster", "size": 6714}, 13 | {"name": "MergeEdge", "size": 743} 14 | ] 15 | }, 16 | { 17 | "name": "graph", 18 | "children": [ 19 | {"name": "BetweennessCentrality", "size": 3534}, 20 | {"name": "LinkDistance", "size": 5731}, 21 | {"name": "MaxFlowMinCut", "size": 7840}, 22 | {"name": "ShortestPaths", "size": 5914}, 23 | {"name": "SpanningTree", "size": 3416} 24 | ] 25 | }, 26 | { 27 | "name": "optimization", 28 | "children": [ 29 | {"name": "AspectRatioBanker", "size": 7074} 30 | ] 31 | } 32 | ] 33 | }, 34 | { 35 | "name": "animate", 36 | "children": [ 37 | {"name": "Easing", "size": 17010}, 38 | {"name": "FunctionSequence", "size": 5842}, 39 | { 40 | "name": "interpolate", 41 | "children": [ 42 | {"name": "ArrayInterpolator", "size": 1983}, 43 | {"name": "ColorInterpolator", "size": 2047}, 44 | {"name": "DateInterpolator", "size": 1375}, 45 | {"name": "Interpolator", "size": 8746}, 46 | {"name": "MatrixInterpolator", "size": 2202}, 47 | {"name": "NumberInterpolator", "size": 1382}, 48 | {"name": "ObjectInterpolator", "size": 1629}, 49 | {"name": "PointInterpolator", "size": 1675}, 50 | {"name": "RectangleInterpolator", "size": 2042} 51 | ] 52 | }, 53 | {"name": "ISchedulable", "size": 1041}, 54 | {"name": "Parallel", "size": 5176}, 55 | {"name": "Pause", "size": 449}, 56 | {"name": "Scheduler", "size": 5593}, 57 | {"name": "Sequence", "size": 5534}, 58 | {"name": "Transition", "size": 9201}, 59 | {"name": "Transitioner", "size": 19975}, 60 | {"name": "TransitionEvent", "size": 1116}, 61 | {"name": "Tween", "size": 6006} 62 | ] 63 | }, 64 | { 65 | "name": "data", 66 | "children": [ 67 | { 68 | "name": "converters", 69 | "children": [ 70 | {"name": "Converters", "size": 721}, 71 | {"name": "DelimitedTextConverter", "size": 4294}, 72 | {"name": "GraphMLConverter", "size": 9800}, 73 | {"name": "IDataConverter", "size": 1314}, 74 | {"name": "JSONConverter", "size": 2220} 75 | ] 76 | }, 77 | {"name": "DataField", "size": 1759}, 78 | {"name": "DataSchema", "size": 2165}, 79 | {"name": "DataSet", "size": 586}, 80 | {"name": "DataSource", "size": 3331}, 81 | {"name": "DataTable", "size": 772}, 82 | {"name": "DataUtil", "size": 3322} 83 | ] 84 | }, 85 | { 86 | "name": "display", 87 | "children": [ 88 | {"name": "DirtySprite", "size": 8833}, 89 | {"name": "LineSprite", "size": 1732}, 90 | {"name": "RectSprite", "size": 3623}, 91 | {"name": "TextSprite", "size": 10066} 92 | ] 93 | }, 94 | { 95 | "name": "flex", 96 | "children": [ 97 | {"name": "FlareVis", "size": 4116} 98 | ] 99 | }, 100 | { 101 | "name": "physics", 102 | "children": [ 103 | {"name": "DragForce", "size": 1082}, 104 | {"name": "GravityForce", "size": 1336}, 105 | {"name": "IForce", "size": 319}, 106 | {"name": "NBodyForce", "size": 10498}, 107 | {"name": "Particle", "size": 2822}, 108 | {"name": "Simulation", "size": 9983}, 109 | {"name": "Spring", "size": 2213}, 110 | {"name": "SpringForce", "size": 1681} 111 | ] 112 | }, 113 | { 114 | "name": "query", 115 | "children": [ 116 | {"name": "AggregateExpression", "size": 1616}, 117 | {"name": "And", "size": 1027}, 118 | {"name": "Arithmetic", "size": 3891}, 119 | {"name": "Average", "size": 891}, 120 | {"name": "BinaryExpression", "size": 2893}, 121 | {"name": "Comparison", "size": 5103}, 122 | {"name": "CompositeExpression", "size": 3677}, 123 | {"name": "Count", "size": 781}, 124 | {"name": "DateUtil", "size": 4141}, 125 | {"name": "Distinct", "size": 933}, 126 | {"name": "Expression", "size": 5130}, 127 | {"name": "ExpressionIterator", "size": 3617}, 128 | {"name": "Fn", "size": 3240}, 129 | {"name": "If", "size": 2732}, 130 | {"name": "IsA", "size": 2039}, 131 | {"name": "Literal", "size": 1214}, 132 | {"name": "Match", "size": 3748}, 133 | {"name": "Maximum", "size": 843}, 134 | { 135 | "name": "methods", 136 | "children": [ 137 | {"name": "add", "size": 593}, 138 | {"name": "and", "size": 330}, 139 | {"name": "average", "size": 287}, 140 | {"name": "count", "size": 277}, 141 | {"name": "distinct", "size": 292}, 142 | {"name": "div", "size": 595}, 143 | {"name": "eq", "size": 594}, 144 | {"name": "fn", "size": 460}, 145 | {"name": "gt", "size": 603}, 146 | {"name": "gte", "size": 625}, 147 | {"name": "iff", "size": 748}, 148 | {"name": "isa", "size": 461}, 149 | {"name": "lt", "size": 597}, 150 | {"name": "lte", "size": 619}, 151 | {"name": "max", "size": 283}, 152 | {"name": "min", "size": 283}, 153 | {"name": "mod", "size": 591}, 154 | {"name": "mul", "size": 603}, 155 | {"name": "neq", "size": 599}, 156 | {"name": "not", "size": 386}, 157 | {"name": "or", "size": 323}, 158 | {"name": "orderby", "size": 307}, 159 | {"name": "range", "size": 772}, 160 | {"name": "select", "size": 296}, 161 | {"name": "stddev", "size": 363}, 162 | {"name": "sub", "size": 600}, 163 | {"name": "sum", "size": 280}, 164 | {"name": "update", "size": 307}, 165 | {"name": "variance", "size": 335}, 166 | {"name": "where", "size": 299}, 167 | {"name": "xor", "size": 354}, 168 | {"name": "_", "size": 264} 169 | ] 170 | }, 171 | {"name": "Minimum", "size": 843}, 172 | {"name": "Not", "size": 1554}, 173 | {"name": "Or", "size": 970}, 174 | {"name": "Query", "size": 13896}, 175 | {"name": "Range", "size": 1594}, 176 | {"name": "StringUtil", "size": 4130}, 177 | {"name": "Sum", "size": 791}, 178 | {"name": "Variable", "size": 1124}, 179 | {"name": "Variance", "size": 1876}, 180 | {"name": "Xor", "size": 1101} 181 | ] 182 | }, 183 | { 184 | "name": "scale", 185 | "children": [ 186 | {"name": "IScaleMap", "size": 2105}, 187 | {"name": "LinearScale", "size": 1316}, 188 | {"name": "LogScale", "size": 3151}, 189 | {"name": "OrdinalScale", "size": 3770}, 190 | {"name": "QuantileScale", "size": 2435}, 191 | {"name": "QuantitativeScale", "size": 4839}, 192 | {"name": "RootScale", "size": 1756}, 193 | {"name": "Scale", "size": 4268}, 194 | {"name": "ScaleType", "size": 1821}, 195 | {"name": "TimeScale", "size": 5833} 196 | ] 197 | }, 198 | { 199 | "name": "util", 200 | "children": [ 201 | {"name": "Arrays", "size": 8258}, 202 | {"name": "Colors", "size": 10001}, 203 | {"name": "Dates", "size": 8217}, 204 | {"name": "Displays", "size": 12555}, 205 | {"name": "Filter", "size": 2324}, 206 | {"name": "Geometry", "size": 10993}, 207 | { 208 | "name": "heap", 209 | "children": [ 210 | {"name": "FibonacciHeap", "size": 9354}, 211 | {"name": "HeapNode", "size": 1233} 212 | ] 213 | }, 214 | {"name": "IEvaluable", "size": 335}, 215 | {"name": "IPredicate", "size": 383}, 216 | {"name": "IValueProxy", "size": 874}, 217 | { 218 | "name": "math", 219 | "children": [ 220 | {"name": "DenseMatrix", "size": 3165}, 221 | {"name": "IMatrix", "size": 2815}, 222 | {"name": "SparseMatrix", "size": 3366} 223 | ] 224 | }, 225 | {"name": "Maths", "size": 17705}, 226 | {"name": "Orientation", "size": 1486}, 227 | { 228 | "name": "palette", 229 | "children": [ 230 | {"name": "ColorPalette", "size": 6367}, 231 | {"name": "Palette", "size": 1229}, 232 | {"name": "ShapePalette", "size": 2059}, 233 | {"name": "SizePalette", "size": 2291} 234 | ] 235 | }, 236 | {"name": "Property", "size": 5559}, 237 | {"name": "Shapes", "size": 19118}, 238 | {"name": "Sort", "size": 6887}, 239 | {"name": "Stats", "size": 6557}, 240 | {"name": "Strings", "size": 22026} 241 | ] 242 | }, 243 | { 244 | "name": "vis", 245 | "children": [ 246 | { 247 | "name": "axis", 248 | "children": [ 249 | {"name": "Axes", "size": 1302}, 250 | {"name": "Axis", "size": 24593}, 251 | {"name": "AxisGridLine", "size": 652}, 252 | {"name": "AxisLabel", "size": 636}, 253 | {"name": "CartesianAxes", "size": 6703} 254 | ] 255 | }, 256 | { 257 | "name": "controls", 258 | "children": [ 259 | {"name": "AnchorControl", "size": 2138}, 260 | {"name": "ClickControl", "size": 3824}, 261 | {"name": "Control", "size": 1353}, 262 | {"name": "ControlList", "size": 4665}, 263 | {"name": "DragControl", "size": 2649}, 264 | {"name": "ExpandControl", "size": 2832}, 265 | {"name": "HoverControl", "size": 4896}, 266 | {"name": "IControl", "size": 763}, 267 | {"name": "PanZoomControl", "size": 5222}, 268 | {"name": "SelectionControl", "size": 7862}, 269 | {"name": "TooltipControl", "size": 8435} 270 | ] 271 | }, 272 | { 273 | "name": "data", 274 | "children": [ 275 | {"name": "Data", "size": 20544}, 276 | {"name": "DataList", "size": 19788}, 277 | {"name": "DataSprite", "size": 10349}, 278 | {"name": "EdgeSprite", "size": 3301}, 279 | {"name": "NodeSprite", "size": 19382}, 280 | { 281 | "name": "render", 282 | "children": [ 283 | {"name": "ArrowType", "size": 698}, 284 | {"name": "EdgeRenderer", "size": 5569}, 285 | {"name": "IRenderer", "size": 353}, 286 | {"name": "ShapeRenderer", "size": 2247} 287 | ] 288 | }, 289 | {"name": "ScaleBinding", "size": 11275}, 290 | {"name": "Tree", "size": 7147}, 291 | {"name": "TreeBuilder", "size": 9930} 292 | ] 293 | }, 294 | { 295 | "name": "events", 296 | "children": [ 297 | {"name": "DataEvent", "size": 2313}, 298 | {"name": "SelectionEvent", "size": 1880}, 299 | {"name": "TooltipEvent", "size": 1701}, 300 | {"name": "VisualizationEvent", "size": 1117} 301 | ] 302 | }, 303 | { 304 | "name": "legend", 305 | "children": [ 306 | {"name": "Legend", "size": 20859}, 307 | {"name": "LegendItem", "size": 4614}, 308 | {"name": "LegendRange", "size": 10530} 309 | ] 310 | }, 311 | { 312 | "name": "operator", 313 | "children": [ 314 | { 315 | "name": "distortion", 316 | "children": [ 317 | {"name": "BifocalDistortion", "size": 4461}, 318 | {"name": "Distortion", "size": 6314}, 319 | {"name": "FisheyeDistortion", "size": 3444} 320 | ] 321 | }, 322 | { 323 | "name": "encoder", 324 | "children": [ 325 | {"name": "ColorEncoder", "size": 3179}, 326 | {"name": "Encoder", "size": 4060}, 327 | {"name": "PropertyEncoder", "size": 4138}, 328 | {"name": "ShapeEncoder", "size": 1690}, 329 | {"name": "SizeEncoder", "size": 1830} 330 | ] 331 | }, 332 | { 333 | "name": "filter", 334 | "children": [ 335 | {"name": "FisheyeTreeFilter", "size": 5219}, 336 | {"name": "GraphDistanceFilter", "size": 3165}, 337 | {"name": "VisibilityFilter", "size": 3509} 338 | ] 339 | }, 340 | {"name": "IOperator", "size": 1286}, 341 | { 342 | "name": "label", 343 | "children": [ 344 | {"name": "Labeler", "size": 9956}, 345 | {"name": "RadialLabeler", "size": 3899}, 346 | {"name": "StackedAreaLabeler", "size": 3202} 347 | ] 348 | }, 349 | { 350 | "name": "layout", 351 | "children": [ 352 | {"name": "AxisLayout", "size": 6725}, 353 | {"name": "BundledEdgeRouter", "size": 3727}, 354 | {"name": "CircleLayout", "size": 9317}, 355 | {"name": "CirclePackingLayout", "size": 12003}, 356 | {"name": "DendrogramLayout", "size": 4853}, 357 | {"name": "ForceDirectedLayout", "size": 8411}, 358 | {"name": "IcicleTreeLayout", "size": 4864}, 359 | {"name": "IndentedTreeLayout", "size": 3174}, 360 | {"name": "Layout", "size": 7881}, 361 | {"name": "NodeLinkTreeLayout", "size": 12870}, 362 | {"name": "PieLayout", "size": 2728}, 363 | {"name": "RadialTreeLayout", "size": 12348}, 364 | {"name": "RandomLayout", "size": 870}, 365 | {"name": "StackedAreaLayout", "size": 9121}, 366 | {"name": "TreeMapLayout", "size": 9191} 367 | ] 368 | }, 369 | {"name": "Operator", "size": 2490}, 370 | {"name": "OperatorList", "size": 5248}, 371 | {"name": "OperatorSequence", "size": 4190}, 372 | {"name": "OperatorSwitch", "size": 2581}, 373 | {"name": "SortOperator", "size": 2023} 374 | ] 375 | }, 376 | {"name": "Visualization", "size": 16540} 377 | ] 378 | } 379 | ] 380 | } -------------------------------------------------------------------------------- /example/flare/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 25 | 26 | -------------------------------------------------------------------------------- /example/flare/screenshot.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vasturiano/sunburst-chart/6aae72ff44251c04ff36dd8447db397a83c019a7/example/flare/screenshot.png -------------------------------------------------------------------------------- /example/large-data/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 44 | 45 | -------------------------------------------------------------------------------- /example/sort-by-size/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 43 | 44 | -------------------------------------------------------------------------------- /example/truncate-labels/flare.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "flare", 3 | "children": [ 4 | { 5 | "name": "analytics", 6 | "children": [ 7 | { 8 | "name": "cluster", 9 | "children": [ 10 | {"name": "AgglomerativeCluster", "size": 3938}, 11 | {"name": "CommunityStructure", "size": 3812}, 12 | {"name": "HierarchicalCluster", "size": 6714}, 13 | {"name": "MergeEdge", "size": 743} 14 | ] 15 | }, 16 | { 17 | "name": "graph", 18 | "children": [ 19 | {"name": "BetweennessCentrality", "size": 3534}, 20 | {"name": "LinkDistance", "size": 5731}, 21 | {"name": "MaxFlowMinCut", "size": 7840}, 22 | {"name": "ShortestPaths", "size": 5914}, 23 | {"name": "SpanningTree", "size": 3416} 24 | ] 25 | }, 26 | { 27 | "name": "optimization", 28 | "children": [ 29 | {"name": "AspectRatioBanker", "size": 7074} 30 | ] 31 | } 32 | ] 33 | }, 34 | { 35 | "name": "animate", 36 | "children": [ 37 | {"name": "Easing", "size": 17010}, 38 | {"name": "FunctionSequence", "size": 5842}, 39 | { 40 | "name": "interpolate", 41 | "children": [ 42 | {"name": "ArrayInterpolator", "size": 1983}, 43 | {"name": "ColorInterpolator", "size": 2047}, 44 | {"name": "DateInterpolator", "size": 1375}, 45 | {"name": "Interpolator", "size": 8746}, 46 | {"name": "MatrixInterpolator", "size": 2202}, 47 | {"name": "NumberInterpolator", "size": 1382}, 48 | {"name": "ObjectInterpolator", "size": 1629}, 49 | {"name": "PointInterpolator", "size": 1675}, 50 | {"name": "RectangleInterpolator", "size": 2042} 51 | ] 52 | }, 53 | {"name": "ISchedulable", "size": 1041}, 54 | {"name": "Parallel", "size": 5176}, 55 | {"name": "Pause", "size": 449}, 56 | {"name": "Scheduler", "size": 5593}, 57 | {"name": "Sequence", "size": 5534}, 58 | {"name": "Transition", "size": 9201}, 59 | {"name": "Transitioner", "size": 19975}, 60 | {"name": "TransitionEvent", "size": 1116}, 61 | {"name": "Tween", "size": 6006} 62 | ] 63 | }, 64 | { 65 | "name": "data", 66 | "children": [ 67 | { 68 | "name": "converters", 69 | "children": [ 70 | {"name": "Converters", "size": 721}, 71 | {"name": "DelimitedTextConverter", "size": 4294}, 72 | {"name": "GraphMLConverter", "size": 9800}, 73 | {"name": "IDataConverter", "size": 1314}, 74 | {"name": "JSONConverter", "size": 2220} 75 | ] 76 | }, 77 | {"name": "DataField", "size": 1759}, 78 | {"name": "DataSchema", "size": 2165}, 79 | {"name": "DataSet", "size": 586}, 80 | {"name": "DataSource", "size": 3331}, 81 | {"name": "DataTable", "size": 772}, 82 | {"name": "DataUtil", "size": 3322} 83 | ] 84 | }, 85 | { 86 | "name": "display", 87 | "children": [ 88 | {"name": "DirtySprite", "size": 8833}, 89 | {"name": "LineSprite", "size": 1732}, 90 | {"name": "RectSprite", "size": 3623}, 91 | {"name": "TextSprite", "size": 10066} 92 | ] 93 | }, 94 | { 95 | "name": "flex", 96 | "children": [ 97 | {"name": "FlareVis", "size": 4116} 98 | ] 99 | }, 100 | { 101 | "name": "physics", 102 | "children": [ 103 | {"name": "DragForce", "size": 1082}, 104 | {"name": "GravityForce", "size": 1336}, 105 | {"name": "IForce", "size": 319}, 106 | {"name": "NBodyForce", "size": 10498}, 107 | {"name": "Particle", "size": 2822}, 108 | {"name": "Simulation", "size": 9983}, 109 | {"name": "Spring", "size": 2213}, 110 | {"name": "SpringForce", "size": 1681} 111 | ] 112 | }, 113 | { 114 | "name": "query", 115 | "children": [ 116 | {"name": "AggregateExpression", "size": 1616}, 117 | {"name": "And", "size": 1027}, 118 | {"name": "Arithmetic", "size": 3891}, 119 | {"name": "Average", "size": 891}, 120 | {"name": "BinaryExpression", "size": 2893}, 121 | {"name": "Comparison", "size": 5103}, 122 | {"name": "CompositeExpression", "size": 3677}, 123 | {"name": "Count", "size": 781}, 124 | {"name": "DateUtil", "size": 4141}, 125 | {"name": "Distinct", "size": 933}, 126 | {"name": "Expression", "size": 5130}, 127 | {"name": "ExpressionIterator", "size": 3617}, 128 | {"name": "Fn", "size": 3240}, 129 | {"name": "If", "size": 2732}, 130 | {"name": "IsA", "size": 2039}, 131 | {"name": "Literal", "size": 1214}, 132 | {"name": "Match", "size": 3748}, 133 | {"name": "Maximum", "size": 843}, 134 | { 135 | "name": "methods", 136 | "children": [ 137 | {"name": "add", "size": 593}, 138 | {"name": "and", "size": 330}, 139 | {"name": "average", "size": 287}, 140 | {"name": "count", "size": 277}, 141 | {"name": "distinct", "size": 292}, 142 | {"name": "div", "size": 595}, 143 | {"name": "eq", "size": 594}, 144 | {"name": "fn", "size": 460}, 145 | {"name": "gt", "size": 603}, 146 | {"name": "gte", "size": 625}, 147 | {"name": "iff", "size": 748}, 148 | {"name": "isa", "size": 461}, 149 | {"name": "lt", "size": 597}, 150 | {"name": "lte", "size": 619}, 151 | {"name": "max", "size": 283}, 152 | {"name": "min", "size": 283}, 153 | {"name": "mod", "size": 591}, 154 | {"name": "mul", "size": 603}, 155 | {"name": "neq", "size": 599}, 156 | {"name": "not", "size": 386}, 157 | {"name": "or", "size": 323}, 158 | {"name": "orderby", "size": 307}, 159 | {"name": "range", "size": 772}, 160 | {"name": "select", "size": 296}, 161 | {"name": "stddev", "size": 363}, 162 | {"name": "sub", "size": 600}, 163 | {"name": "sum", "size": 280}, 164 | {"name": "update", "size": 307}, 165 | {"name": "variance", "size": 335}, 166 | {"name": "where", "size": 299}, 167 | {"name": "xor", "size": 354}, 168 | {"name": "_", "size": 264} 169 | ] 170 | }, 171 | {"name": "Minimum", "size": 843}, 172 | {"name": "Not", "size": 1554}, 173 | {"name": "Or", "size": 970}, 174 | {"name": "Query", "size": 13896}, 175 | {"name": "Range", "size": 1594}, 176 | {"name": "StringUtil", "size": 4130}, 177 | {"name": "Sum", "size": 791}, 178 | {"name": "Variable", "size": 1124}, 179 | {"name": "Variance", "size": 1876}, 180 | {"name": "Xor", "size": 1101} 181 | ] 182 | }, 183 | { 184 | "name": "scale", 185 | "children": [ 186 | {"name": "IScaleMap", "size": 2105}, 187 | {"name": "LinearScale", "size": 1316}, 188 | {"name": "LogScale", "size": 3151}, 189 | {"name": "OrdinalScale", "size": 3770}, 190 | {"name": "QuantileScale", "size": 2435}, 191 | {"name": "QuantitativeScale", "size": 4839}, 192 | {"name": "RootScale", "size": 1756}, 193 | {"name": "Scale", "size": 4268}, 194 | {"name": "ScaleType", "size": 1821}, 195 | {"name": "TimeScale", "size": 5833} 196 | ] 197 | }, 198 | { 199 | "name": "util", 200 | "children": [ 201 | {"name": "Arrays", "size": 8258}, 202 | {"name": "Colors", "size": 10001}, 203 | {"name": "Dates", "size": 8217}, 204 | {"name": "Displays", "size": 12555}, 205 | {"name": "Filter", "size": 2324}, 206 | {"name": "Geometry", "size": 10993}, 207 | { 208 | "name": "heap", 209 | "children": [ 210 | {"name": "FibonacciHeap", "size": 9354}, 211 | {"name": "HeapNode", "size": 1233} 212 | ] 213 | }, 214 | {"name": "IEvaluable", "size": 335}, 215 | {"name": "IPredicate", "size": 383}, 216 | {"name": "IValueProxy", "size": 874}, 217 | { 218 | "name": "math", 219 | "children": [ 220 | {"name": "DenseMatrix", "size": 3165}, 221 | {"name": "IMatrix", "size": 2815}, 222 | {"name": "SparseMatrix", "size": 3366} 223 | ] 224 | }, 225 | {"name": "Maths", "size": 17705}, 226 | {"name": "Orientation", "size": 1486}, 227 | { 228 | "name": "palette", 229 | "children": [ 230 | {"name": "ColorPalette", "size": 6367}, 231 | {"name": "Palette", "size": 1229}, 232 | {"name": "ShapePalette", "size": 2059}, 233 | {"name": "SizePalette", "size": 2291} 234 | ] 235 | }, 236 | {"name": "Property", "size": 5559}, 237 | {"name": "Shapes", "size": 19118}, 238 | {"name": "Sort", "size": 6887}, 239 | {"name": "Stats", "size": 6557}, 240 | {"name": "Strings", "size": 22026} 241 | ] 242 | }, 243 | { 244 | "name": "vis", 245 | "children": [ 246 | { 247 | "name": "axis", 248 | "children": [ 249 | {"name": "Axes", "size": 1302}, 250 | {"name": "Axis", "size": 24593}, 251 | {"name": "AxisGridLine", "size": 652}, 252 | {"name": "AxisLabel", "size": 636}, 253 | {"name": "CartesianAxes", "size": 6703} 254 | ] 255 | }, 256 | { 257 | "name": "controls", 258 | "children": [ 259 | {"name": "AnchorControl", "size": 2138}, 260 | {"name": "ClickControl", "size": 3824}, 261 | {"name": "Control", "size": 1353}, 262 | {"name": "ControlList", "size": 4665}, 263 | {"name": "DragControl", "size": 2649}, 264 | {"name": "ExpandControl", "size": 2832}, 265 | {"name": "HoverControl", "size": 4896}, 266 | {"name": "IControl", "size": 763}, 267 | {"name": "PanZoomControl", "size": 5222}, 268 | {"name": "SelectionControl", "size": 7862}, 269 | {"name": "TooltipControl", "size": 8435} 270 | ] 271 | }, 272 | { 273 | "name": "data", 274 | "children": [ 275 | {"name": "Data", "size": 20544}, 276 | {"name": "DataList", "size": 19788}, 277 | {"name": "DataSprite", "size": 10349}, 278 | {"name": "EdgeSprite", "size": 3301}, 279 | {"name": "NodeSprite", "size": 19382}, 280 | { 281 | "name": "render", 282 | "children": [ 283 | {"name": "ArrowType", "size": 698}, 284 | {"name": "EdgeRenderer", "size": 5569}, 285 | {"name": "IRenderer", "size": 353}, 286 | {"name": "ShapeRenderer", "size": 2247} 287 | ] 288 | }, 289 | {"name": "ScaleBinding", "size": 11275}, 290 | {"name": "Tree", "size": 7147}, 291 | {"name": "TreeBuilder", "size": 9930} 292 | ] 293 | }, 294 | { 295 | "name": "events", 296 | "children": [ 297 | {"name": "DataEvent", "size": 2313}, 298 | {"name": "SelectionEvent", "size": 1880}, 299 | {"name": "TooltipEvent", "size": 1701}, 300 | {"name": "VisualizationEvent", "size": 1117} 301 | ] 302 | }, 303 | { 304 | "name": "legend", 305 | "children": [ 306 | {"name": "Legend", "size": 20859}, 307 | {"name": "LegendItem", "size": 4614}, 308 | {"name": "LegendRange", "size": 10530} 309 | ] 310 | }, 311 | { 312 | "name": "operator", 313 | "children": [ 314 | { 315 | "name": "distortion", 316 | "children": [ 317 | {"name": "BifocalDistortion", "size": 4461}, 318 | {"name": "Distortion", "size": 6314}, 319 | {"name": "FisheyeDistortion", "size": 3444} 320 | ] 321 | }, 322 | { 323 | "name": "encoder", 324 | "children": [ 325 | {"name": "ColorEncoder", "size": 3179}, 326 | {"name": "Encoder", "size": 4060}, 327 | {"name": "PropertyEncoder", "size": 4138}, 328 | {"name": "ShapeEncoder", "size": 1690}, 329 | {"name": "SizeEncoder", "size": 1830} 330 | ] 331 | }, 332 | { 333 | "name": "filter", 334 | "children": [ 335 | {"name": "FisheyeTreeFilter", "size": 5219}, 336 | {"name": "GraphDistanceFilter", "size": 3165}, 337 | {"name": "VisibilityFilter", "size": 3509} 338 | ] 339 | }, 340 | {"name": "IOperator", "size": 1286}, 341 | { 342 | "name": "label", 343 | "children": [ 344 | {"name": "Labeler", "size": 9956}, 345 | {"name": "RadialLabeler", "size": 3899}, 346 | {"name": "StackedAreaLabeler", "size": 3202} 347 | ] 348 | }, 349 | { 350 | "name": "layout", 351 | "children": [ 352 | {"name": "AxisLayout", "size": 6725}, 353 | {"name": "BundledEdgeRouter", "size": 3727}, 354 | {"name": "CircleLayout", "size": 9317}, 355 | {"name": "CirclePackingLayout", "size": 12003}, 356 | {"name": "DendrogramLayout", "size": 4853}, 357 | {"name": "ForceDirectedLayout", "size": 8411}, 358 | {"name": "IcicleTreeLayout", "size": 4864}, 359 | {"name": "IndentedTreeLayout", "size": 3174}, 360 | {"name": "Layout", "size": 7881}, 361 | {"name": "NodeLinkTreeLayout", "size": 12870}, 362 | {"name": "PieLayout", "size": 2728}, 363 | {"name": "RadialTreeLayout", "size": 12348}, 364 | {"name": "RandomLayout", "size": 870}, 365 | {"name": "StackedAreaLayout", "size": 9121}, 366 | {"name": "TreeMapLayout", "size": 9191} 367 | ] 368 | }, 369 | {"name": "Operator", "size": 2490}, 370 | {"name": "OperatorList", "size": 5248}, 371 | {"name": "OperatorSequence", "size": 4190}, 372 | {"name": "OperatorSwitch", "size": 2581}, 373 | {"name": "SortOperator", "size": 2023} 374 | ] 375 | }, 376 | {"name": "Visualization", "size": 16540} 377 | ] 378 | } 379 | ] 380 | } -------------------------------------------------------------------------------- /example/truncate-labels/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 31 | 32 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "sunburst-chart", 3 | "version": "1.21.4", 4 | "description": "Sunburst interactive chart web component for visualizing hierarchical data", 5 | "license": "MIT", 6 | "type": "module", 7 | "unpkg": "dist/sunburst-chart.min.js", 8 | "jsdelivr": "dist/sunburst-chart.min.js", 9 | "main": "dist/sunburst-chart.mjs", 10 | "module": "dist/sunburst-chart.mjs", 11 | "types": "dist/sunburst-chart.d.ts", 12 | "exports": { 13 | "types": "./dist/sunburst-chart.d.ts", 14 | "umd": "./dist/sunburst-chart.min.js", 15 | "default": "./dist/sunburst-chart.mjs" 16 | }, 17 | "repository": { 18 | "type": "git", 19 | "url": "git+https://github.com/vasturiano/sunburst-chart.git" 20 | }, 21 | "homepage": "https://github.com/vasturiano/sunburst-chart", 22 | "keywords": [ 23 | "d3", 24 | "d3-module", 25 | "sunburst", 26 | "hierarchical", 27 | "graph", 28 | "svg" 29 | ], 30 | "author": { 31 | "name": "Vasco Asturiano", 32 | "url": "https://github.com/vasturiano" 33 | }, 34 | "bugs": { 35 | "url": "https://github.com/vasturiano/sunburst-chart/issues" 36 | }, 37 | "files": [ 38 | "dist/**/*" 39 | ], 40 | "scripts": { 41 | "build": "rimraf dist && rollup -c", 42 | "dev": "rollup -w -c rollup.config.dev.js", 43 | "prepare": "npm run build" 44 | }, 45 | "dependencies": { 46 | "accessor-fn": "1", 47 | "d3-hierarchy": "1 - 3", 48 | "d3-interpolate": "1 - 3", 49 | "d3-path": "1 - 3", 50 | "d3-scale": "1 - 4", 51 | "d3-selection": "2 - 3", 52 | "d3-shape": "1 - 3", 53 | "d3-transition": "2 - 3", 54 | "float-tooltip": "1", 55 | "kapsule": "^1.16" 56 | }, 57 | "devDependencies": { 58 | "@babel/core": "^7.26.10", 59 | "@babel/preset-env": "^7.26.9", 60 | "@rollup/plugin-babel": "^6.0.4", 61 | "@rollup/plugin-commonjs": "^28.0.3", 62 | "@rollup/plugin-node-resolve": "^16.0.1", 63 | "@rollup/plugin-terser": "^0.4.4", 64 | "postcss": "^8.5.3", 65 | "rimraf": "^6.0.1", 66 | "rollup": "^4.36.0", 67 | "rollup-plugin-dts": "^6.2.0", 68 | "rollup-plugin-postcss": "^4.0.2", 69 | "typescript": "^5.8.2" 70 | }, 71 | "engines": { 72 | "node": ">=12" 73 | } 74 | } 75 | -------------------------------------------------------------------------------- /rollup.config.dev.js: -------------------------------------------------------------------------------- 1 | import buildConfig from './rollup.config.js'; 2 | 3 | // use first output of first config block for dev 4 | const config = Array.isArray(buildConfig) ? buildConfig[0] : buildConfig; 5 | Array.isArray(config.output) && (config.output = config.output[0]); 6 | 7 | export default config; -------------------------------------------------------------------------------- /rollup.config.js: -------------------------------------------------------------------------------- 1 | import resolve from '@rollup/plugin-node-resolve'; 2 | import commonJs from '@rollup/plugin-commonjs'; 3 | import postCss from 'rollup-plugin-postcss'; 4 | import babel from '@rollup/plugin-babel'; 5 | import terser from "@rollup/plugin-terser"; 6 | import dts from 'rollup-plugin-dts'; 7 | 8 | import pkg from './package.json' with { type: 'json' }; 9 | const { name, homepage, version, dependencies, peerDependencies } = pkg; 10 | 11 | const umdConf = { 12 | format: 'umd', 13 | name: 'Sunburst', 14 | banner: `// Version ${version} ${name} - ${homepage}` 15 | }; 16 | 17 | export default [ 18 | { 19 | input: 'src/index.js', 20 | output: [ 21 | { // umd 22 | ...umdConf, 23 | file: `dist/${name}.js`, 24 | sourcemap: true, 25 | }, 26 | { // minify 27 | ...umdConf, 28 | file: `dist/${name}.min.js`, 29 | plugins: [terser({ 30 | output: { comments: '/Version/' } 31 | })] 32 | } 33 | ], 34 | plugins: [ 35 | postCss(), 36 | resolve(), 37 | commonJs(), 38 | babel({ exclude: 'node_modules/**' }) 39 | ] 40 | }, 41 | { // ES module 42 | input: 'src/index.js', 43 | output: [ 44 | { 45 | format: 'es', 46 | file: `dist/${name}.mjs` 47 | } 48 | ], 49 | external: [...Object.keys(dependencies || {}), ...Object.keys(peerDependencies || {})], 50 | plugins: [ 51 | postCss(), 52 | babel() 53 | ] 54 | }, 55 | { // expose TS declarations 56 | input: 'src/index.d.ts', 57 | output: [{ 58 | file: `dist/${name}.d.ts`, 59 | format: 'es' 60 | }], 61 | plugins: [dts()] 62 | } 63 | ]; 64 | -------------------------------------------------------------------------------- /src/index.d.ts: -------------------------------------------------------------------------------- 1 | export interface ConfigOptions { } 2 | 3 | type Accessor = Out | string | ((obj: In) => Out); 4 | type NodeAccessor = Accessor; 5 | 6 | export interface Node { 7 | __dataNode?: DataNode; 8 | name?: string; 9 | children?: Node[]; 10 | [key: string]: any; 11 | } 12 | 13 | export interface DataNode { 14 | data: Node; 15 | id: number; 16 | value: number; 17 | depth: number; 18 | height: number; 19 | parent: DataNode | null; 20 | children?: DataNode[]; 21 | x0?: number; 22 | y0?: number; 23 | x1?: number; 24 | y1?: number; 25 | } 26 | 27 | type Orientation = 'angular' | 'radial' | 'auto'; 28 | 29 | type CompareFn = (a: ItemType, b: ItemType) => number; 30 | 31 | type TooltipFn = (node: Node, dataNode: DataNode) => string; 32 | 33 | type NonFittingLabelFn = (label: string, availablePx: number, node: DataNode) => string | null | undefined | false; 34 | 35 | declare class SunburstChart { 36 | constructor(element: HTMLElement, configOptions?: ConfigOptions); 37 | 38 | width(): number; 39 | width(width: number): SunburstChart; 40 | height(): number; 41 | height(height: number): SunburstChart; 42 | 43 | data(): Node; 44 | data(rootNode: Node): SunburstChart; 45 | children(): NodeAccessor; 46 | children(childrenAccessor: NodeAccessor): SunburstChart; 47 | label(): NodeAccessor; 48 | label(textAccessor: NodeAccessor): SunburstChart; 49 | size(): NodeAccessor; 50 | size(sizeAccessor: NodeAccessor): SunburstChart; 51 | color(): NodeAccessor; 52 | color(colorAccessor: NodeAccessor): SunburstChart; 53 | strokeColor(): NodeAccessor; 54 | strokeColor(colorAccessor: NodeAccessor): SunburstChart; 55 | nodeClassName(): NodeAccessor; 56 | nodeClassName(nodeAccessor: NodeAccessor): SunburstChart; 57 | 58 | minSliceAngle(): number; 59 | minSliceAngle(degrees: number): SunburstChart; 60 | maxLevels(): number; 61 | maxLevels(degrees: number): SunburstChart; 62 | excludeRoot(): boolean; 63 | excludeRoot(exclude: boolean): SunburstChart; 64 | centerRadius(): number; 65 | centerRadius(radiusRatio: number): SunburstChart; 66 | radiusScaleExponent(): number; 67 | radiusScaleExponent(exponent: number): SunburstChart; 68 | 69 | sort(): CompareFn | null; 70 | sort(cmpFn: CompareFn | null): SunburstChart; 71 | 72 | showLabels(): boolean; 73 | showLabels(show: boolean): SunburstChart; 74 | labelOrientation(): Orientation; 75 | labelOrientation(orientation: Orientation): SunburstChart; 76 | handleNonFittingLabel(): NonFittingLabelFn | null; 77 | handleNonFittingLabel(handleFn: NonFittingLabelFn | null): SunburstChart; 78 | showTooltip(): (node: Node) => boolean; 79 | showTooltip(showTooltipFn: (node: Node) => boolean): SunburstChart; 80 | tooltipTitle(): TooltipFn; 81 | tooltipTitle(fn: TooltipFn): SunburstChart; 82 | tooltipContent(): TooltipFn; 83 | tooltipContent(fn: TooltipFn): SunburstChart; 84 | 85 | onClick(cb: ((node: Node, event: MouseEvent) => void) | null): SunburstChart; 86 | onRightClick(cb: ((node: Node, event: MouseEvent) => void) | null): SunburstChart; 87 | onHover(cb: ((node: Node | null, event: MouseEvent) => void) | null): SunburstChart; 88 | 89 | focusOnNode(): Node | null; 90 | focusOnNode(node: Node | null): SunburstChart; 91 | 92 | transitionDuration(): number; 93 | transitionDuration(duration: number): SunburstChart; 94 | } 95 | 96 | export default SunburstChart; 97 | -------------------------------------------------------------------------------- /src/index.js: -------------------------------------------------------------------------------- 1 | import './sunburst.css'; 2 | 3 | export { default } from './sunburst'; -------------------------------------------------------------------------------- /src/sunburst.css: -------------------------------------------------------------------------------- 1 | .sunburst-viz .slice path { 2 | cursor: pointer; 3 | } 4 | 5 | .sunburst-viz text { 6 | dominant-baseline: middle; 7 | text-anchor: middle; 8 | pointer-events: none; 9 | fill: #222; 10 | } 11 | 12 | .sunburst-viz .text-contour { 13 | fill: none; 14 | stroke: white; 15 | stroke-linejoin: 'round'; 16 | } 17 | 18 | .sunburst-viz .main-arc { 19 | stroke-width: 1px; 20 | transition: opacity .4s; 21 | } 22 | 23 | .sunburst-viz .main-arc:hover { 24 | opacity: 0.85; 25 | transition: opacity .05s; 26 | } 27 | 28 | .sunburst-viz .hidden-arc { 29 | fill: none; 30 | } 31 | 32 | .sunburst-viz .tooltip-title { 33 | font-weight: bold; 34 | text-align: center; 35 | margin-bottom: 5px; 36 | } 37 | 38 | .sunburst-viz { 39 | position: relative; 40 | } 41 | -------------------------------------------------------------------------------- /src/sunburst.js: -------------------------------------------------------------------------------- 1 | import { select as d3Select } from 'd3-selection'; 2 | import { scaleLinear, scalePow } from 'd3-scale'; 3 | import { hierarchy as d3Hierarchy, partition as d3Partition } from 'd3-hierarchy'; 4 | import { arc as d3Arc } from 'd3-shape'; 5 | import { path as d3Path } from 'd3-path'; 6 | import { interpolate as d3Interpolate } from 'd3-interpolate'; 7 | import { transition as d3Transition } from 'd3-transition'; 8 | import Kapsule from 'kapsule'; 9 | import accessorFn from 'accessor-fn'; 10 | import Tooltip from 'float-tooltip'; 11 | import { measureTextWidth } from './text'; 12 | 13 | const TEXT_FONTSIZE = 12; 14 | const TEXT_STROKE_WIDTH = 5; 15 | 16 | export default Kapsule({ 17 | 18 | props: { 19 | width: { default: window.innerWidth }, 20 | height: { default: window.innerHeight }, 21 | data: { onChange(_, state) { state.needsReparse = true }}, 22 | children: { default: 'children', onChange(_, state) { state.needsReparse = true }}, 23 | sort: { onChange(_, state) { state.needsReparse = true }}, 24 | label: { default: d => d.name }, 25 | labelOrientation: { default: 'auto' }, // angular, radial, auto 26 | size: { default: 'value', onChange(_, state) { state.needsReparse = true }}, 27 | color: { default: d => 'lightgrey' }, 28 | strokeColor: { default: d => 'white' }, 29 | nodeClassName: {}, // Additional css classes to add on each slice node 30 | minSliceAngle: { default: .2 }, 31 | maxLevels: {}, 32 | excludeRoot: { default: false, onChange(_, state) { state.needsReparse = true }}, 33 | centerRadius: { default: 0.1 }, 34 | radiusScaleExponent: { default: 0.5 }, // radius decreases quadratically outwards to preserve area 35 | showLabels: { default: true }, 36 | handleNonFittingLabel: {}, 37 | tooltipContent: { default: d => '', triggerUpdate: false }, 38 | tooltipTitle: { default: null, triggerUpdate: false }, 39 | showTooltip: { default: d => true, triggerUpdate: false}, 40 | focusOnNode: { 41 | onChange: function(d, state) { 42 | if (d && state.initialised) { 43 | moveStackToFront(d.__dataNode); 44 | } 45 | 46 | function moveStackToFront(elD) { 47 | state.svg.selectAll('.slice').filter(d => d === elD) 48 | .each(function(d) { 49 | this.parentNode.appendChild(this); 50 | if (d.parent) { moveStackToFront(d.parent); } 51 | }) 52 | } 53 | } 54 | }, 55 | onClick: { triggerUpdate: false }, 56 | onRightClick: { triggerUpdate: false }, 57 | onHover: { triggerUpdate: false }, 58 | transitionDuration: { default: 750, triggerUpdate: false } 59 | }, 60 | 61 | methods: { 62 | _parseData: function(state) { 63 | if (state.data) { 64 | const hierData = d3Hierarchy(state.data, accessorFn(state.children)) 65 | .sum(accessorFn(state.size)); 66 | 67 | if (state.sort) { 68 | hierData.sort(state.sort); 69 | } 70 | 71 | d3Partition().padding(0)(hierData); 72 | 73 | if (state.excludeRoot) { 74 | // re-scale y values if excluding root 75 | const yScale = scaleLinear() 76 | .domain([hierData.y1 - hierData.y0, 1]); 77 | 78 | hierData.descendants().forEach(d => { 79 | d.y0 = yScale(d.y0); 80 | d.y1 = yScale(d.y1); 81 | }); 82 | } 83 | 84 | hierData.descendants().forEach((d, i) => { 85 | d.id = i; // Mark each node with a unique ID 86 | d.data.__dataNode = d; // Dual-link data nodes 87 | }); 88 | 89 | state.layoutData = hierData.descendants(); 90 | } 91 | } 92 | }, 93 | 94 | init: function(domNode, state) { 95 | state.chartId = Math.round(Math.random() * 1e12); // Unique ID for DOM elems 96 | 97 | state.radiusScale = scalePow(); 98 | state.angleScale = scaleLinear() 99 | .domain([0, 10]) // For initial build-in animation 100 | .range([0, 2 * Math.PI]) 101 | .clamp(true); 102 | 103 | state.arc = d3Arc() 104 | .startAngle(d => state.angleScale(d.x0)) 105 | .endAngle(d => state.angleScale(d.x1)) 106 | .innerRadius(d => Math.max(0, state.radiusScale(d.y0))) 107 | .outerRadius(d => Math.max(0, state.radiusScale(d.y1))); 108 | 109 | const el = d3Select(domNode) 110 | .append('div').attr('class', 'sunburst-viz'); 111 | 112 | state.svg = el.append('svg'); 113 | state.canvas = state.svg.append('g') 114 | .style('font-family', 'sans-serif') 115 | .style('font-size', `${TEXT_FONTSIZE}px`); 116 | 117 | state.tooltip = new Tooltip(el); 118 | 119 | // Reset focus by clicking on canvas 120 | state.svg 121 | .on('click', ev => (state.onClick || this.focusOnNode)(null, ev)) // By default reset zoom when clicking on canvas 122 | .on('contextmenu', ev => { 123 | if (state.onRightClick) { // By default do nothing when right-clicking on canvas 124 | state.onRightClick(null, ev); 125 | ev.preventDefault(); 126 | } 127 | }) 128 | .on('mouseover', ev => state.onHover && state.onHover(null, ev)); 129 | 130 | }, 131 | 132 | update: function(state) { 133 | if (state.needsReparse) { 134 | this._parseData(); 135 | state.needsReparse = false; 136 | } 137 | 138 | const maxRadius = (Math.min(state.width, state.height) / 2); 139 | state.radiusScale.range([maxRadius * Math.max(0, Math.min(1, state.centerRadius)), maxRadius]); 140 | 141 | state.radiusScaleExponent > 0 && state.radiusScale.exponent(state.radiusScaleExponent); 142 | 143 | state.svg 144 | .style('width', state.width + 'px') 145 | .style('height', state.height + 'px') 146 | .attr('viewBox', `${-state.width/2} ${-state.height/2} ${state.width} ${state.height}`); 147 | 148 | if (!state.layoutData) return; 149 | 150 | const focusD = 151 | (state.focusOnNode && state.focusOnNode.__dataNode.y0 >= 0 && state.focusOnNode.__dataNode) 152 | || { x0: 0, x1: 1, y0: 0, y1: 1 }; 153 | 154 | const slice = state.canvas.selectAll('.slice') 155 | .data( 156 | state.layoutData 157 | .filter(d => // Show only slices with a large enough angle and within the max levels 158 | d.x1 > focusD.x0 159 | && d.x0 < focusD.x1 160 | && (d.x1-d.x0)/(focusD.x1-focusD.x0) > state.minSliceAngle/360 161 | && (!state.maxLevels || d.depth - (focusD.depth || (state.excludeRoot ? 1 : 0)) < state.maxLevels) 162 | && (d.y0 >=0 || focusD.parent) // hide negative layers on top level 163 | ), 164 | d => d.id 165 | ); 166 | 167 | const nameOf = accessorFn(state.label); 168 | const colorOf = accessorFn(state.color); 169 | const strokeColorOf = accessorFn(state.strokeColor); 170 | const nodeClassNameOf = accessorFn(state.nodeClassName); 171 | const transition = d3Transition().duration(state.transitionDuration); 172 | 173 | const levelYDelta = state.layoutData[0].y1 - state.layoutData[0].y0; 174 | const maxY = Math.min(1, focusD.y0 + levelYDelta * Math.min( 175 | focusD.hasOwnProperty('height') ? focusD.height + 1 : Infinity, 176 | state.maxLevels || Infinity 177 | )); 178 | 179 | // Apply zoom 180 | state.svg.transition(transition) 181 | .tween('scale', () => { 182 | const xd = d3Interpolate(state.angleScale.domain(), [focusD.x0, focusD.x1]); 183 | const yd = d3Interpolate(state.radiusScale.domain(), [focusD.y0, maxY]); 184 | return t => { 185 | state.angleScale.domain(xd(t)); 186 | state.radiusScale.domain(yd(t)); 187 | }; 188 | }); 189 | 190 | // Exiting 191 | const oldSlice = slice.exit().transition(transition).remove(); 192 | oldSlice.select('path.main-arc').attrTween('d', d => () => state.arc(d)); 193 | oldSlice.select('path.hidden-arc').attrTween('d', d => () => middleArcLine(d)); 194 | 195 | // Entering 196 | const newSlice = slice.enter().append('g') 197 | .style('opacity', 0) 198 | .on('click', (ev, d) => { 199 | ev.stopPropagation(); 200 | (state.onClick || this.focusOnNode)(d.data, ev); 201 | }) 202 | .on('contextmenu', (ev, d) => { 203 | ev.stopPropagation(); 204 | if (state.onRightClick) { 205 | state.onRightClick(d.data, ev); 206 | ev.preventDefault(); 207 | } 208 | }) 209 | .on('mouseover', (ev, d) => { 210 | ev.stopPropagation(); 211 | state.onHover && state.onHover(d.data, ev); 212 | 213 | state.tooltip.content(!!state.showTooltip(d.data, d) && `
${ 214 | state.tooltipTitle 215 | ? state.tooltipTitle(d.data, d) 216 | : getNodeStack(d) 217 | .slice(state.excludeRoot ? 1 : 0) 218 | .map(d => nameOf(d.data)) 219 | .join(' → ') 220 | }
${state.tooltipContent(d.data, d)}`); 221 | }) 222 | .on('mouseout', () => state.tooltip.content(false)); 223 | 224 | newSlice.append('path') 225 | .attr('class', 'main-arc') 226 | .style('stroke', d => strokeColorOf(d.data, d.parent)) 227 | .style('fill', d => colorOf(d.data, d.parent)); 228 | 229 | newSlice.append('path') 230 | .attr('class', 'hidden-arc') 231 | .attr('id', d => `hidden-arc-${state.chartId}-${d.id}`); 232 | 233 | // angular label 234 | const angularLabel = newSlice.append('text') 235 | .attr('class', 'angular-label'); 236 | 237 | // Add white contour 238 | angularLabel.append('textPath') 239 | .attr('class', 'text-contour') 240 | .attr('startOffset','50%') 241 | .attr('xlink:href', d => `#hidden-arc-${state.chartId}-${d.id}` ); 242 | 243 | angularLabel.append('textPath') 244 | .attr('class', 'text-stroke') 245 | .attr('startOffset','50%') 246 | .attr('xlink:href', d => `#hidden-arc-${state.chartId}-${d.id}` ); 247 | 248 | // radial label 249 | const radialLabel = newSlice.append('g').attr('class', 'radial-label'); 250 | radialLabel.append('text').attr('class', 'text-contour'); // white contour 251 | radialLabel.append('text').attr('class', 'text-stroke'); 252 | 253 | // white contour 254 | newSlice.selectAll('.text-contour') 255 | .style('stroke-width', `${TEXT_STROKE_WIDTH}px`); 256 | 257 | // Entering + Updating 258 | const allSlices = slice.merge(newSlice); 259 | 260 | allSlices 261 | .style('opacity', 1) 262 | .attr('class', d => [ 263 | 'slice', 264 | ...(`${nodeClassNameOf(d.data) || ''}`.split(' ').map(str => str.trim())) 265 | ].filter(s => s).join(' ')); 266 | 267 | allSlices.select('path.main-arc').transition(transition) 268 | .attrTween('d', d => () => state.arc(d)) 269 | .style('stroke', d => strokeColorOf(d.data, d.parent)) 270 | .style('fill', d => colorOf(d.data, d.parent)); 271 | 272 | const computeAngularLabels = state.showLabels && ['angular', 'auto'].includes(state.labelOrientation.toLowerCase()); 273 | const computeRadialLabels = state.showLabels && ['radial', 'auto'].includes(state.labelOrientation.toLowerCase()); 274 | 275 | if (computeAngularLabels) { 276 | allSlices.select('path.hidden-arc').transition(transition) 277 | .attrTween('d', d => () => middleArcLine(d)); 278 | } 279 | 280 | // Ensure propagation of data to labels children 281 | allSlices.select('text.angular-label').select('textPath.text-contour'); 282 | allSlices.select('text.angular-label').select('textPath.text-stroke'); 283 | allSlices.select('g.radial-label').select('text.text-contour'); 284 | allSlices.select('g.radial-label').select('text.text-stroke'); 285 | 286 | // Label processing 287 | const getLabelMeta = d => { 288 | if (!state.showLabels) return { label: '', fits: false }; 289 | 290 | const isRadial = (state.labelOrientation === 'auto' 291 | ? autoPickLabelOrientation(d) 292 | : state.labelOrientation) !== 'angular'; 293 | 294 | let label = nameOf(d.data); 295 | let fits = isRadial ? radialTextFits(d) : angularTextFits(d); 296 | 297 | if (!fits && state.handleNonFittingLabel) { 298 | const availableSpace = isRadial ? getAvailableLabelRadialSpace(d) : getAvailableLabelAngularSpace(d); 299 | const newLabel = state.handleNonFittingLabel(label, availableSpace, d); 300 | if (newLabel) { 301 | label = newLabel; 302 | fits = true; 303 | } 304 | } 305 | return { isRadial, label, fits }; 306 | }; 307 | const labelMetaCache = new Map(); 308 | 309 | // Show/hide labels 310 | allSlices.select('.angular-label') 311 | .transition(transition) 312 | .styleTween('display', d => () => { 313 | labelMetaCache.set(d, getLabelMeta(d)); // cache label settings 314 | 315 | const { isRadial, fits } = labelMetaCache.get(d); 316 | return computeAngularLabels && !isRadial && fits ? null : 'none'; 317 | }); 318 | 319 | allSlices.select('.radial-label') 320 | .transition(transition) 321 | .styleTween('display', d => () => { 322 | const { isRadial, fits } = labelMetaCache.get(d); 323 | return computeRadialLabels && isRadial && fits ? null : 'none'; 324 | }); 325 | 326 | // Set labels 327 | computeAngularLabels && allSlices.selectAll('text.angular-label').selectAll('textPath') 328 | .transition(transition) 329 | .textTween(d => () => labelMetaCache.get(d).label); 330 | 331 | computeRadialLabels && allSlices.selectAll('g.radial-label').selectAll('text') 332 | .transition(transition) 333 | .textTween(d => () => labelMetaCache.get(d).label) 334 | .attrTween('transform', d => () => radialTextTransform(d)); 335 | 336 | // 337 | 338 | function middleArcLine(d) { 339 | const halfPi = Math.PI/2; 340 | const angles = [state.angleScale(d.x0) - halfPi, state.angleScale(d.x1) - halfPi]; 341 | const r = Math.max(0, (state.radiusScale(d.y0) + state.radiusScale(d.y1)) / 2); 342 | 343 | if (!r || !(angles[1] - angles[0])) return ''; 344 | 345 | const middleAngle = (angles[1] + angles[0]) / 2; 346 | const invertDirection = middleAngle > 0 && middleAngle < Math.PI; // On lower quadrants write text ccw 347 | if (invertDirection) { angles.reverse(); } 348 | 349 | const path = d3Path(); 350 | path.arc(0, 0, r, angles[0], angles[1], invertDirection); 351 | return path.toString(); 352 | } 353 | 354 | function radialTextTransform(d) { 355 | const middleAngle = (state.angleScale(d.x0) + state.angleScale(d.x1) - Math.PI) / 2; 356 | const r = Math.max(0, (state.radiusScale(d.y0) + state.radiusScale(d.y1)) / 2); 357 | 358 | const x = r * Math.cos(middleAngle); 359 | const y = r * Math.sin(middleAngle); 360 | let rot = middleAngle * 180 / Math.PI; 361 | 362 | middleAngle > Math.PI / 2 && middleAngle < Math.PI * 3/2 && (rot += 180); // prevent upside down text 363 | 364 | return `translate(${x}, ${y}) rotate(${rot})`; 365 | } 366 | 367 | function getAvailableLabelAngularSpace(d) { 368 | const deltaAngle = state.angleScale(d.x1) - state.angleScale(d.x0); 369 | const r = Math.max(0, (state.radiusScale(d.y0) + state.radiusScale(d.y1)) / 2); 370 | return r * deltaAngle; 371 | } 372 | 373 | function getAvailableLabelRadialSpace(d) { 374 | return state.radiusScale(d.y1) - state.radiusScale(d.y0); 375 | } 376 | 377 | function angularTextFits(d) { 378 | return measureTextWidth(nameOf(d.data).toString(), TEXT_FONTSIZE, { strokeWidth: TEXT_STROKE_WIDTH }) < getAvailableLabelAngularSpace(d); 379 | } 380 | 381 | function radialTextFits(d) { 382 | const availableHeight = state.radiusScale(d.y0) * (state.angleScale(d.x1) - state.angleScale(d.x0)); 383 | if (availableHeight < TEXT_FONTSIZE + TEXT_STROKE_WIDTH) return false; // not enough angular space 384 | 385 | return measureTextWidth(nameOf(d.data).toString(), TEXT_FONTSIZE, { strokeWidth: TEXT_STROKE_WIDTH }) < getAvailableLabelRadialSpace(d); 386 | } 387 | 388 | function autoPickLabelOrientation(d) { 389 | // prefer mode that keeps text most horizontal 390 | const angle = ((state.angleScale(d.x0) + state.angleScale(d.x1)) / 2)%Math.PI; 391 | const preferRadial = angle > Math.PI / 4 && angle < Math.PI * 3/4; 392 | 393 | let orientation = preferRadial 394 | ? (radialTextFits(d) ? 'radial' : angularTextFits(d) ? 'angular' : null) 395 | : (angularTextFits(d) ? 'angular' : radialTextFits(d) ? 'radial' : null); 396 | 397 | if (!orientation) { 398 | const availableArcWidth = state.radiusScale(d.y0) * (state.angleScale(d.x1) - state.angleScale(d.x0)); 399 | if (availableArcWidth < TEXT_FONTSIZE + TEXT_STROKE_WIDTH) { 400 | // not enough space for radial text, choose angular 401 | orientation = 'angular'; 402 | } else { 403 | const angularSpace = getAvailableLabelAngularSpace(d); 404 | const radialSpace = getAvailableLabelRadialSpace(d); 405 | orientation = angularSpace < radialSpace ? 'radial' : 'angular'; 406 | } 407 | } 408 | 409 | return orientation; 410 | } 411 | 412 | function getNodeStack(d) { 413 | const stack = []; 414 | let curNode = d; 415 | while (curNode) { 416 | stack.unshift(curNode); 417 | curNode = curNode.parent; 418 | } 419 | return stack; 420 | } 421 | } 422 | }); 423 | -------------------------------------------------------------------------------- /src/text.js: -------------------------------------------------------------------------------- 1 | const measureTextWidth = ( 2 | text, 3 | fontSize = 16, 4 | { strokeWidth = 1, fontFamily = 'sans-serif' } = {}, 5 | ) => { 6 | const ctx = new OffscreenCanvas(0, 0).getContext('2d'); 7 | if (!ctx) return 0; 8 | 9 | ctx.font = `${fontSize}px ${fontFamily}`; 10 | return ctx.measureText(text).width + strokeWidth; 11 | }; 12 | 13 | const ellipsisText = ( 14 | availableWidthPx, 15 | text, 16 | fontSize, 17 | { minRealChars = 4, ...measureCfg } = {}, 18 | ) => { 19 | const fullTextWidth = measureTextWidth(text, fontSize, measureCfg); 20 | if (fullTextWidth <= availableWidthPx) return text; 21 | 22 | const elChar = '…'; 23 | const textSpace = 24 | availableWidthPx - measureTextWidth(elChar, fontSize, measureCfg); 25 | 26 | const getCharsWidth = numChars => measureTextWidth(text.slice(0, numChars), fontSize, measureCfg); 27 | 28 | let numChars = Math.ceil(text.length * (textSpace / fullTextWidth)); 29 | while (getCharsWidth(numChars) < textSpace && numChars < text.length) numChars++; 30 | while (getCharsWidth(numChars) > textSpace && numChars > 0) numChars--; 31 | 32 | return numChars <= minRealChars ? '' : `${text.slice(0, numChars)}${elChar}`; 33 | }; 34 | 35 | const getFontSizeToFit = ( 36 | availableWidthPx, 37 | text, 38 | { minFontSize = 5, maxFontSize = 18, ...measureCfg } = {}, 39 | ) => { 40 | const fontSize = 41 | (availableWidthPx / measureTextWidth(text, 10, measureCfg)) * 10; 42 | return fontSize < minFontSize ? 0 : Math.min(maxFontSize, fontSize); 43 | }; 44 | 45 | export { measureTextWidth, ellipsisText, getFontSizeToFit }; 46 | -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- 1 | # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. 2 | # yarn lockfile v1 3 | 4 | 5 | "@ampproject/remapping@^2.2.0": 6 | version "2.3.0" 7 | resolved "https://registry.yarnpkg.com/@ampproject/remapping/-/remapping-2.3.0.tgz#ed441b6fa600072520ce18b43d2c8cc8caecc7f4" 8 | integrity sha512-30iZtAPgz+LTIYoeivqYo853f02jBYSd5uGnGpkFV0M3xOt9aN73erkgYAmZU43x4VfqcnLxW9Kpg3R5LC4YYw== 9 | dependencies: 10 | "@jridgewell/gen-mapping" "^0.3.5" 11 | "@jridgewell/trace-mapping" "^0.3.24" 12 | 13 | "@babel/code-frame@^7.26.2": 14 | version "7.26.2" 15 | resolved "https://registry.yarnpkg.com/@babel/code-frame/-/code-frame-7.26.2.tgz#4b5fab97d33338eff916235055f0ebc21e573a85" 16 | integrity sha512-RJlIHRueQgwWitWgF8OdFYGZX328Ax5BCemNGlqHfplnRT9ESi8JkFlvaVYbS+UubVY6dpv87Fs2u5M29iNFVQ== 17 | dependencies: 18 | "@babel/helper-validator-identifier" "^7.25.9" 19 | js-tokens "^4.0.0" 20 | picocolors "^1.0.0" 21 | 22 | "@babel/compat-data@^7.22.6", "@babel/compat-data@^7.26.5", "@babel/compat-data@^7.26.8": 23 | version "7.26.8" 24 | resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.26.8.tgz#821c1d35641c355284d4a870b8a4a7b0c141e367" 25 | integrity sha512-oH5UPLMWR3L2wEFLnFJ1TZXqHufiTKAiLfqw5zkhS4dKXLJ10yVztfil/twG8EDTA4F/tvVNw9nOl4ZMslB8rQ== 26 | 27 | "@babel/core@^7.26.10": 28 | version "7.26.10" 29 | resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.26.10.tgz#5c876f83c8c4dcb233ee4b670c0606f2ac3000f9" 30 | integrity sha512-vMqyb7XCDMPvJFFOaT9kxtiRh42GwlZEg1/uIgtZshS5a/8OaduUfCi7kynKgc3Tw/6Uo2D+db9qBttghhmxwQ== 31 | dependencies: 32 | "@ampproject/remapping" "^2.2.0" 33 | "@babel/code-frame" "^7.26.2" 34 | "@babel/generator" "^7.26.10" 35 | "@babel/helper-compilation-targets" "^7.26.5" 36 | "@babel/helper-module-transforms" "^7.26.0" 37 | "@babel/helpers" "^7.26.10" 38 | "@babel/parser" "^7.26.10" 39 | "@babel/template" "^7.26.9" 40 | "@babel/traverse" "^7.26.10" 41 | "@babel/types" "^7.26.10" 42 | convert-source-map "^2.0.0" 43 | debug "^4.1.0" 44 | gensync "^1.0.0-beta.2" 45 | json5 "^2.2.3" 46 | semver "^6.3.1" 47 | 48 | "@babel/generator@^7.26.10": 49 | version "7.26.10" 50 | resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.26.10.tgz#a60d9de49caca16744e6340c3658dfef6138c3f7" 51 | integrity sha512-rRHT8siFIXQrAYOYqZQVsAr8vJ+cBNqcVAY6m5V8/4QqzaPl+zDBe6cLEPRDuNOUf3ww8RfJVlOyQMoSI+5Ang== 52 | dependencies: 53 | "@babel/parser" "^7.26.10" 54 | "@babel/types" "^7.26.10" 55 | "@jridgewell/gen-mapping" "^0.3.5" 56 | "@jridgewell/trace-mapping" "^0.3.25" 57 | jsesc "^3.0.2" 58 | 59 | "@babel/helper-annotate-as-pure@^7.25.9": 60 | version "7.25.9" 61 | resolved "https://registry.yarnpkg.com/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.25.9.tgz#d8eac4d2dc0d7b6e11fa6e535332e0d3184f06b4" 62 | integrity sha512-gv7320KBUFJz1RnylIg5WWYPRXKZ884AGkYpgpWW02TH66Dl+HaC1t1CKd0z3R4b6hdYEcmrNZHUmfCP+1u3/g== 63 | dependencies: 64 | "@babel/types" "^7.25.9" 65 | 66 | "@babel/helper-compilation-targets@^7.22.6", "@babel/helper-compilation-targets@^7.25.9", "@babel/helper-compilation-targets@^7.26.5": 67 | version "7.26.5" 68 | resolved "https://registry.yarnpkg.com/@babel/helper-compilation-targets/-/helper-compilation-targets-7.26.5.tgz#75d92bb8d8d51301c0d49e52a65c9a7fe94514d8" 69 | integrity sha512-IXuyn5EkouFJscIDuFF5EsiSolseme1s0CZB+QxVugqJLYmKdxI1VfIBOst0SUu4rnk2Z7kqTwmoO1lp3HIfnA== 70 | dependencies: 71 | "@babel/compat-data" "^7.26.5" 72 | "@babel/helper-validator-option" "^7.25.9" 73 | browserslist "^4.24.0" 74 | lru-cache "^5.1.1" 75 | semver "^6.3.1" 76 | 77 | "@babel/helper-create-class-features-plugin@^7.25.9": 78 | version "7.26.9" 79 | resolved "https://registry.yarnpkg.com/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.26.9.tgz#d6f83e3039547fbb39967e78043cd3c8b7820c71" 80 | integrity sha512-ubbUqCofvxPRurw5L8WTsCLSkQiVpov4Qx0WMA+jUN+nXBK8ADPlJO1grkFw5CWKC5+sZSOfuGMdX1aI1iT9Sg== 81 | dependencies: 82 | "@babel/helper-annotate-as-pure" "^7.25.9" 83 | "@babel/helper-member-expression-to-functions" "^7.25.9" 84 | "@babel/helper-optimise-call-expression" "^7.25.9" 85 | "@babel/helper-replace-supers" "^7.26.5" 86 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 87 | "@babel/traverse" "^7.26.9" 88 | semver "^6.3.1" 89 | 90 | "@babel/helper-create-regexp-features-plugin@^7.18.6", "@babel/helper-create-regexp-features-plugin@^7.25.9": 91 | version "7.26.3" 92 | resolved "https://registry.yarnpkg.com/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.26.3.tgz#5169756ecbe1d95f7866b90bb555b022595302a0" 93 | integrity sha512-G7ZRb40uUgdKOQqPLjfD12ZmGA54PzqDFUv2BKImnC9QIfGhIHKvVML0oN8IUiDq4iRqpq74ABpvOaerfWdong== 94 | dependencies: 95 | "@babel/helper-annotate-as-pure" "^7.25.9" 96 | regexpu-core "^6.2.0" 97 | semver "^6.3.1" 98 | 99 | "@babel/helper-define-polyfill-provider@^0.6.3", "@babel/helper-define-polyfill-provider@^0.6.4": 100 | version "0.6.4" 101 | resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.6.4.tgz#15e8746368bfa671785f5926ff74b3064c291fab" 102 | integrity sha512-jljfR1rGnXXNWnmQg2K3+bvhkxB51Rl32QRaOTuwwjviGrHzIbSc8+x9CpraDtbT7mfyjXObULP4w/adunNwAw== 103 | dependencies: 104 | "@babel/helper-compilation-targets" "^7.22.6" 105 | "@babel/helper-plugin-utils" "^7.22.5" 106 | debug "^4.1.1" 107 | lodash.debounce "^4.0.8" 108 | resolve "^1.14.2" 109 | 110 | "@babel/helper-member-expression-to-functions@^7.25.9": 111 | version "7.25.9" 112 | resolved "https://registry.yarnpkg.com/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.25.9.tgz#9dfffe46f727005a5ea29051ac835fb735e4c1a3" 113 | integrity sha512-wbfdZ9w5vk0C0oyHqAJbc62+vet5prjj01jjJ8sKn3j9h3MQQlflEdXYvuqRWjHnM12coDEqiC1IRCi0U/EKwQ== 114 | dependencies: 115 | "@babel/traverse" "^7.25.9" 116 | "@babel/types" "^7.25.9" 117 | 118 | "@babel/helper-module-imports@^7.18.6", "@babel/helper-module-imports@^7.25.9": 119 | version "7.25.9" 120 | resolved "https://registry.yarnpkg.com/@babel/helper-module-imports/-/helper-module-imports-7.25.9.tgz#e7f8d20602ebdbf9ebbea0a0751fb0f2a4141715" 121 | integrity sha512-tnUA4RsrmflIM6W6RFTLFSXITtl0wKjgpnLgXyowocVPrbYrLUXSBXDgTs8BlbmIzIdlBySRQjINYs2BAkiLtw== 122 | dependencies: 123 | "@babel/traverse" "^7.25.9" 124 | "@babel/types" "^7.25.9" 125 | 126 | "@babel/helper-module-transforms@^7.25.9", "@babel/helper-module-transforms@^7.26.0": 127 | version "7.26.0" 128 | resolved "https://registry.yarnpkg.com/@babel/helper-module-transforms/-/helper-module-transforms-7.26.0.tgz#8ce54ec9d592695e58d84cd884b7b5c6a2fdeeae" 129 | integrity sha512-xO+xu6B5K2czEnQye6BHA7DolFFmS3LB7stHZFaOLb1pAwO1HWLS8fXA+eh0A2yIvltPVmx3eNNDBJA2SLHXFw== 130 | dependencies: 131 | "@babel/helper-module-imports" "^7.25.9" 132 | "@babel/helper-validator-identifier" "^7.25.9" 133 | "@babel/traverse" "^7.25.9" 134 | 135 | "@babel/helper-optimise-call-expression@^7.25.9": 136 | version "7.25.9" 137 | resolved "https://registry.yarnpkg.com/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.25.9.tgz#3324ae50bae7e2ab3c33f60c9a877b6a0146b54e" 138 | integrity sha512-FIpuNaz5ow8VyrYcnXQTDRGvV6tTjkNtCK/RYNDXGSLlUD6cBuQTSw43CShGxjvfBTfcUA/r6UhUCbtYqkhcuQ== 139 | dependencies: 140 | "@babel/types" "^7.25.9" 141 | 142 | "@babel/helper-plugin-utils@^7.0.0", "@babel/helper-plugin-utils@^7.18.6", "@babel/helper-plugin-utils@^7.22.5", "@babel/helper-plugin-utils@^7.25.9", "@babel/helper-plugin-utils@^7.26.5": 143 | version "7.26.5" 144 | resolved "https://registry.yarnpkg.com/@babel/helper-plugin-utils/-/helper-plugin-utils-7.26.5.tgz#18580d00c9934117ad719392c4f6585c9333cc35" 145 | integrity sha512-RS+jZcRdZdRFzMyr+wcsaqOmld1/EqTghfaBGQQd/WnRdzdlvSZ//kF7U8VQTxf1ynZ4cjUcYgjVGx13ewNPMg== 146 | 147 | "@babel/helper-remap-async-to-generator@^7.25.9": 148 | version "7.25.9" 149 | resolved "https://registry.yarnpkg.com/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.25.9.tgz#e53956ab3d5b9fb88be04b3e2f31b523afd34b92" 150 | integrity sha512-IZtukuUeBbhgOcaW2s06OXTzVNJR0ybm4W5xC1opWFFJMZbwRj5LCk+ByYH7WdZPZTt8KnFwA8pvjN2yqcPlgw== 151 | dependencies: 152 | "@babel/helper-annotate-as-pure" "^7.25.9" 153 | "@babel/helper-wrap-function" "^7.25.9" 154 | "@babel/traverse" "^7.25.9" 155 | 156 | "@babel/helper-replace-supers@^7.25.9", "@babel/helper-replace-supers@^7.26.5": 157 | version "7.26.5" 158 | resolved "https://registry.yarnpkg.com/@babel/helper-replace-supers/-/helper-replace-supers-7.26.5.tgz#6cb04e82ae291dae8e72335dfe438b0725f14c8d" 159 | integrity sha512-bJ6iIVdYX1YooY2X7w1q6VITt+LnUILtNk7zT78ykuwStx8BauCzxvFqFaHjOpW1bVnSUM1PN1f0p5P21wHxvg== 160 | dependencies: 161 | "@babel/helper-member-expression-to-functions" "^7.25.9" 162 | "@babel/helper-optimise-call-expression" "^7.25.9" 163 | "@babel/traverse" "^7.26.5" 164 | 165 | "@babel/helper-skip-transparent-expression-wrappers@^7.25.9": 166 | version "7.25.9" 167 | resolved "https://registry.yarnpkg.com/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.25.9.tgz#0b2e1b62d560d6b1954893fd2b705dc17c91f0c9" 168 | integrity sha512-K4Du3BFa3gvyhzgPcntrkDgZzQaq6uozzcpGbOO1OEJaI+EJdqWIMTLgFgQf6lrfiDFo5FU+BxKepI9RmZqahA== 169 | dependencies: 170 | "@babel/traverse" "^7.25.9" 171 | "@babel/types" "^7.25.9" 172 | 173 | "@babel/helper-string-parser@^7.25.9": 174 | version "7.25.9" 175 | resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.25.9.tgz#1aabb72ee72ed35789b4bbcad3ca2862ce614e8c" 176 | integrity sha512-4A/SCr/2KLd5jrtOMFzaKjVtAei3+2r/NChoBNoZ3EyP/+GlhoaEGoWOZUmFmoITP7zOJyHIMm+DYRd8o3PvHA== 177 | 178 | "@babel/helper-validator-identifier@^7.25.9": 179 | version "7.25.9" 180 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.25.9.tgz#24b64e2c3ec7cd3b3c547729b8d16871f22cbdc7" 181 | integrity sha512-Ed61U6XJc3CVRfkERJWDz4dJwKe7iLmmJsbOGu9wSloNSFttHV0I8g6UAgb7qnK5ly5bGLPd4oXZlxCdANBOWQ== 182 | 183 | "@babel/helper-validator-option@^7.25.9": 184 | version "7.25.9" 185 | resolved "https://registry.yarnpkg.com/@babel/helper-validator-option/-/helper-validator-option-7.25.9.tgz#86e45bd8a49ab7e03f276577f96179653d41da72" 186 | integrity sha512-e/zv1co8pp55dNdEcCynfj9X7nyUKUXoUEwfXqaZt0omVOmDe9oOTdKStH4GmAw6zxMFs50ZayuMfHDKlO7Tfw== 187 | 188 | "@babel/helper-wrap-function@^7.25.9": 189 | version "7.25.9" 190 | resolved "https://registry.yarnpkg.com/@babel/helper-wrap-function/-/helper-wrap-function-7.25.9.tgz#d99dfd595312e6c894bd7d237470025c85eea9d0" 191 | integrity sha512-ETzz9UTjQSTmw39GboatdymDq4XIQbR8ySgVrylRhPOFpsd+JrKHIuF0de7GCWmem+T4uC5z7EZguod7Wj4A4g== 192 | dependencies: 193 | "@babel/template" "^7.25.9" 194 | "@babel/traverse" "^7.25.9" 195 | "@babel/types" "^7.25.9" 196 | 197 | "@babel/helpers@^7.26.10": 198 | version "7.26.10" 199 | resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.26.10.tgz#6baea3cd62ec2d0c1068778d63cb1314f6637384" 200 | integrity sha512-UPYc3SauzZ3JGgj87GgZ89JVdC5dj0AoetR5Bw6wj4niittNyFh6+eOGonYvJ1ao6B8lEa3Q3klS7ADZ53bc5g== 201 | dependencies: 202 | "@babel/template" "^7.26.9" 203 | "@babel/types" "^7.26.10" 204 | 205 | "@babel/parser@^7.26.10", "@babel/parser@^7.26.9": 206 | version "7.26.10" 207 | resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.26.10.tgz#e9bdb82f14b97df6569b0b038edd436839c57749" 208 | integrity sha512-6aQR2zGE/QFi8JpDLjUZEPYOs7+mhKXm86VaKFiLP35JQwQb6bwUE+XbvkH0EptsYhbNBSUGaUBLKqxH1xSgsA== 209 | dependencies: 210 | "@babel/types" "^7.26.10" 211 | 212 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key@^7.25.9": 213 | version "7.25.9" 214 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-firefox-class-in-computed-class-key/-/plugin-bugfix-firefox-class-in-computed-class-key-7.25.9.tgz#cc2e53ebf0a0340777fff5ed521943e253b4d8fe" 215 | integrity sha512-ZkRyVkThtxQ/J6nv3JFYv1RYY+JT5BvU0y3k5bWrmuG4woXypRa4PXmm9RhOwodRkYFWqC0C0cqcJ4OqR7kW+g== 216 | dependencies: 217 | "@babel/helper-plugin-utils" "^7.25.9" 218 | "@babel/traverse" "^7.25.9" 219 | 220 | "@babel/plugin-bugfix-safari-class-field-initializer-scope@^7.25.9": 221 | version "7.25.9" 222 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-class-field-initializer-scope/-/plugin-bugfix-safari-class-field-initializer-scope-7.25.9.tgz#af9e4fb63ccb8abcb92375b2fcfe36b60c774d30" 223 | integrity sha512-MrGRLZxLD/Zjj0gdU15dfs+HH/OXvnw/U4jJD8vpcP2CJQapPEv1IWwjc/qMg7ItBlPwSv1hRBbb7LeuANdcnw== 224 | dependencies: 225 | "@babel/helper-plugin-utils" "^7.25.9" 226 | 227 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression@^7.25.9": 228 | version "7.25.9" 229 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.25.9.tgz#e8dc26fcd616e6c5bf2bd0d5a2c151d4f92a9137" 230 | integrity sha512-2qUwwfAFpJLZqxd02YW9btUCZHl+RFvdDkNfZwaIJrvB8Tesjsk8pEQkTvGwZXLqXUx/2oyY3ySRhm6HOXuCug== 231 | dependencies: 232 | "@babel/helper-plugin-utils" "^7.25.9" 233 | 234 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining@^7.25.9": 235 | version "7.25.9" 236 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.25.9.tgz#807a667f9158acac6f6164b4beb85ad9ebc9e1d1" 237 | integrity sha512-6xWgLZTJXwilVjlnV7ospI3xi+sl8lN8rXXbBD6vYn3UYDlGsag8wrZkKcSI8G6KgqKP7vNFaDgeDnfAABq61g== 238 | dependencies: 239 | "@babel/helper-plugin-utils" "^7.25.9" 240 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 241 | "@babel/plugin-transform-optional-chaining" "^7.25.9" 242 | 243 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.25.9": 244 | version "7.25.9" 245 | resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.25.9.tgz#de7093f1e7deaf68eadd7cc6b07f2ab82543269e" 246 | integrity sha512-aLnMXYPnzwwqhYSCyXfKkIkYgJ8zv9RK+roo9DkTXz38ynIhd9XCbN08s3MGvqL2MYGVUGdRQLL/JqBIeJhJBg== 247 | dependencies: 248 | "@babel/helper-plugin-utils" "^7.25.9" 249 | "@babel/traverse" "^7.25.9" 250 | 251 | "@babel/plugin-proposal-private-property-in-object@7.21.0-placeholder-for-preset-env.2": 252 | version "7.21.0-placeholder-for-preset-env.2" 253 | resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.21.0-placeholder-for-preset-env.2.tgz#7844f9289546efa9febac2de4cfe358a050bd703" 254 | integrity sha512-SOSkfJDddaM7mak6cPEpswyTRnuRltl429hMraQEglW+OkovnCzsiszTmsrlY//qLFjCpQDFRvjdm2wA5pPm9w== 255 | 256 | "@babel/plugin-syntax-import-assertions@^7.26.0": 257 | version "7.26.0" 258 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-assertions/-/plugin-syntax-import-assertions-7.26.0.tgz#620412405058efa56e4a564903b79355020f445f" 259 | integrity sha512-QCWT5Hh830hK5EQa7XzuqIkQU9tT/whqbDz7kuaZMHFl1inRRg7JnuAEOQ0Ur0QUl0NufCk1msK2BeY79Aj/eg== 260 | dependencies: 261 | "@babel/helper-plugin-utils" "^7.25.9" 262 | 263 | "@babel/plugin-syntax-import-attributes@^7.26.0": 264 | version "7.26.0" 265 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-import-attributes/-/plugin-syntax-import-attributes-7.26.0.tgz#3b1412847699eea739b4f2602c74ce36f6b0b0f7" 266 | integrity sha512-e2dttdsJ1ZTpi3B9UYGLw41hifAubg19AtCu/2I/F1QNVclOBr1dYpTdmdyZ84Xiz43BS/tCUkMAZNLv12Pi+A== 267 | dependencies: 268 | "@babel/helper-plugin-utils" "^7.25.9" 269 | 270 | "@babel/plugin-syntax-unicode-sets-regex@^7.18.6": 271 | version "7.18.6" 272 | resolved "https://registry.yarnpkg.com/@babel/plugin-syntax-unicode-sets-regex/-/plugin-syntax-unicode-sets-regex-7.18.6.tgz#d49a3b3e6b52e5be6740022317580234a6a47357" 273 | integrity sha512-727YkEAPwSIQTv5im8QHz3upqp92JTWhidIC81Tdx4VJYIte/VndKf1qKrfnnhPLiPghStWfvC/iFaMCQu7Nqg== 274 | dependencies: 275 | "@babel/helper-create-regexp-features-plugin" "^7.18.6" 276 | "@babel/helper-plugin-utils" "^7.18.6" 277 | 278 | "@babel/plugin-transform-arrow-functions@^7.25.9": 279 | version "7.25.9" 280 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.25.9.tgz#7821d4410bee5daaadbb4cdd9a6649704e176845" 281 | integrity sha512-6jmooXYIwn9ca5/RylZADJ+EnSxVUS5sjeJ9UPk6RWRzXCmOJCy6dqItPJFpw2cuCangPK4OYr5uhGKcmrm5Qg== 282 | dependencies: 283 | "@babel/helper-plugin-utils" "^7.25.9" 284 | 285 | "@babel/plugin-transform-async-generator-functions@^7.26.8": 286 | version "7.26.8" 287 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.26.8.tgz#5e3991135e3b9c6eaaf5eff56d1ae5a11df45ff8" 288 | integrity sha512-He9Ej2X7tNf2zdKMAGOsmg2MrFc+hfoAhd3po4cWfo/NWjzEAKa0oQruj1ROVUdl0e6fb6/kE/G3SSxE0lRJOg== 289 | dependencies: 290 | "@babel/helper-plugin-utils" "^7.26.5" 291 | "@babel/helper-remap-async-to-generator" "^7.25.9" 292 | "@babel/traverse" "^7.26.8" 293 | 294 | "@babel/plugin-transform-async-to-generator@^7.25.9": 295 | version "7.25.9" 296 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.25.9.tgz#c80008dacae51482793e5a9c08b39a5be7e12d71" 297 | integrity sha512-NT7Ejn7Z/LjUH0Gv5KsBCxh7BH3fbLTV0ptHvpeMvrt3cPThHfJfst9Wrb7S8EvJ7vRTFI7z+VAvFVEQn/m5zQ== 298 | dependencies: 299 | "@babel/helper-module-imports" "^7.25.9" 300 | "@babel/helper-plugin-utils" "^7.25.9" 301 | "@babel/helper-remap-async-to-generator" "^7.25.9" 302 | 303 | "@babel/plugin-transform-block-scoped-functions@^7.26.5": 304 | version "7.26.5" 305 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.26.5.tgz#3dc4405d31ad1cbe45293aa57205a6e3b009d53e" 306 | integrity sha512-chuTSY+hq09+/f5lMj8ZSYgCFpppV2CbYrhNFJ1BFoXpiWPnnAb7R0MqrafCpN8E1+YRrtM1MXZHJdIx8B6rMQ== 307 | dependencies: 308 | "@babel/helper-plugin-utils" "^7.26.5" 309 | 310 | "@babel/plugin-transform-block-scoping@^7.25.9": 311 | version "7.25.9" 312 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.25.9.tgz#c33665e46b06759c93687ca0f84395b80c0473a1" 313 | integrity sha512-1F05O7AYjymAtqbsFETboN1NvBdcnzMerO+zlMyJBEz6WkMdejvGWw9p05iTSjC85RLlBseHHQpYaM4gzJkBGg== 314 | dependencies: 315 | "@babel/helper-plugin-utils" "^7.25.9" 316 | 317 | "@babel/plugin-transform-class-properties@^7.25.9": 318 | version "7.25.9" 319 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-properties/-/plugin-transform-class-properties-7.25.9.tgz#a8ce84fedb9ad512549984101fa84080a9f5f51f" 320 | integrity sha512-bbMAII8GRSkcd0h0b4X+36GksxuheLFjP65ul9w6C3KgAamI3JqErNgSrosX6ZPj+Mpim5VvEbawXxJCyEUV3Q== 321 | dependencies: 322 | "@babel/helper-create-class-features-plugin" "^7.25.9" 323 | "@babel/helper-plugin-utils" "^7.25.9" 324 | 325 | "@babel/plugin-transform-class-static-block@^7.26.0": 326 | version "7.26.0" 327 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-class-static-block/-/plugin-transform-class-static-block-7.26.0.tgz#6c8da219f4eb15cae9834ec4348ff8e9e09664a0" 328 | integrity sha512-6J2APTs7BDDm+UMqP1useWqhcRAXo0WIoVj26N7kPFB6S73Lgvyka4KTZYIxtgYXiN5HTyRObA72N2iu628iTQ== 329 | dependencies: 330 | "@babel/helper-create-class-features-plugin" "^7.25.9" 331 | "@babel/helper-plugin-utils" "^7.25.9" 332 | 333 | "@babel/plugin-transform-classes@^7.25.9": 334 | version "7.25.9" 335 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-classes/-/plugin-transform-classes-7.25.9.tgz#7152457f7880b593a63ade8a861e6e26a4469f52" 336 | integrity sha512-mD8APIXmseE7oZvZgGABDyM34GUmK45Um2TXiBUt7PnuAxrgoSVf123qUzPxEr/+/BHrRn5NMZCdE2m/1F8DGg== 337 | dependencies: 338 | "@babel/helper-annotate-as-pure" "^7.25.9" 339 | "@babel/helper-compilation-targets" "^7.25.9" 340 | "@babel/helper-plugin-utils" "^7.25.9" 341 | "@babel/helper-replace-supers" "^7.25.9" 342 | "@babel/traverse" "^7.25.9" 343 | globals "^11.1.0" 344 | 345 | "@babel/plugin-transform-computed-properties@^7.25.9": 346 | version "7.25.9" 347 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.25.9.tgz#db36492c78460e534b8852b1d5befe3c923ef10b" 348 | integrity sha512-HnBegGqXZR12xbcTHlJ9HGxw1OniltT26J5YpfruGqtUHlz/xKf/G2ak9e+t0rVqrjXa9WOhvYPz1ERfMj23AA== 349 | dependencies: 350 | "@babel/helper-plugin-utils" "^7.25.9" 351 | "@babel/template" "^7.25.9" 352 | 353 | "@babel/plugin-transform-destructuring@^7.25.9": 354 | version "7.25.9" 355 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.25.9.tgz#966ea2595c498224340883602d3cfd7a0c79cea1" 356 | integrity sha512-WkCGb/3ZxXepmMiX101nnGiU+1CAdut8oHyEOHxkKuS1qKpU2SMXE2uSvfz8PBuLd49V6LEsbtyPhWC7fnkgvQ== 357 | dependencies: 358 | "@babel/helper-plugin-utils" "^7.25.9" 359 | 360 | "@babel/plugin-transform-dotall-regex@^7.25.9": 361 | version "7.25.9" 362 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.25.9.tgz#bad7945dd07734ca52fe3ad4e872b40ed09bb09a" 363 | integrity sha512-t7ZQ7g5trIgSRYhI9pIJtRl64KHotutUJsh4Eze5l7olJv+mRSg4/MmbZ0tv1eeqRbdvo/+trvJD/Oc5DmW2cA== 364 | dependencies: 365 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 366 | "@babel/helper-plugin-utils" "^7.25.9" 367 | 368 | "@babel/plugin-transform-duplicate-keys@^7.25.9": 369 | version "7.25.9" 370 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.25.9.tgz#8850ddf57dce2aebb4394bb434a7598031059e6d" 371 | integrity sha512-LZxhJ6dvBb/f3x8xwWIuyiAHy56nrRG3PeYTpBkkzkYRRQ6tJLu68lEF5VIqMUZiAV7a8+Tb78nEoMCMcqjXBw== 372 | dependencies: 373 | "@babel/helper-plugin-utils" "^7.25.9" 374 | 375 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex@^7.25.9": 376 | version "7.25.9" 377 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-duplicate-named-capturing-groups-regex/-/plugin-transform-duplicate-named-capturing-groups-regex-7.25.9.tgz#6f7259b4de127721a08f1e5165b852fcaa696d31" 378 | integrity sha512-0UfuJS0EsXbRvKnwcLjFtJy/Sxc5J5jhLHnFhy7u4zih97Hz6tJkLU+O+FMMrNZrosUPxDi6sYxJ/EA8jDiAog== 379 | dependencies: 380 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 381 | "@babel/helper-plugin-utils" "^7.25.9" 382 | 383 | "@babel/plugin-transform-dynamic-import@^7.25.9": 384 | version "7.25.9" 385 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-dynamic-import/-/plugin-transform-dynamic-import-7.25.9.tgz#23e917de63ed23c6600c5dd06d94669dce79f7b8" 386 | integrity sha512-GCggjexbmSLaFhqsojeugBpeaRIgWNTcgKVq/0qIteFEqY2A+b9QidYadrWlnbWQUrW5fn+mCvf3tr7OeBFTyg== 387 | dependencies: 388 | "@babel/helper-plugin-utils" "^7.25.9" 389 | 390 | "@babel/plugin-transform-exponentiation-operator@^7.26.3": 391 | version "7.26.3" 392 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.26.3.tgz#e29f01b6de302c7c2c794277a48f04a9ca7f03bc" 393 | integrity sha512-7CAHcQ58z2chuXPWblnn1K6rLDnDWieghSOEmqQsrBenH0P9InCUtOJYD89pvngljmZlJcz3fcmgYsXFNGa1ZQ== 394 | dependencies: 395 | "@babel/helper-plugin-utils" "^7.25.9" 396 | 397 | "@babel/plugin-transform-export-namespace-from@^7.25.9": 398 | version "7.25.9" 399 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-export-namespace-from/-/plugin-transform-export-namespace-from-7.25.9.tgz#90745fe55053394f554e40584cda81f2c8a402a2" 400 | integrity sha512-2NsEz+CxzJIVOPx2o9UsW1rXLqtChtLoVnwYHHiB04wS5sgn7mrV45fWMBX0Kk+ub9uXytVYfNP2HjbVbCB3Ww== 401 | dependencies: 402 | "@babel/helper-plugin-utils" "^7.25.9" 403 | 404 | "@babel/plugin-transform-for-of@^7.26.9": 405 | version "7.26.9" 406 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.26.9.tgz#27231f79d5170ef33b5111f07fe5cafeb2c96a56" 407 | integrity sha512-Hry8AusVm8LW5BVFgiyUReuoGzPUpdHQQqJY5bZnbbf+ngOHWuCuYFKw/BqaaWlvEUrF91HMhDtEaI1hZzNbLg== 408 | dependencies: 409 | "@babel/helper-plugin-utils" "^7.26.5" 410 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 411 | 412 | "@babel/plugin-transform-function-name@^7.25.9": 413 | version "7.25.9" 414 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.25.9.tgz#939d956e68a606661005bfd550c4fc2ef95f7b97" 415 | integrity sha512-8lP+Yxjv14Vc5MuWBpJsoUCd3hD6V9DgBon2FVYL4jJgbnVQ9fTgYmonchzZJOVNgzEgbxp4OwAf6xz6M/14XA== 416 | dependencies: 417 | "@babel/helper-compilation-targets" "^7.25.9" 418 | "@babel/helper-plugin-utils" "^7.25.9" 419 | "@babel/traverse" "^7.25.9" 420 | 421 | "@babel/plugin-transform-json-strings@^7.25.9": 422 | version "7.25.9" 423 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-json-strings/-/plugin-transform-json-strings-7.25.9.tgz#c86db407cb827cded902a90c707d2781aaa89660" 424 | integrity sha512-xoTMk0WXceiiIvsaquQQUaLLXSW1KJ159KP87VilruQm0LNNGxWzahxSS6T6i4Zg3ezp4vA4zuwiNUR53qmQAw== 425 | dependencies: 426 | "@babel/helper-plugin-utils" "^7.25.9" 427 | 428 | "@babel/plugin-transform-literals@^7.25.9": 429 | version "7.25.9" 430 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-literals/-/plugin-transform-literals-7.25.9.tgz#1a1c6b4d4aa59bc4cad5b6b3a223a0abd685c9de" 431 | integrity sha512-9N7+2lFziW8W9pBl2TzaNht3+pgMIRP74zizeCSrtnSKVdUl8mAjjOP2OOVQAfZ881P2cNjDj1uAMEdeD50nuQ== 432 | dependencies: 433 | "@babel/helper-plugin-utils" "^7.25.9" 434 | 435 | "@babel/plugin-transform-logical-assignment-operators@^7.25.9": 436 | version "7.25.9" 437 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-logical-assignment-operators/-/plugin-transform-logical-assignment-operators-7.25.9.tgz#b19441a8c39a2fda0902900b306ea05ae1055db7" 438 | integrity sha512-wI4wRAzGko551Y8eVf6iOY9EouIDTtPb0ByZx+ktDGHwv6bHFimrgJM/2T021txPZ2s4c7bqvHbd+vXG6K948Q== 439 | dependencies: 440 | "@babel/helper-plugin-utils" "^7.25.9" 441 | 442 | "@babel/plugin-transform-member-expression-literals@^7.25.9": 443 | version "7.25.9" 444 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.25.9.tgz#63dff19763ea64a31f5e6c20957e6a25e41ed5de" 445 | integrity sha512-PYazBVfofCQkkMzh2P6IdIUaCEWni3iYEerAsRWuVd8+jlM1S9S9cz1dF9hIzyoZ8IA3+OwVYIp9v9e+GbgZhA== 446 | dependencies: 447 | "@babel/helper-plugin-utils" "^7.25.9" 448 | 449 | "@babel/plugin-transform-modules-amd@^7.25.9": 450 | version "7.25.9" 451 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.25.9.tgz#49ba478f2295101544abd794486cd3088dddb6c5" 452 | integrity sha512-g5T11tnI36jVClQlMlt4qKDLlWnG5pP9CSM4GhdRciTNMRgkfpo5cR6b4rGIOYPgRRuFAvwjPQ/Yk+ql4dyhbw== 453 | dependencies: 454 | "@babel/helper-module-transforms" "^7.25.9" 455 | "@babel/helper-plugin-utils" "^7.25.9" 456 | 457 | "@babel/plugin-transform-modules-commonjs@^7.26.3": 458 | version "7.26.3" 459 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.26.3.tgz#8f011d44b20d02c3de44d8850d971d8497f981fb" 460 | integrity sha512-MgR55l4q9KddUDITEzEFYn5ZsGDXMSsU9E+kh7fjRXTIC3RHqfCo8RPRbyReYJh44HQ/yomFkqbOFohXvDCiIQ== 461 | dependencies: 462 | "@babel/helper-module-transforms" "^7.26.0" 463 | "@babel/helper-plugin-utils" "^7.25.9" 464 | 465 | "@babel/plugin-transform-modules-systemjs@^7.25.9": 466 | version "7.25.9" 467 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.25.9.tgz#8bd1b43836269e3d33307151a114bcf3ba6793f8" 468 | integrity sha512-hyss7iIlH/zLHaehT+xwiymtPOpsiwIIRlCAOwBB04ta5Tt+lNItADdlXw3jAWZ96VJ2jlhl/c+PNIQPKNfvcA== 469 | dependencies: 470 | "@babel/helper-module-transforms" "^7.25.9" 471 | "@babel/helper-plugin-utils" "^7.25.9" 472 | "@babel/helper-validator-identifier" "^7.25.9" 473 | "@babel/traverse" "^7.25.9" 474 | 475 | "@babel/plugin-transform-modules-umd@^7.25.9": 476 | version "7.25.9" 477 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.25.9.tgz#6710079cdd7c694db36529a1e8411e49fcbf14c9" 478 | integrity sha512-bS9MVObUgE7ww36HEfwe6g9WakQ0KF07mQF74uuXdkoziUPfKyu/nIm663kz//e5O1nPInPFx36z7WJmJ4yNEw== 479 | dependencies: 480 | "@babel/helper-module-transforms" "^7.25.9" 481 | "@babel/helper-plugin-utils" "^7.25.9" 482 | 483 | "@babel/plugin-transform-named-capturing-groups-regex@^7.25.9": 484 | version "7.25.9" 485 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.25.9.tgz#454990ae6cc22fd2a0fa60b3a2c6f63a38064e6a" 486 | integrity sha512-oqB6WHdKTGl3q/ItQhpLSnWWOpjUJLsOCLVyeFgeTktkBSCiurvPOsyt93gibI9CmuKvTUEtWmG5VhZD+5T/KA== 487 | dependencies: 488 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 489 | "@babel/helper-plugin-utils" "^7.25.9" 490 | 491 | "@babel/plugin-transform-new-target@^7.25.9": 492 | version "7.25.9" 493 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.25.9.tgz#42e61711294b105c248336dcb04b77054ea8becd" 494 | integrity sha512-U/3p8X1yCSoKyUj2eOBIx3FOn6pElFOKvAAGf8HTtItuPyB+ZeOqfn+mvTtg9ZlOAjsPdK3ayQEjqHjU/yLeVQ== 495 | dependencies: 496 | "@babel/helper-plugin-utils" "^7.25.9" 497 | 498 | "@babel/plugin-transform-nullish-coalescing-operator@^7.26.6": 499 | version "7.26.6" 500 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-nullish-coalescing-operator/-/plugin-transform-nullish-coalescing-operator-7.26.6.tgz#fbf6b3c92cb509e7b319ee46e3da89c5bedd31fe" 501 | integrity sha512-CKW8Vu+uUZneQCPtXmSBUC6NCAUdya26hWCElAWh5mVSlSRsmiCPUUDKb3Z0szng1hiAJa098Hkhg9o4SE35Qw== 502 | dependencies: 503 | "@babel/helper-plugin-utils" "^7.26.5" 504 | 505 | "@babel/plugin-transform-numeric-separator@^7.25.9": 506 | version "7.25.9" 507 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-numeric-separator/-/plugin-transform-numeric-separator-7.25.9.tgz#bfed75866261a8b643468b0ccfd275f2033214a1" 508 | integrity sha512-TlprrJ1GBZ3r6s96Yq8gEQv82s8/5HnCVHtEJScUj90thHQbwe+E5MLhi2bbNHBEJuzrvltXSru+BUxHDoog7Q== 509 | dependencies: 510 | "@babel/helper-plugin-utils" "^7.25.9" 511 | 512 | "@babel/plugin-transform-object-rest-spread@^7.25.9": 513 | version "7.25.9" 514 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-rest-spread/-/plugin-transform-object-rest-spread-7.25.9.tgz#0203725025074164808bcf1a2cfa90c652c99f18" 515 | integrity sha512-fSaXafEE9CVHPweLYw4J0emp1t8zYTXyzN3UuG+lylqkvYd7RMrsOQ8TYx5RF231be0vqtFC6jnx3UmpJmKBYg== 516 | dependencies: 517 | "@babel/helper-compilation-targets" "^7.25.9" 518 | "@babel/helper-plugin-utils" "^7.25.9" 519 | "@babel/plugin-transform-parameters" "^7.25.9" 520 | 521 | "@babel/plugin-transform-object-super@^7.25.9": 522 | version "7.25.9" 523 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.25.9.tgz#385d5de135162933beb4a3d227a2b7e52bb4cf03" 524 | integrity sha512-Kj/Gh+Rw2RNLbCK1VAWj2U48yxxqL2x0k10nPtSdRa0O2xnHXalD0s+o1A6a0W43gJ00ANo38jxkQreckOzv5A== 525 | dependencies: 526 | "@babel/helper-plugin-utils" "^7.25.9" 527 | "@babel/helper-replace-supers" "^7.25.9" 528 | 529 | "@babel/plugin-transform-optional-catch-binding@^7.25.9": 530 | version "7.25.9" 531 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-catch-binding/-/plugin-transform-optional-catch-binding-7.25.9.tgz#10e70d96d52bb1f10c5caaac59ac545ea2ba7ff3" 532 | integrity sha512-qM/6m6hQZzDcZF3onzIhZeDHDO43bkNNlOX0i8n3lR6zLbu0GN2d8qfM/IERJZYauhAHSLHy39NF0Ctdvcid7g== 533 | dependencies: 534 | "@babel/helper-plugin-utils" "^7.25.9" 535 | 536 | "@babel/plugin-transform-optional-chaining@^7.25.9": 537 | version "7.25.9" 538 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-optional-chaining/-/plugin-transform-optional-chaining-7.25.9.tgz#e142eb899d26ef715435f201ab6e139541eee7dd" 539 | integrity sha512-6AvV0FsLULbpnXeBjrY4dmWF8F7gf8QnvTEoO/wX/5xm/xE1Xo8oPuD3MPS+KS9f9XBEAWN7X1aWr4z9HdOr7A== 540 | dependencies: 541 | "@babel/helper-plugin-utils" "^7.25.9" 542 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 543 | 544 | "@babel/plugin-transform-parameters@^7.25.9": 545 | version "7.25.9" 546 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.25.9.tgz#b856842205b3e77e18b7a7a1b94958069c7ba257" 547 | integrity sha512-wzz6MKwpnshBAiRmn4jR8LYz/g8Ksg0o80XmwZDlordjwEk9SxBzTWC7F5ef1jhbrbOW2DJ5J6ayRukrJmnr0g== 548 | dependencies: 549 | "@babel/helper-plugin-utils" "^7.25.9" 550 | 551 | "@babel/plugin-transform-private-methods@^7.25.9": 552 | version "7.25.9" 553 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-methods/-/plugin-transform-private-methods-7.25.9.tgz#847f4139263577526455d7d3223cd8bda51e3b57" 554 | integrity sha512-D/JUozNpQLAPUVusvqMxyvjzllRaF8/nSrP1s2YGQT/W4LHK4xxsMcHjhOGTS01mp9Hda8nswb+FblLdJornQw== 555 | dependencies: 556 | "@babel/helper-create-class-features-plugin" "^7.25.9" 557 | "@babel/helper-plugin-utils" "^7.25.9" 558 | 559 | "@babel/plugin-transform-private-property-in-object@^7.25.9": 560 | version "7.25.9" 561 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-private-property-in-object/-/plugin-transform-private-property-in-object-7.25.9.tgz#9c8b73e64e6cc3cbb2743633885a7dd2c385fe33" 562 | integrity sha512-Evf3kcMqzXA3xfYJmZ9Pg1OvKdtqsDMSWBDzZOPLvHiTt36E75jLDQo5w1gtRU95Q4E5PDttrTf25Fw8d/uWLw== 563 | dependencies: 564 | "@babel/helper-annotate-as-pure" "^7.25.9" 565 | "@babel/helper-create-class-features-plugin" "^7.25.9" 566 | "@babel/helper-plugin-utils" "^7.25.9" 567 | 568 | "@babel/plugin-transform-property-literals@^7.25.9": 569 | version "7.25.9" 570 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.25.9.tgz#d72d588bd88b0dec8b62e36f6fda91cedfe28e3f" 571 | integrity sha512-IvIUeV5KrS/VPavfSM/Iu+RE6llrHrYIKY1yfCzyO/lMXHQ+p7uGhonmGVisv6tSBSVgWzMBohTcvkC9vQcQFA== 572 | dependencies: 573 | "@babel/helper-plugin-utils" "^7.25.9" 574 | 575 | "@babel/plugin-transform-regenerator@^7.25.9": 576 | version "7.25.9" 577 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.25.9.tgz#03a8a4670d6cebae95305ac6defac81ece77740b" 578 | integrity sha512-vwDcDNsgMPDGP0nMqzahDWE5/MLcX8sv96+wfX7as7LoF/kr97Bo/7fI00lXY4wUXYfVmwIIyG80fGZ1uvt2qg== 579 | dependencies: 580 | "@babel/helper-plugin-utils" "^7.25.9" 581 | regenerator-transform "^0.15.2" 582 | 583 | "@babel/plugin-transform-regexp-modifiers@^7.26.0": 584 | version "7.26.0" 585 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-regexp-modifiers/-/plugin-transform-regexp-modifiers-7.26.0.tgz#2f5837a5b5cd3842a919d8147e9903cc7455b850" 586 | integrity sha512-vN6saax7lrA2yA/Pak3sCxuD6F5InBjn9IcrIKQPjpsLvuHYLVroTxjdlVRHjjBWxKOqIwpTXDkOssYT4BFdRw== 587 | dependencies: 588 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 589 | "@babel/helper-plugin-utils" "^7.25.9" 590 | 591 | "@babel/plugin-transform-reserved-words@^7.25.9": 592 | version "7.25.9" 593 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.25.9.tgz#0398aed2f1f10ba3f78a93db219b27ef417fb9ce" 594 | integrity sha512-7DL7DKYjn5Su++4RXu8puKZm2XBPHyjWLUidaPEkCUBbE7IPcsrkRHggAOOKydH1dASWdcUBxrkOGNxUv5P3Jg== 595 | dependencies: 596 | "@babel/helper-plugin-utils" "^7.25.9" 597 | 598 | "@babel/plugin-transform-shorthand-properties@^7.25.9": 599 | version "7.25.9" 600 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.25.9.tgz#bb785e6091f99f826a95f9894fc16fde61c163f2" 601 | integrity sha512-MUv6t0FhO5qHnS/W8XCbHmiRWOphNufpE1IVxhK5kuN3Td9FT1x4rx4K42s3RYdMXCXpfWkGSbCSd0Z64xA7Ng== 602 | dependencies: 603 | "@babel/helper-plugin-utils" "^7.25.9" 604 | 605 | "@babel/plugin-transform-spread@^7.25.9": 606 | version "7.25.9" 607 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-spread/-/plugin-transform-spread-7.25.9.tgz#24a35153931b4ba3d13cec4a7748c21ab5514ef9" 608 | integrity sha512-oNknIB0TbURU5pqJFVbOOFspVlrpVwo2H1+HUIsVDvp5VauGGDP1ZEvO8Nn5xyMEs3dakajOxlmkNW7kNgSm6A== 609 | dependencies: 610 | "@babel/helper-plugin-utils" "^7.25.9" 611 | "@babel/helper-skip-transparent-expression-wrappers" "^7.25.9" 612 | 613 | "@babel/plugin-transform-sticky-regex@^7.25.9": 614 | version "7.25.9" 615 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.25.9.tgz#c7f02b944e986a417817b20ba2c504dfc1453d32" 616 | integrity sha512-WqBUSgeVwucYDP9U/xNRQam7xV8W5Zf+6Eo7T2SRVUFlhRiMNFdFz58u0KZmCVVqs2i7SHgpRnAhzRNmKfi2uA== 617 | dependencies: 618 | "@babel/helper-plugin-utils" "^7.25.9" 619 | 620 | "@babel/plugin-transform-template-literals@^7.26.8": 621 | version "7.26.8" 622 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.26.8.tgz#966b15d153a991172a540a69ad5e1845ced990b5" 623 | integrity sha512-OmGDL5/J0CJPJZTHZbi2XpO0tyT2Ia7fzpW5GURwdtp2X3fMmN8au/ej6peC/T33/+CRiIpA8Krse8hFGVmT5Q== 624 | dependencies: 625 | "@babel/helper-plugin-utils" "^7.26.5" 626 | 627 | "@babel/plugin-transform-typeof-symbol@^7.26.7": 628 | version "7.26.7" 629 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.26.7.tgz#d0e33acd9223744c1e857dbd6fa17bd0a3786937" 630 | integrity sha512-jfoTXXZTgGg36BmhqT3cAYK5qkmqvJpvNrPhaK/52Vgjhw4Rq29s9UqpWWV0D6yuRmgiFH/BUVlkl96zJWqnaw== 631 | dependencies: 632 | "@babel/helper-plugin-utils" "^7.26.5" 633 | 634 | "@babel/plugin-transform-unicode-escapes@^7.25.9": 635 | version "7.25.9" 636 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.25.9.tgz#a75ef3947ce15363fccaa38e2dd9bc70b2788b82" 637 | integrity sha512-s5EDrE6bW97LtxOcGj1Khcx5AaXwiMmi4toFWRDP9/y0Woo6pXC+iyPu/KuhKtfSrNFd7jJB+/fkOtZy6aIC6Q== 638 | dependencies: 639 | "@babel/helper-plugin-utils" "^7.25.9" 640 | 641 | "@babel/plugin-transform-unicode-property-regex@^7.25.9": 642 | version "7.25.9" 643 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-property-regex/-/plugin-transform-unicode-property-regex-7.25.9.tgz#a901e96f2c1d071b0d1bb5dc0d3c880ce8f53dd3" 644 | integrity sha512-Jt2d8Ga+QwRluxRQ307Vlxa6dMrYEMZCgGxoPR8V52rxPyldHu3hdlHspxaqYmE7oID5+kB+UKUB/eWS+DkkWg== 645 | dependencies: 646 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 647 | "@babel/helper-plugin-utils" "^7.25.9" 648 | 649 | "@babel/plugin-transform-unicode-regex@^7.25.9": 650 | version "7.25.9" 651 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.25.9.tgz#5eae747fe39eacf13a8bd006a4fb0b5d1fa5e9b1" 652 | integrity sha512-yoxstj7Rg9dlNn9UQxzk4fcNivwv4nUYz7fYXBaKxvw/lnmPuOm/ikoELygbYq68Bls3D/D+NBPHiLwZdZZ4HA== 653 | dependencies: 654 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 655 | "@babel/helper-plugin-utils" "^7.25.9" 656 | 657 | "@babel/plugin-transform-unicode-sets-regex@^7.25.9": 658 | version "7.25.9" 659 | resolved "https://registry.yarnpkg.com/@babel/plugin-transform-unicode-sets-regex/-/plugin-transform-unicode-sets-regex-7.25.9.tgz#65114c17b4ffc20fa5b163c63c70c0d25621fabe" 660 | integrity sha512-8BYqO3GeVNHtx69fdPshN3fnzUNLrWdHhk/icSwigksJGczKSizZ+Z6SBCxTs723Fr5VSNorTIK7a+R2tISvwQ== 661 | dependencies: 662 | "@babel/helper-create-regexp-features-plugin" "^7.25.9" 663 | "@babel/helper-plugin-utils" "^7.25.9" 664 | 665 | "@babel/preset-env@^7.26.9": 666 | version "7.26.9" 667 | resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.26.9.tgz#2ec64e903d0efe743699f77a10bdf7955c2123c3" 668 | integrity sha512-vX3qPGE8sEKEAZCWk05k3cpTAE3/nOYca++JA+Rd0z2NCNzabmYvEiSShKzm10zdquOIAVXsy2Ei/DTW34KlKQ== 669 | dependencies: 670 | "@babel/compat-data" "^7.26.8" 671 | "@babel/helper-compilation-targets" "^7.26.5" 672 | "@babel/helper-plugin-utils" "^7.26.5" 673 | "@babel/helper-validator-option" "^7.25.9" 674 | "@babel/plugin-bugfix-firefox-class-in-computed-class-key" "^7.25.9" 675 | "@babel/plugin-bugfix-safari-class-field-initializer-scope" "^7.25.9" 676 | "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.25.9" 677 | "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.25.9" 678 | "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.25.9" 679 | "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" 680 | "@babel/plugin-syntax-import-assertions" "^7.26.0" 681 | "@babel/plugin-syntax-import-attributes" "^7.26.0" 682 | "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" 683 | "@babel/plugin-transform-arrow-functions" "^7.25.9" 684 | "@babel/plugin-transform-async-generator-functions" "^7.26.8" 685 | "@babel/plugin-transform-async-to-generator" "^7.25.9" 686 | "@babel/plugin-transform-block-scoped-functions" "^7.26.5" 687 | "@babel/plugin-transform-block-scoping" "^7.25.9" 688 | "@babel/plugin-transform-class-properties" "^7.25.9" 689 | "@babel/plugin-transform-class-static-block" "^7.26.0" 690 | "@babel/plugin-transform-classes" "^7.25.9" 691 | "@babel/plugin-transform-computed-properties" "^7.25.9" 692 | "@babel/plugin-transform-destructuring" "^7.25.9" 693 | "@babel/plugin-transform-dotall-regex" "^7.25.9" 694 | "@babel/plugin-transform-duplicate-keys" "^7.25.9" 695 | "@babel/plugin-transform-duplicate-named-capturing-groups-regex" "^7.25.9" 696 | "@babel/plugin-transform-dynamic-import" "^7.25.9" 697 | "@babel/plugin-transform-exponentiation-operator" "^7.26.3" 698 | "@babel/plugin-transform-export-namespace-from" "^7.25.9" 699 | "@babel/plugin-transform-for-of" "^7.26.9" 700 | "@babel/plugin-transform-function-name" "^7.25.9" 701 | "@babel/plugin-transform-json-strings" "^7.25.9" 702 | "@babel/plugin-transform-literals" "^7.25.9" 703 | "@babel/plugin-transform-logical-assignment-operators" "^7.25.9" 704 | "@babel/plugin-transform-member-expression-literals" "^7.25.9" 705 | "@babel/plugin-transform-modules-amd" "^7.25.9" 706 | "@babel/plugin-transform-modules-commonjs" "^7.26.3" 707 | "@babel/plugin-transform-modules-systemjs" "^7.25.9" 708 | "@babel/plugin-transform-modules-umd" "^7.25.9" 709 | "@babel/plugin-transform-named-capturing-groups-regex" "^7.25.9" 710 | "@babel/plugin-transform-new-target" "^7.25.9" 711 | "@babel/plugin-transform-nullish-coalescing-operator" "^7.26.6" 712 | "@babel/plugin-transform-numeric-separator" "^7.25.9" 713 | "@babel/plugin-transform-object-rest-spread" "^7.25.9" 714 | "@babel/plugin-transform-object-super" "^7.25.9" 715 | "@babel/plugin-transform-optional-catch-binding" "^7.25.9" 716 | "@babel/plugin-transform-optional-chaining" "^7.25.9" 717 | "@babel/plugin-transform-parameters" "^7.25.9" 718 | "@babel/plugin-transform-private-methods" "^7.25.9" 719 | "@babel/plugin-transform-private-property-in-object" "^7.25.9" 720 | "@babel/plugin-transform-property-literals" "^7.25.9" 721 | "@babel/plugin-transform-regenerator" "^7.25.9" 722 | "@babel/plugin-transform-regexp-modifiers" "^7.26.0" 723 | "@babel/plugin-transform-reserved-words" "^7.25.9" 724 | "@babel/plugin-transform-shorthand-properties" "^7.25.9" 725 | "@babel/plugin-transform-spread" "^7.25.9" 726 | "@babel/plugin-transform-sticky-regex" "^7.25.9" 727 | "@babel/plugin-transform-template-literals" "^7.26.8" 728 | "@babel/plugin-transform-typeof-symbol" "^7.26.7" 729 | "@babel/plugin-transform-unicode-escapes" "^7.25.9" 730 | "@babel/plugin-transform-unicode-property-regex" "^7.25.9" 731 | "@babel/plugin-transform-unicode-regex" "^7.25.9" 732 | "@babel/plugin-transform-unicode-sets-regex" "^7.25.9" 733 | "@babel/preset-modules" "0.1.6-no-external-plugins" 734 | babel-plugin-polyfill-corejs2 "^0.4.10" 735 | babel-plugin-polyfill-corejs3 "^0.11.0" 736 | babel-plugin-polyfill-regenerator "^0.6.1" 737 | core-js-compat "^3.40.0" 738 | semver "^6.3.1" 739 | 740 | "@babel/preset-modules@0.1.6-no-external-plugins": 741 | version "0.1.6-no-external-plugins" 742 | resolved "https://registry.yarnpkg.com/@babel/preset-modules/-/preset-modules-0.1.6-no-external-plugins.tgz#ccb88a2c49c817236861fee7826080573b8a923a" 743 | integrity sha512-HrcgcIESLm9aIR842yhJ5RWan/gebQUJ6E/E5+rf0y9o6oj7w0Br+sWuL6kEQ/o/AdfvR1Je9jG18/gnpwjEyA== 744 | dependencies: 745 | "@babel/helper-plugin-utils" "^7.0.0" 746 | "@babel/types" "^7.4.4" 747 | esutils "^2.0.2" 748 | 749 | "@babel/runtime@^7.8.4": 750 | version "7.26.10" 751 | resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.26.10.tgz#a07b4d8fa27af131a633d7b3524db803eb4764c2" 752 | integrity sha512-2WJMeRQPHKSPemqk/awGrAiuFfzBmOIPXKizAsVhWH9YJqLZ0H+HS4c8loHGgW6utJ3E/ejXQUsiGaQy2NZ9Fw== 753 | dependencies: 754 | regenerator-runtime "^0.14.0" 755 | 756 | "@babel/template@^7.25.9", "@babel/template@^7.26.9": 757 | version "7.26.9" 758 | resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.26.9.tgz#4577ad3ddf43d194528cff4e1fa6b232fa609bb2" 759 | integrity sha512-qyRplbeIpNZhmzOysF/wFMuP9sctmh2cFzRAZOn1YapxBsE1i9bJIY586R/WBLfLcmcBlM8ROBiQURnnNy+zfA== 760 | dependencies: 761 | "@babel/code-frame" "^7.26.2" 762 | "@babel/parser" "^7.26.9" 763 | "@babel/types" "^7.26.9" 764 | 765 | "@babel/traverse@^7.25.9", "@babel/traverse@^7.26.10", "@babel/traverse@^7.26.5", "@babel/traverse@^7.26.8", "@babel/traverse@^7.26.9": 766 | version "7.26.10" 767 | resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.26.10.tgz#43cca33d76005dbaa93024fae536cc1946a4c380" 768 | integrity sha512-k8NuDrxr0WrPH5Aupqb2LCVURP/S0vBEn5mK6iH+GIYob66U5EtoZvcdudR2jQ4cmTwhEwW1DLB+Yyas9zjF6A== 769 | dependencies: 770 | "@babel/code-frame" "^7.26.2" 771 | "@babel/generator" "^7.26.10" 772 | "@babel/parser" "^7.26.10" 773 | "@babel/template" "^7.26.9" 774 | "@babel/types" "^7.26.10" 775 | debug "^4.3.1" 776 | globals "^11.1.0" 777 | 778 | "@babel/types@^7.25.9", "@babel/types@^7.26.10", "@babel/types@^7.26.9", "@babel/types@^7.4.4": 779 | version "7.26.10" 780 | resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.26.10.tgz#396382f6335bd4feb65741eacfc808218f859259" 781 | integrity sha512-emqcG3vHrpxUKTrxcblR36dcrcoRDvKmnL/dCL6ZsHaShW80qxCAcNhzQZrpeM765VzEos+xOi4s+r4IXzTwdQ== 782 | dependencies: 783 | "@babel/helper-string-parser" "^7.25.9" 784 | "@babel/helper-validator-identifier" "^7.25.9" 785 | 786 | "@isaacs/cliui@^8.0.2": 787 | version "8.0.2" 788 | resolved "https://registry.yarnpkg.com/@isaacs/cliui/-/cliui-8.0.2.tgz#b37667b7bc181c168782259bab42474fbf52b550" 789 | integrity sha512-O8jcjabXaleOG9DQ0+ARXWZBTfnP4WNAqzuiJK7ll44AmxGKv/J2M4TPjxjY3znBCfvBXFzucm1twdyFybFqEA== 790 | dependencies: 791 | string-width "^5.1.2" 792 | string-width-cjs "npm:string-width@^4.2.0" 793 | strip-ansi "^7.0.1" 794 | strip-ansi-cjs "npm:strip-ansi@^6.0.1" 795 | wrap-ansi "^8.1.0" 796 | wrap-ansi-cjs "npm:wrap-ansi@^7.0.0" 797 | 798 | "@jridgewell/gen-mapping@^0.3.5": 799 | version "0.3.8" 800 | resolved "https://registry.yarnpkg.com/@jridgewell/gen-mapping/-/gen-mapping-0.3.8.tgz#4f0e06362e01362f823d348f1872b08f666d8142" 801 | integrity sha512-imAbBGkb+ebQyxKgzv5Hu2nmROxoDOXHh80evxdoXNOrvAnVx7zimzc1Oo5h9RlfV4vPXaE2iM5pOFbvOCClWA== 802 | dependencies: 803 | "@jridgewell/set-array" "^1.2.1" 804 | "@jridgewell/sourcemap-codec" "^1.4.10" 805 | "@jridgewell/trace-mapping" "^0.3.24" 806 | 807 | "@jridgewell/resolve-uri@^3.1.0": 808 | version "3.1.2" 809 | resolved "https://registry.yarnpkg.com/@jridgewell/resolve-uri/-/resolve-uri-3.1.2.tgz#7a0ee601f60f99a20c7c7c5ff0c80388c1189bd6" 810 | integrity sha512-bRISgCIjP20/tbWSPWMEi54QVPRZExkuD9lJL+UIxUKtwVJA8wW1Trb1jMs1RFXo1CBTNZ/5hpC9QvmKWdopKw== 811 | 812 | "@jridgewell/set-array@^1.2.1": 813 | version "1.2.1" 814 | resolved "https://registry.yarnpkg.com/@jridgewell/set-array/-/set-array-1.2.1.tgz#558fb6472ed16a4c850b889530e6b36438c49280" 815 | integrity sha512-R8gLRTZeyp03ymzP/6Lil/28tGeGEzhx1q2k703KGWRAI1VdvPIXdG70VJc2pAMw3NA6JKL5hhFu1sJX0Mnn/A== 816 | 817 | "@jridgewell/source-map@^0.3.3": 818 | version "0.3.6" 819 | resolved "https://registry.yarnpkg.com/@jridgewell/source-map/-/source-map-0.3.6.tgz#9d71ca886e32502eb9362c9a74a46787c36df81a" 820 | integrity sha512-1ZJTZebgqllO79ue2bm3rIGud/bOe0pP5BjSRCRxxYkEZS8STV7zN84UBbiYu7jy+eCKSnVIUgoWWE/tt+shMQ== 821 | dependencies: 822 | "@jridgewell/gen-mapping" "^0.3.5" 823 | "@jridgewell/trace-mapping" "^0.3.25" 824 | 825 | "@jridgewell/sourcemap-codec@^1.4.10", "@jridgewell/sourcemap-codec@^1.4.14", "@jridgewell/sourcemap-codec@^1.5.0": 826 | version "1.5.0" 827 | resolved "https://registry.yarnpkg.com/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.5.0.tgz#3188bcb273a414b0d215fd22a58540b989b9409a" 828 | integrity sha512-gv3ZRaISU3fjPAgNsriBRqGWQL6quFx04YMPW/zD8XMLsU32mhCCbfbO6KZFLjvYpCZ8zyDEgqsgf+PwPaM7GQ== 829 | 830 | "@jridgewell/trace-mapping@^0.3.24", "@jridgewell/trace-mapping@^0.3.25": 831 | version "0.3.25" 832 | resolved "https://registry.yarnpkg.com/@jridgewell/trace-mapping/-/trace-mapping-0.3.25.tgz#15f190e98895f3fc23276ee14bc76b675c2e50f0" 833 | integrity sha512-vNk6aEwybGtawWmy/PzwnGDOjCkLWSD2wqvjGGAgOAwCGWySYXfYoxt00IJkTF+8Lb57DwOb3Aa0o9CApepiYQ== 834 | dependencies: 835 | "@jridgewell/resolve-uri" "^3.1.0" 836 | "@jridgewell/sourcemap-codec" "^1.4.14" 837 | 838 | "@rollup/plugin-babel@^6.0.4": 839 | version "6.0.4" 840 | resolved "https://registry.yarnpkg.com/@rollup/plugin-babel/-/plugin-babel-6.0.4.tgz#bd698e351fa9aa9619fcae780aea2a603d98e4c4" 841 | integrity sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw== 842 | dependencies: 843 | "@babel/helper-module-imports" "^7.18.6" 844 | "@rollup/pluginutils" "^5.0.1" 845 | 846 | "@rollup/plugin-commonjs@^28.0.3": 847 | version "28.0.3" 848 | resolved "https://registry.yarnpkg.com/@rollup/plugin-commonjs/-/plugin-commonjs-28.0.3.tgz#44c2cc7c955c6113b96696b55e6bc2446bd67913" 849 | integrity sha512-pyltgilam1QPdn+Zd9gaCfOLcnjMEJ9gV+bTw6/r73INdvzf1ah9zLIJBm+kW7R6IUFIQ1YO+VqZtYxZNWFPEQ== 850 | dependencies: 851 | "@rollup/pluginutils" "^5.0.1" 852 | commondir "^1.0.1" 853 | estree-walker "^2.0.2" 854 | fdir "^6.2.0" 855 | is-reference "1.2.1" 856 | magic-string "^0.30.3" 857 | picomatch "^4.0.2" 858 | 859 | "@rollup/plugin-node-resolve@^16.0.1": 860 | version "16.0.1" 861 | resolved "https://registry.yarnpkg.com/@rollup/plugin-node-resolve/-/plugin-node-resolve-16.0.1.tgz#2fc6b54ca3d77e12f3fb45b2a55b50720de4c95d" 862 | integrity sha512-tk5YCxJWIG81umIvNkSod2qK5KyQW19qcBF/B78n1bjtOON6gzKoVeSzAE8yHCZEDmqkHKkxplExA8KzdJLJpA== 863 | dependencies: 864 | "@rollup/pluginutils" "^5.0.1" 865 | "@types/resolve" "1.20.2" 866 | deepmerge "^4.2.2" 867 | is-module "^1.0.0" 868 | resolve "^1.22.1" 869 | 870 | "@rollup/plugin-terser@^0.4.4": 871 | version "0.4.4" 872 | resolved "https://registry.yarnpkg.com/@rollup/plugin-terser/-/plugin-terser-0.4.4.tgz#15dffdb3f73f121aa4fbb37e7ca6be9aeea91962" 873 | integrity sha512-XHeJC5Bgvs8LfukDwWZp7yeqin6ns8RTl2B9avbejt6tZqsqvVoWI7ZTQrcNsfKEDWBTnTxM8nMDkO2IFFbd0A== 874 | dependencies: 875 | serialize-javascript "^6.0.1" 876 | smob "^1.0.0" 877 | terser "^5.17.4" 878 | 879 | "@rollup/pluginutils@^5.0.1": 880 | version "5.1.4" 881 | resolved "https://registry.yarnpkg.com/@rollup/pluginutils/-/pluginutils-5.1.4.tgz#bb94f1f9eaaac944da237767cdfee6c5b2262d4a" 882 | integrity sha512-USm05zrsFxYLPdWWq+K3STlWiT/3ELn3RcV5hJMghpeAIhxfsUIg6mt12CBJBInWMV4VneoV7SfGv8xIwo2qNQ== 883 | dependencies: 884 | "@types/estree" "^1.0.0" 885 | estree-walker "^2.0.2" 886 | picomatch "^4.0.2" 887 | 888 | "@rollup/rollup-android-arm-eabi@4.36.0": 889 | version "4.36.0" 890 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.36.0.tgz#6229c36cddc172c468f53107f2b7aebe2585609b" 891 | integrity sha512-jgrXjjcEwN6XpZXL0HUeOVGfjXhPyxAbbhD0BlXUB+abTOpbPiN5Wb3kOT7yb+uEtATNYF5x5gIfwutmuBA26w== 892 | 893 | "@rollup/rollup-android-arm64@4.36.0": 894 | version "4.36.0" 895 | resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.36.0.tgz#d38163692d0729bd64a026c13749ecac06f847e8" 896 | integrity sha512-NyfuLvdPdNUfUNeYKUwPwKsE5SXa2J6bCt2LdB/N+AxShnkpiczi3tcLJrm5mA+eqpy0HmaIY9F6XCa32N5yzg== 897 | 898 | "@rollup/rollup-darwin-arm64@4.36.0": 899 | version "4.36.0" 900 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.36.0.tgz#82601b8ff81f3dbaef28017aa3d0e9709edc99c0" 901 | integrity sha512-JQ1Jk5G4bGrD4pWJQzWsD8I1n1mgPXq33+/vP4sk8j/z/C2siRuxZtaUA7yMTf71TCZTZl/4e1bfzwUmFb3+rw== 902 | 903 | "@rollup/rollup-darwin-x64@4.36.0": 904 | version "4.36.0" 905 | resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.36.0.tgz#0e961354fb2bf26d691810ca61dc861d9a1e94b2" 906 | integrity sha512-6c6wMZa1lrtiRsbDziCmjE53YbTkxMYhhnWnSW8R/yqsM7a6mSJ3uAVT0t8Y/DGt7gxUWYuFM4bwWk9XCJrFKA== 907 | 908 | "@rollup/rollup-freebsd-arm64@4.36.0": 909 | version "4.36.0" 910 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-arm64/-/rollup-freebsd-arm64-4.36.0.tgz#6aee296cd6b8c39158d377c89b7e0cd0851dd7c7" 911 | integrity sha512-KXVsijKeJXOl8QzXTsA+sHVDsFOmMCdBRgFmBb+mfEb/7geR7+C8ypAml4fquUt14ZyVXaw2o1FWhqAfOvA4sg== 912 | 913 | "@rollup/rollup-freebsd-x64@4.36.0": 914 | version "4.36.0" 915 | resolved "https://registry.yarnpkg.com/@rollup/rollup-freebsd-x64/-/rollup-freebsd-x64-4.36.0.tgz#432e49d93942225ac1b4d98254a6fb6ca0afcd17" 916 | integrity sha512-dVeWq1ebbvByI+ndz4IJcD4a09RJgRYmLccwlQ8bPd4olz3Y213uf1iwvc7ZaxNn2ab7bjc08PrtBgMu6nb4pQ== 917 | 918 | "@rollup/rollup-linux-arm-gnueabihf@4.36.0": 919 | version "4.36.0" 920 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.36.0.tgz#a66910c6c63b46d45f239528ad5509097f8df885" 921 | integrity sha512-bvXVU42mOVcF4le6XSjscdXjqx8okv4n5vmwgzcmtvFdifQ5U4dXFYaCB87namDRKlUL9ybVtLQ9ztnawaSzvg== 922 | 923 | "@rollup/rollup-linux-arm-musleabihf@4.36.0": 924 | version "4.36.0" 925 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-musleabihf/-/rollup-linux-arm-musleabihf-4.36.0.tgz#1cfadc70d44501b0a58615a460cf1b6ec8cfddf3" 926 | integrity sha512-JFIQrDJYrxOnyDQGYkqnNBtjDwTgbasdbUiQvcU8JmGDfValfH1lNpng+4FWlhaVIR4KPkeddYjsVVbmJYvDcg== 927 | 928 | "@rollup/rollup-linux-arm64-gnu@4.36.0": 929 | version "4.36.0" 930 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.36.0.tgz#d32e42b25216472dfdc5cb7df6a37667766d3855" 931 | integrity sha512-KqjYVh3oM1bj//5X7k79PSCZ6CvaVzb7Qs7VMWS+SlWB5M8p3FqufLP9VNp4CazJ0CsPDLwVD9r3vX7Ci4J56A== 932 | 933 | "@rollup/rollup-linux-arm64-musl@4.36.0": 934 | version "4.36.0" 935 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.36.0.tgz#d742917d61880941be26ff8d3352d935139188b9" 936 | integrity sha512-QiGnhScND+mAAtfHqeT+cB1S9yFnNQ/EwCg5yE3MzoaZZnIV0RV9O5alJAoJKX/sBONVKeZdMfO8QSaWEygMhw== 937 | 938 | "@rollup/rollup-linux-loongarch64-gnu@4.36.0": 939 | version "4.36.0" 940 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-loongarch64-gnu/-/rollup-linux-loongarch64-gnu-4.36.0.tgz#9ad12d1a5d3abf4ecb90fbe1a49249608cee8cbb" 941 | integrity sha512-1ZPyEDWF8phd4FQtTzMh8FQwqzvIjLsl6/84gzUxnMNFBtExBtpL51H67mV9xipuxl1AEAerRBgBwFNpkw8+Lg== 942 | 943 | "@rollup/rollup-linux-powerpc64le-gnu@4.36.0": 944 | version "4.36.0" 945 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-powerpc64le-gnu/-/rollup-linux-powerpc64le-gnu-4.36.0.tgz#c3ca6f5ce4a8b785dd450113660d9529a75fdf2a" 946 | integrity sha512-VMPMEIUpPFKpPI9GZMhJrtu8rxnp6mJR3ZzQPykq4xc2GmdHj3Q4cA+7avMyegXy4n1v+Qynr9fR88BmyO74tg== 947 | 948 | "@rollup/rollup-linux-riscv64-gnu@4.36.0": 949 | version "4.36.0" 950 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.36.0.tgz#05eb5e71db5b5b1d1a3428265a63c5f6f8a1e4b8" 951 | integrity sha512-ttE6ayb/kHwNRJGYLpuAvB7SMtOeQnVXEIpMtAvx3kepFQeowVED0n1K9nAdraHUPJ5hydEMxBpIR7o4nrm8uA== 952 | 953 | "@rollup/rollup-linux-s390x-gnu@4.36.0": 954 | version "4.36.0" 955 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-s390x-gnu/-/rollup-linux-s390x-gnu-4.36.0.tgz#6fa895f181fa6804bc6ca27c0e9a6823355436dd" 956 | integrity sha512-4a5gf2jpS0AIe7uBjxDeUMNcFmaRTbNv7NxI5xOCs4lhzsVyGR/0qBXduPnoWf6dGC365saTiwag8hP1imTgag== 957 | 958 | "@rollup/rollup-linux-x64-gnu@4.36.0": 959 | version "4.36.0" 960 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.36.0.tgz#d2e69f7598c71f03287b763fdbefce4163f07419" 961 | integrity sha512-5KtoW8UWmwFKQ96aQL3LlRXX16IMwyzMq/jSSVIIyAANiE1doaQsx/KRyhAvpHlPjPiSU/AYX/8m+lQ9VToxFQ== 962 | 963 | "@rollup/rollup-linux-x64-musl@4.36.0": 964 | version "4.36.0" 965 | resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.36.0.tgz#9eb0075deaabf5d88a9dc8b61bd7bd122ac64ef9" 966 | integrity sha512-sycrYZPrv2ag4OCvaN5js+f01eoZ2U+RmT5as8vhxiFz+kxwlHrsxOwKPSA8WyS+Wc6Epid9QeI/IkQ9NkgYyQ== 967 | 968 | "@rollup/rollup-win32-arm64-msvc@4.36.0": 969 | version "4.36.0" 970 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.36.0.tgz#bfda7178ed8cb8fa8786474a02eae9fc8649a74d" 971 | integrity sha512-qbqt4N7tokFwwSVlWDsjfoHgviS3n/vZ8LK0h1uLG9TYIRuUTJC88E1xb3LM2iqZ/WTqNQjYrtmtGmrmmawB6A== 972 | 973 | "@rollup/rollup-win32-ia32-msvc@4.36.0": 974 | version "4.36.0" 975 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.36.0.tgz#8e12739b9c43de8f0690b280c676af3de571cee0" 976 | integrity sha512-t+RY0JuRamIocMuQcfwYSOkmdX9dtkr1PbhKW42AMvaDQa+jOdpUYysroTF/nuPpAaQMWp7ye+ndlmmthieJrQ== 977 | 978 | "@rollup/rollup-win32-x64-msvc@4.36.0": 979 | version "4.36.0" 980 | resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.36.0.tgz#88b23fe29d28fa647030b36e912c1b5b50831b1d" 981 | integrity sha512-aRXd7tRZkWLqGbChgcMMDEHjOKudo1kChb1Jt1IfR8cY/KIpgNviLeJy5FUb9IpSuQj8dU2fAYNMPW/hLKOSTw== 982 | 983 | "@trysound/sax@0.2.0": 984 | version "0.2.0" 985 | resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" 986 | integrity sha512-L7z9BgrNEcYyUYtF+HaEfiS5ebkh9jXqbszz7pC0hRBPaatV0XjSD3+eHrpqFemQfgwiFF0QPIarnIihIDn7OA== 987 | 988 | "@types/estree@*", "@types/estree@1.0.6", "@types/estree@^1.0.0": 989 | version "1.0.6" 990 | resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.6.tgz#628effeeae2064a1b4e79f78e81d87b7e5fc7b50" 991 | integrity sha512-AYnb1nQyY49te+VRAVgmzfcgjYS91mY5P0TKUDCLEM+gNnA+3T6rWITXRLYCpahpqSQbN5cE+gHpnPyXjHWxcw== 992 | 993 | "@types/resolve@1.20.2": 994 | version "1.20.2" 995 | resolved "https://registry.yarnpkg.com/@types/resolve/-/resolve-1.20.2.tgz#97d26e00cd4a0423b4af620abecf3e6f442b7975" 996 | integrity sha512-60BCwRFOZCQhDncwQdxxeOEEkbc5dIMccYLwbxsS4TUNeVECQ/pBJ0j09mrHOl/JJvpRPGwO9SvE4nR2Nb/a4Q== 997 | 998 | accessor-fn@1: 999 | version "1.5.1" 1000 | resolved "https://registry.yarnpkg.com/accessor-fn/-/accessor-fn-1.5.1.tgz#7b2d063c16deba5040a46292824ed67d925cb8ea" 1001 | integrity sha512-zZpFYBqIL1Aqg+f2qmYHJ8+yIZF7/tP6PUGx2/QM0uGPSO5UegpinmkNwDohxWtOj586BpMPVRUjce2HI6xB3A== 1002 | 1003 | acorn@^8.8.2: 1004 | version "8.14.1" 1005 | resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.14.1.tgz#721d5dc10f7d5b5609a891773d47731796935dfb" 1006 | integrity sha512-OvQ/2pUDKmgfCg++xsTX1wGxfTaszcHVcTctW4UJB4hibJx2HXxxO5UmVgyjMa+ZDsiaf5wWLXYpRWMmBI0QHg== 1007 | 1008 | ansi-regex@^5.0.1: 1009 | version "5.0.1" 1010 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" 1011 | integrity sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ== 1012 | 1013 | ansi-regex@^6.0.1: 1014 | version "6.1.0" 1015 | resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-6.1.0.tgz#95ec409c69619d6cb1b8b34f14b660ef28ebd654" 1016 | integrity sha512-7HSX4QQb4CspciLpVFwyRe79O3xsIZDDLER21kERQ71oaPodF8jL725AgJMFAYbooIqolJoRLuM81SpeUkpkvA== 1017 | 1018 | ansi-styles@^4.0.0, ansi-styles@^4.1.0: 1019 | version "4.3.0" 1020 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-4.3.0.tgz#edd803628ae71c04c85ae7a0906edad34b648937" 1021 | integrity sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg== 1022 | dependencies: 1023 | color-convert "^2.0.1" 1024 | 1025 | ansi-styles@^6.1.0: 1026 | version "6.2.1" 1027 | resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-6.2.1.tgz#0e62320cf99c21afff3b3012192546aacbfb05c5" 1028 | integrity sha512-bN798gFfQX+viw3R7yrGWRqnrN2oRkEkUjjl4JNn4E8GxxbjtG3FbrEIIY3l8/hrwUwIeCZvi4QuOTP4MErVug== 1029 | 1030 | babel-plugin-polyfill-corejs2@^0.4.10: 1031 | version "0.4.13" 1032 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.13.tgz#7d445f0e0607ebc8fb6b01d7e8fb02069b91dd8b" 1033 | integrity sha512-3sX/eOms8kd3q2KZ6DAhKPc0dgm525Gqq5NtWKZ7QYYZEv57OQ54KtblzJzH1lQF/eQxO8KjWGIK9IPUJNus5g== 1034 | dependencies: 1035 | "@babel/compat-data" "^7.22.6" 1036 | "@babel/helper-define-polyfill-provider" "^0.6.4" 1037 | semver "^6.3.1" 1038 | 1039 | babel-plugin-polyfill-corejs3@^0.11.0: 1040 | version "0.11.1" 1041 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.11.1.tgz#4e4e182f1bb37c7ba62e2af81d8dd09df31344f6" 1042 | integrity sha512-yGCqvBT4rwMczo28xkH/noxJ6MZ4nJfkVYdoDaC/utLtWrXxv27HVrzAeSbqR8SxDsp46n0YF47EbHoixy6rXQ== 1043 | dependencies: 1044 | "@babel/helper-define-polyfill-provider" "^0.6.3" 1045 | core-js-compat "^3.40.0" 1046 | 1047 | babel-plugin-polyfill-regenerator@^0.6.1: 1048 | version "0.6.4" 1049 | resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.6.4.tgz#428c615d3c177292a22b4f93ed99e358d7906a9b" 1050 | integrity sha512-7gD3pRadPrbjhjLyxebmx/WrFYcuSjZ0XbdUujQMZ/fcE9oeewk2U/7PCvez84UeuK3oSjmPZ0Ch0dlupQvGzw== 1051 | dependencies: 1052 | "@babel/helper-define-polyfill-provider" "^0.6.4" 1053 | 1054 | balanced-match@^1.0.0: 1055 | version "1.0.2" 1056 | resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.2.tgz#e83e3a7e3f300b34cb9d87f615fa0cbf357690ee" 1057 | integrity sha512-3oSeUO0TMV67hN1AmbXsK4yaqU7tjiHlbxRDZOpH0KW9+CeX4bRAaX0Anxt0tx2MrpRpWwQaPwIlISEJhYU5Pw== 1058 | 1059 | boolbase@^1.0.0: 1060 | version "1.0.0" 1061 | resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" 1062 | integrity sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww== 1063 | 1064 | brace-expansion@^2.0.1: 1065 | version "2.0.1" 1066 | resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-2.0.1.tgz#1edc459e0f0c548486ecf9fc99f2221364b9a0ae" 1067 | integrity sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA== 1068 | dependencies: 1069 | balanced-match "^1.0.0" 1070 | 1071 | browserslist@^4.0.0, browserslist@^4.21.4, browserslist@^4.24.0, browserslist@^4.24.4: 1072 | version "4.24.4" 1073 | resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-4.24.4.tgz#c6b2865a3f08bcb860a0e827389003b9fe686e4b" 1074 | integrity sha512-KDi1Ny1gSePi1vm0q4oxSF8b4DR44GF4BbmS2YdhPLOEqd8pDviZOGH/GsmRwoWJ2+5Lr085X7naowMwKHDG1A== 1075 | dependencies: 1076 | caniuse-lite "^1.0.30001688" 1077 | electron-to-chromium "^1.5.73" 1078 | node-releases "^2.0.19" 1079 | update-browserslist-db "^1.1.1" 1080 | 1081 | buffer-from@^1.0.0: 1082 | version "1.1.2" 1083 | resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.1.2.tgz#2b146a6fd72e80b4f55d255f35ed59a3a9a41bd5" 1084 | integrity sha512-E+XQCRwSbaaiChtv6k6Dwgc+bx+Bs6vuKJHHl5kox/BaKbhiXzqQOwK4cO22yElGp2OCmjwVhT3HmxgyPGnJfQ== 1085 | 1086 | caniuse-api@^3.0.0: 1087 | version "3.0.0" 1088 | resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-3.0.0.tgz#5e4d90e2274961d46291997df599e3ed008ee4c0" 1089 | integrity sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw== 1090 | dependencies: 1091 | browserslist "^4.0.0" 1092 | caniuse-lite "^1.0.0" 1093 | lodash.memoize "^4.1.2" 1094 | lodash.uniq "^4.5.0" 1095 | 1096 | caniuse-lite@^1.0.0, caniuse-lite@^1.0.30001688: 1097 | version "1.0.30001706" 1098 | resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001706.tgz#902c3f896f4b2968031c3a546ab2ef8b465a2c8f" 1099 | integrity sha512-3ZczoTApMAZwPKYWmwVbQMFpXBDds3/0VciVoUwPUbldlYyVLmRVuRs/PcUZtHpbLRpzzDvrvnFuREsGt6lUug== 1100 | 1101 | chalk@^4.1.0: 1102 | version "4.1.2" 1103 | resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" 1104 | integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== 1105 | dependencies: 1106 | ansi-styles "^4.1.0" 1107 | supports-color "^7.1.0" 1108 | 1109 | color-convert@^2.0.1: 1110 | version "2.0.1" 1111 | resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-2.0.1.tgz#72d3a68d598c9bdb3af2ad1e84f21d896abd4de3" 1112 | integrity sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ== 1113 | dependencies: 1114 | color-name "~1.1.4" 1115 | 1116 | color-name@~1.1.4: 1117 | version "1.1.4" 1118 | resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.4.tgz#c2a09a87acbde69543de6f63fa3995c826c536a2" 1119 | integrity sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA== 1120 | 1121 | colord@^2.9.1: 1122 | version "2.9.3" 1123 | resolved "https://registry.yarnpkg.com/colord/-/colord-2.9.3.tgz#4f8ce919de456f1d5c1c368c307fe20f3e59fb43" 1124 | integrity sha512-jeC1axXpnb0/2nn/Y1LPuLdgXBLH7aDcHu4KEKfqw3CUhX7ZpfBSlPKyqXE6btIgEzfWtrX3/tyBCaCvXvMkOw== 1125 | 1126 | commander@^2.20.0: 1127 | version "2.20.3" 1128 | resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" 1129 | integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== 1130 | 1131 | commander@^7.2.0: 1132 | version "7.2.0" 1133 | resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" 1134 | integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== 1135 | 1136 | commondir@^1.0.1: 1137 | version "1.0.1" 1138 | resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" 1139 | integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== 1140 | 1141 | concat-with-sourcemaps@^1.1.0: 1142 | version "1.1.0" 1143 | resolved "https://registry.yarnpkg.com/concat-with-sourcemaps/-/concat-with-sourcemaps-1.1.0.tgz#d4ea93f05ae25790951b99e7b3b09e3908a4082e" 1144 | integrity sha512-4gEjHJFT9e+2W/77h/DS5SGUgwDaOwprX8L/gl5+3ixnzkVJJsZWDSelmN3Oilw3LNDZjZV0yqH1hLG3k6nghg== 1145 | dependencies: 1146 | source-map "^0.6.1" 1147 | 1148 | convert-source-map@^2.0.0: 1149 | version "2.0.0" 1150 | resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-2.0.0.tgz#4b560f649fc4e918dd0ab75cf4961e8bc882d82a" 1151 | integrity sha512-Kvp459HrV2FEJ1CAsi1Ku+MY3kasH19TFykTz2xWmMeq6bk2NU3XXvfJ+Q61m0xktWwt+1HSYf3JZsTms3aRJg== 1152 | 1153 | core-js-compat@^3.40.0: 1154 | version "3.41.0" 1155 | resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.41.0.tgz#4cdfce95f39a8f27759b667cf693d96e5dda3d17" 1156 | integrity sha512-RFsU9LySVue9RTwdDVX/T0e2Y6jRYWXERKElIjpuEOEnxaXffI0X7RUwVzfYLfzuLXSNJDYoRYUAmRUcyln20A== 1157 | dependencies: 1158 | browserslist "^4.24.4" 1159 | 1160 | cross-spawn@^7.0.6: 1161 | version "7.0.6" 1162 | resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.6.tgz#8a58fe78f00dcd70c370451759dfbfaf03e8ee9f" 1163 | integrity sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA== 1164 | dependencies: 1165 | path-key "^3.1.0" 1166 | shebang-command "^2.0.0" 1167 | which "^2.0.1" 1168 | 1169 | css-declaration-sorter@^6.3.1: 1170 | version "6.4.1" 1171 | resolved "https://registry.yarnpkg.com/css-declaration-sorter/-/css-declaration-sorter-6.4.1.tgz#28beac7c20bad7f1775be3a7129d7eae409a3a71" 1172 | integrity sha512-rtdthzxKuyq6IzqX6jEcIzQF/YqccluefyCYheovBOLhFT/drQA9zj/UbRAa9J7C0o6EG6u3E6g+vKkay7/k3g== 1173 | 1174 | css-select@^4.1.3: 1175 | version "4.3.0" 1176 | resolved "https://registry.yarnpkg.com/css-select/-/css-select-4.3.0.tgz#db7129b2846662fd8628cfc496abb2b59e41529b" 1177 | integrity sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ== 1178 | dependencies: 1179 | boolbase "^1.0.0" 1180 | css-what "^6.0.1" 1181 | domhandler "^4.3.1" 1182 | domutils "^2.8.0" 1183 | nth-check "^2.0.1" 1184 | 1185 | css-tree@^1.1.2, css-tree@^1.1.3: 1186 | version "1.1.3" 1187 | resolved "https://registry.yarnpkg.com/css-tree/-/css-tree-1.1.3.tgz#eb4870fb6fd7707327ec95c2ff2ab09b5e8db91d" 1188 | integrity sha512-tRpdppF7TRazZrjJ6v3stzv93qxRcSsFmW6cX0Zm2NVKpxE1WV1HblnghVv9TreireHkqI/VDEsfolRF1p6y7Q== 1189 | dependencies: 1190 | mdn-data "2.0.14" 1191 | source-map "^0.6.1" 1192 | 1193 | css-what@^6.0.1: 1194 | version "6.1.0" 1195 | resolved "https://registry.yarnpkg.com/css-what/-/css-what-6.1.0.tgz#fb5effcf76f1ddea2c81bdfaa4de44e79bac70f4" 1196 | integrity sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw== 1197 | 1198 | cssesc@^3.0.0: 1199 | version "3.0.0" 1200 | resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-3.0.0.tgz#37741919903b868565e1c09ea747445cd18983ee" 1201 | integrity sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg== 1202 | 1203 | cssnano-preset-default@^5.2.14: 1204 | version "5.2.14" 1205 | resolved "https://registry.yarnpkg.com/cssnano-preset-default/-/cssnano-preset-default-5.2.14.tgz#309def4f7b7e16d71ab2438052093330d9ab45d8" 1206 | integrity sha512-t0SFesj/ZV2OTylqQVOrFgEh5uanxbO6ZAdeCrNsUQ6fVuXwYTxJPNAGvGTxHbD68ldIJNec7PyYZDBrfDQ+6A== 1207 | dependencies: 1208 | css-declaration-sorter "^6.3.1" 1209 | cssnano-utils "^3.1.0" 1210 | postcss-calc "^8.2.3" 1211 | postcss-colormin "^5.3.1" 1212 | postcss-convert-values "^5.1.3" 1213 | postcss-discard-comments "^5.1.2" 1214 | postcss-discard-duplicates "^5.1.0" 1215 | postcss-discard-empty "^5.1.1" 1216 | postcss-discard-overridden "^5.1.0" 1217 | postcss-merge-longhand "^5.1.7" 1218 | postcss-merge-rules "^5.1.4" 1219 | postcss-minify-font-values "^5.1.0" 1220 | postcss-minify-gradients "^5.1.1" 1221 | postcss-minify-params "^5.1.4" 1222 | postcss-minify-selectors "^5.2.1" 1223 | postcss-normalize-charset "^5.1.0" 1224 | postcss-normalize-display-values "^5.1.0" 1225 | postcss-normalize-positions "^5.1.1" 1226 | postcss-normalize-repeat-style "^5.1.1" 1227 | postcss-normalize-string "^5.1.0" 1228 | postcss-normalize-timing-functions "^5.1.0" 1229 | postcss-normalize-unicode "^5.1.1" 1230 | postcss-normalize-url "^5.1.0" 1231 | postcss-normalize-whitespace "^5.1.1" 1232 | postcss-ordered-values "^5.1.3" 1233 | postcss-reduce-initial "^5.1.2" 1234 | postcss-reduce-transforms "^5.1.0" 1235 | postcss-svgo "^5.1.0" 1236 | postcss-unique-selectors "^5.1.1" 1237 | 1238 | cssnano-utils@^3.1.0: 1239 | version "3.1.0" 1240 | resolved "https://registry.yarnpkg.com/cssnano-utils/-/cssnano-utils-3.1.0.tgz#95684d08c91511edfc70d2636338ca37ef3a6861" 1241 | integrity sha512-JQNR19/YZhz4psLX/rQ9M83e3z2Wf/HdJbryzte4a3NSuafyp9w/I4U+hx5C2S9g41qlstH7DEWnZaaj83OuEA== 1242 | 1243 | cssnano@^5.0.1: 1244 | version "5.1.15" 1245 | resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-5.1.15.tgz#ded66b5480d5127fcb44dac12ea5a983755136bf" 1246 | integrity sha512-j+BKgDcLDQA+eDifLx0EO4XSA56b7uut3BQFH+wbSaSTuGLuiyTa/wbRYthUXX8LC9mLg+WWKe8h+qJuwTAbHw== 1247 | dependencies: 1248 | cssnano-preset-default "^5.2.14" 1249 | lilconfig "^2.0.3" 1250 | yaml "^1.10.2" 1251 | 1252 | csso@^4.2.0: 1253 | version "4.2.0" 1254 | resolved "https://registry.yarnpkg.com/csso/-/csso-4.2.0.tgz#ea3a561346e8dc9f546d6febedd50187cf389529" 1255 | integrity sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA== 1256 | dependencies: 1257 | css-tree "^1.1.2" 1258 | 1259 | "d3-array@2 - 3", "d3-array@2.10.0 - 3": 1260 | version "3.2.4" 1261 | resolved "https://registry.yarnpkg.com/d3-array/-/d3-array-3.2.4.tgz#15fec33b237f97ac5d7c986dc77da273a8ed0bb5" 1262 | integrity sha512-tdQAmyA18i4J7wprpYq8ClcxZy3SC31QMeByyCFyRt7BVHdREQZ5lpzoe5mFEYZUWe+oq8HBvk9JjpibyEV4Jg== 1263 | dependencies: 1264 | internmap "1 - 2" 1265 | 1266 | "d3-color@1 - 3": 1267 | version "3.1.0" 1268 | resolved "https://registry.yarnpkg.com/d3-color/-/d3-color-3.1.0.tgz#395b2833dfac71507f12ac2f7af23bf819de24e2" 1269 | integrity sha512-zg/chbXyeBtMQ1LbD/WSoW2DpC3I0mpmPdW+ynRTj/x2DAWYrIY7qeZIHidozwV24m4iavr15lNwIwLxRmOxhA== 1270 | 1271 | "d3-dispatch@1 - 3": 1272 | version "3.0.1" 1273 | resolved "https://registry.yarnpkg.com/d3-dispatch/-/d3-dispatch-3.0.1.tgz#5fc75284e9c2375c36c839411a0cf550cbfc4d5e" 1274 | integrity sha512-rzUyPU/S7rwUflMyLc1ETDeBj0NRuHKKAcvukozwhshr6g6c5d8zh4c2gQjY2bZ0dXeGLWc1PF174P2tVvKhfg== 1275 | 1276 | "d3-ease@1 - 3": 1277 | version "3.0.1" 1278 | resolved "https://registry.yarnpkg.com/d3-ease/-/d3-ease-3.0.1.tgz#9658ac38a2140d59d346160f1f6c30fda0bd12f4" 1279 | integrity sha512-wR/XK3D3XcLIZwpbvQwQ5fK+8Ykds1ip7A2Txe0yxncXSdq1L9skcG7blcedkOX+ZcgxGAmLX1FrRGbADwzi0w== 1280 | 1281 | "d3-format@1 - 3": 1282 | version "3.1.0" 1283 | resolved "https://registry.yarnpkg.com/d3-format/-/d3-format-3.1.0.tgz#9260e23a28ea5cb109e93b21a06e24e2ebd55641" 1284 | integrity sha512-YyUI6AEuY/Wpt8KWLgZHsIU86atmikuoOmCfommt0LYHiQSPjvX2AcFc38PX0CBpr2RCyZhjex+NS/LPOv6YqA== 1285 | 1286 | "d3-hierarchy@1 - 3": 1287 | version "3.1.2" 1288 | resolved "https://registry.yarnpkg.com/d3-hierarchy/-/d3-hierarchy-3.1.2.tgz#b01cd42c1eed3d46db77a5966cf726f8c09160c6" 1289 | integrity sha512-FX/9frcub54beBdugHjDCdikxThEqjnR93Qt7PvQTOHxyiNCAlvMrHhclk3cD5VeAaq9fxmfRp+CnWw9rEMBuA== 1290 | 1291 | "d3-interpolate@1 - 3", "d3-interpolate@1.2.0 - 3": 1292 | version "3.0.1" 1293 | resolved "https://registry.yarnpkg.com/d3-interpolate/-/d3-interpolate-3.0.1.tgz#3c47aa5b32c5b3dfb56ef3fd4342078a632b400d" 1294 | integrity sha512-3bYs1rOD33uo8aqJfKP3JWPAibgw8Zm2+L9vBKEHJ2Rg+viTR7o5Mmv5mZcieN+FRYaAOWX5SJATX6k1PWz72g== 1295 | dependencies: 1296 | d3-color "1 - 3" 1297 | 1298 | "d3-path@1 - 3", d3-path@^3.1.0: 1299 | version "3.1.0" 1300 | resolved "https://registry.yarnpkg.com/d3-path/-/d3-path-3.1.0.tgz#22df939032fb5a71ae8b1800d61ddb7851c42526" 1301 | integrity sha512-p3KP5HCf/bvjBSSKuXid6Zqijx7wIfNW+J/maPs+iwR35at5JCbLUT0LzF1cnjbCHWhqzQTIN2Jpe8pRebIEFQ== 1302 | 1303 | "d3-scale@1 - 4": 1304 | version "4.0.2" 1305 | resolved "https://registry.yarnpkg.com/d3-scale/-/d3-scale-4.0.2.tgz#82b38e8e8ff7080764f8dcec77bd4be393689396" 1306 | integrity sha512-GZW464g1SH7ag3Y7hXjf8RoUuAFIqklOAq3MRl4OaWabTFJY9PN/E1YklhXLh+OQ3fM9yS2nOkCoS+WLZ6kvxQ== 1307 | dependencies: 1308 | d3-array "2.10.0 - 3" 1309 | d3-format "1 - 3" 1310 | d3-interpolate "1.2.0 - 3" 1311 | d3-time "2.1.1 - 3" 1312 | d3-time-format "2 - 4" 1313 | 1314 | "d3-selection@2 - 3": 1315 | version "3.0.0" 1316 | resolved "https://registry.yarnpkg.com/d3-selection/-/d3-selection-3.0.0.tgz#c25338207efa72cc5b9bd1458a1a41901f1e1b31" 1317 | integrity sha512-fmTRWbNMmsmWq6xJV8D19U/gw/bwrHfNXxrIN+HfZgnzqTHp9jOmKMhsTUjXOJnZOdZY9Q28y4yebKzqDKlxlQ== 1318 | 1319 | "d3-shape@1 - 3": 1320 | version "3.2.0" 1321 | resolved "https://registry.yarnpkg.com/d3-shape/-/d3-shape-3.2.0.tgz#a1a839cbd9ba45f28674c69d7f855bcf91dfc6a5" 1322 | integrity sha512-SaLBuwGm3MOViRq2ABk3eLoxwZELpH6zhl3FbAoJ7Vm1gofKx6El1Ib5z23NUEhF9AsGl7y+dzLe5Cw2AArGTA== 1323 | dependencies: 1324 | d3-path "^3.1.0" 1325 | 1326 | "d3-time-format@2 - 4": 1327 | version "4.1.0" 1328 | resolved "https://registry.yarnpkg.com/d3-time-format/-/d3-time-format-4.1.0.tgz#7ab5257a5041d11ecb4fe70a5c7d16a195bb408a" 1329 | integrity sha512-dJxPBlzC7NugB2PDLwo9Q8JiTR3M3e4/XANkreKSUxF8vvXKqm1Yfq4Q5dl8budlunRVlUUaDUgFt7eA8D6NLg== 1330 | dependencies: 1331 | d3-time "1 - 3" 1332 | 1333 | "d3-time@1 - 3", "d3-time@2.1.1 - 3": 1334 | version "3.1.0" 1335 | resolved "https://registry.yarnpkg.com/d3-time/-/d3-time-3.1.0.tgz#9310db56e992e3c0175e1ef385e545e48a9bb5c7" 1336 | integrity sha512-VqKjzBLejbSMT4IgbmVgDjpkYrNWUYJnbCGo874u7MMKIWsILRX+OpX/gTk8MqjpT1A/c6HY2dCA77ZN0lkQ2Q== 1337 | dependencies: 1338 | d3-array "2 - 3" 1339 | 1340 | "d3-timer@1 - 3": 1341 | version "3.0.1" 1342 | resolved "https://registry.yarnpkg.com/d3-timer/-/d3-timer-3.0.1.tgz#6284d2a2708285b1abb7e201eda4380af35e63b0" 1343 | integrity sha512-ndfJ/JxxMd3nw31uyKoY2naivF+r29V+Lc0svZxe1JvvIRmi8hUsrMvdOwgS1o6uBHmiz91geQ0ylPP0aj1VUA== 1344 | 1345 | "d3-transition@2 - 3": 1346 | version "3.0.1" 1347 | resolved "https://registry.yarnpkg.com/d3-transition/-/d3-transition-3.0.1.tgz#6869fdde1448868077fdd5989200cb61b2a1645f" 1348 | integrity sha512-ApKvfjsSR6tg06xrL434C0WydLr7JewBB3V+/39RMHsaXTOG0zmt/OAXeng5M5LBm0ojmxJrpomQVZ1aPvBL4w== 1349 | dependencies: 1350 | d3-color "1 - 3" 1351 | d3-dispatch "1 - 3" 1352 | d3-ease "1 - 3" 1353 | d3-interpolate "1 - 3" 1354 | d3-timer "1 - 3" 1355 | 1356 | debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: 1357 | version "4.4.0" 1358 | resolved "https://registry.yarnpkg.com/debug/-/debug-4.4.0.tgz#2b3f2aea2ffeb776477460267377dc8710faba8a" 1359 | integrity sha512-6WTZ/IxCY/T6BALoZHaE4ctp9xm+Z5kY/pzYaCHRFeyVhojxlrm+46y68HA6hr0TcwEssoxNiDEUJQjfPZ/RYA== 1360 | dependencies: 1361 | ms "^2.1.3" 1362 | 1363 | deepmerge@^4.2.2: 1364 | version "4.3.1" 1365 | resolved "https://registry.yarnpkg.com/deepmerge/-/deepmerge-4.3.1.tgz#44b5f2147cd3b00d4b56137685966f26fd25dd4a" 1366 | integrity sha512-3sUqbMEc77XqpdNO7FRyRog+eW3ph+GYCbj+rK+uYyRMuwsVy0rMiVtPn+QJlKFvWP/1PYpapqYn0Me2knFn+A== 1367 | 1368 | dom-serializer@^1.0.1: 1369 | version "1.4.1" 1370 | resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.4.1.tgz#de5d41b1aea290215dc45a6dae8adcf1d32e2d30" 1371 | integrity sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag== 1372 | dependencies: 1373 | domelementtype "^2.0.1" 1374 | domhandler "^4.2.0" 1375 | entities "^2.0.0" 1376 | 1377 | domelementtype@^2.0.1, domelementtype@^2.2.0: 1378 | version "2.3.0" 1379 | resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-2.3.0.tgz#5c45e8e869952626331d7aab326d01daf65d589d" 1380 | integrity sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw== 1381 | 1382 | domhandler@^4.2.0, domhandler@^4.3.1: 1383 | version "4.3.1" 1384 | resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.3.1.tgz#8d792033416f59d68bc03a5aa7b018c1ca89279c" 1385 | integrity sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ== 1386 | dependencies: 1387 | domelementtype "^2.2.0" 1388 | 1389 | domutils@^2.8.0: 1390 | version "2.8.0" 1391 | resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135" 1392 | integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A== 1393 | dependencies: 1394 | dom-serializer "^1.0.1" 1395 | domelementtype "^2.2.0" 1396 | domhandler "^4.2.0" 1397 | 1398 | eastasianwidth@^0.2.0: 1399 | version "0.2.0" 1400 | resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" 1401 | integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== 1402 | 1403 | electron-to-chromium@^1.5.73: 1404 | version "1.5.123" 1405 | resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.5.123.tgz#fae5bdba0ba27045895176327aa79831aba0790c" 1406 | integrity sha512-refir3NlutEZqlKaBLK0tzlVLe5P2wDKS7UQt/3SpibizgsRAPOsqQC3ffw1nlv3ze5gjRQZYHoPymgVZkplFA== 1407 | 1408 | emoji-regex@^8.0.0: 1409 | version "8.0.0" 1410 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" 1411 | integrity sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A== 1412 | 1413 | emoji-regex@^9.2.2: 1414 | version "9.2.2" 1415 | resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-9.2.2.tgz#840c8803b0d8047f4ff0cf963176b32d4ef3ed72" 1416 | integrity sha512-L18DaJsXSUk2+42pv8mLs5jJT2hqFkFE4j21wOmgbUqsZ2hL72NsUU785g9RXgo3s0ZNgVl42TiHp3ZtOv/Vyg== 1417 | 1418 | entities@^2.0.0: 1419 | version "2.2.0" 1420 | resolved "https://registry.yarnpkg.com/entities/-/entities-2.2.0.tgz#098dc90ebb83d8dffa089d55256b351d34c4da55" 1421 | integrity sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A== 1422 | 1423 | escalade@^3.2.0: 1424 | version "3.2.0" 1425 | resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.2.0.tgz#011a3f69856ba189dffa7dc8fcce99d2a87903e5" 1426 | integrity sha512-WUj2qlxaQtO4g6Pq5c29GTcWGDyd8itL8zTlipgECz3JesAiiOKotd8JU6otB3PACgG6xkJUyVhboMS+bje/jA== 1427 | 1428 | estree-walker@^0.6.1: 1429 | version "0.6.1" 1430 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-0.6.1.tgz#53049143f40c6eb918b23671d1fe3219f3a1b362" 1431 | integrity sha512-SqmZANLWS0mnatqbSfRP5g8OXZC12Fgg1IwNtLsyHDzJizORW4khDfjPqJZsemPWBB2uqykUah5YpQ6epsqC/w== 1432 | 1433 | estree-walker@^2.0.2: 1434 | version "2.0.2" 1435 | resolved "https://registry.yarnpkg.com/estree-walker/-/estree-walker-2.0.2.tgz#52f010178c2a4c117a7757cfe942adb7d2da4cac" 1436 | integrity sha512-Rfkk/Mp/DL7JVje3u18FxFujQlTNR2q6QfMSMB7AvCBx91NGj/ba3kCfza0f6dVDbw7YlRf/nDrn7pQrCCyQ/w== 1437 | 1438 | esutils@^2.0.2: 1439 | version "2.0.3" 1440 | resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" 1441 | integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== 1442 | 1443 | eventemitter3@^4.0.4: 1444 | version "4.0.7" 1445 | resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-4.0.7.tgz#2de9b68f6528d5644ef5c59526a1b4a07306169f" 1446 | integrity sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw== 1447 | 1448 | fdir@^6.2.0: 1449 | version "6.4.3" 1450 | resolved "https://registry.yarnpkg.com/fdir/-/fdir-6.4.3.tgz#011cdacf837eca9b811c89dbb902df714273db72" 1451 | integrity sha512-PMXmW2y1hDDfTSRc9gaXIuCCRpuoz3Kaz8cUelp3smouvfT632ozg2vrT6lJsHKKOF59YLbOGfAWGUcKEfRMQw== 1452 | 1453 | float-tooltip@1: 1454 | version "1.7.4" 1455 | resolved "https://registry.yarnpkg.com/float-tooltip/-/float-tooltip-1.7.4.tgz#279b819f7a20fc772b01019434f135f486e9737f" 1456 | integrity sha512-UUcH+5MHMnHf7a3qF2ZJ7J5PTtTKHRqdaoC3VAHZuX8ooEegNWxpmmHk192lABXw0+O+FzGB4anpEiqe6iv+WA== 1457 | dependencies: 1458 | d3-selection "2 - 3" 1459 | kapsule "^1.16" 1460 | preact "10" 1461 | 1462 | foreground-child@^3.1.0: 1463 | version "3.3.1" 1464 | resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.3.1.tgz#32e8e9ed1b68a3497befb9ac2b6adf92a638576f" 1465 | integrity sha512-gIXjKqtFuWEgzFRJA9WCQeSJLZDjgJUOMCMzxtvFq/37KojM1BFGufqsCy0r4qSQmYLsZYMeyRqzIWOMup03sw== 1466 | dependencies: 1467 | cross-spawn "^7.0.6" 1468 | signal-exit "^4.0.1" 1469 | 1470 | fsevents@~2.3.2: 1471 | version "2.3.3" 1472 | resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" 1473 | integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== 1474 | 1475 | function-bind@^1.1.2: 1476 | version "1.1.2" 1477 | resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.2.tgz#2c02d864d97f3ea6c8830c464cbd11ab6eab7a1c" 1478 | integrity sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA== 1479 | 1480 | generic-names@^4.0.0: 1481 | version "4.0.0" 1482 | resolved "https://registry.yarnpkg.com/generic-names/-/generic-names-4.0.0.tgz#0bd8a2fd23fe8ea16cbd0a279acd69c06933d9a3" 1483 | integrity sha512-ySFolZQfw9FoDb3ed9d80Cm9f0+r7qj+HJkWjeD9RBfpxEVTlVhol+gvaQB/78WbwYfbnNh8nWHHBSlg072y6A== 1484 | dependencies: 1485 | loader-utils "^3.2.0" 1486 | 1487 | gensync@^1.0.0-beta.2: 1488 | version "1.0.0-beta.2" 1489 | resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" 1490 | integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== 1491 | 1492 | glob@^11.0.0: 1493 | version "11.0.1" 1494 | resolved "https://registry.yarnpkg.com/glob/-/glob-11.0.1.tgz#1c3aef9a59d680e611b53dcd24bb8639cef064d9" 1495 | integrity sha512-zrQDm8XPnYEKawJScsnM0QzobJxlT/kHOOlRTio8IH/GrmxRE5fjllkzdaHclIuNjUQTJYH2xHNIGfdpJkDJUw== 1496 | dependencies: 1497 | foreground-child "^3.1.0" 1498 | jackspeak "^4.0.1" 1499 | minimatch "^10.0.0" 1500 | minipass "^7.1.2" 1501 | package-json-from-dist "^1.0.0" 1502 | path-scurry "^2.0.0" 1503 | 1504 | globals@^11.1.0: 1505 | version "11.12.0" 1506 | resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" 1507 | integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== 1508 | 1509 | has-flag@^4.0.0: 1510 | version "4.0.0" 1511 | resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-4.0.0.tgz#944771fd9c81c81265c4d6941860da06bb59479b" 1512 | integrity sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ== 1513 | 1514 | hasown@^2.0.2: 1515 | version "2.0.2" 1516 | resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.2.tgz#003eaf91be7adc372e84ec59dc37252cedb80003" 1517 | integrity sha512-0hJU9SCPvmMzIBdZFqNPXWa6dqh7WdH0cII9y+CyS8rG3nL48Bclra9HmKhVVUHyPWNH5Y7xDwAB7bfgSjkUMQ== 1518 | dependencies: 1519 | function-bind "^1.1.2" 1520 | 1521 | icss-replace-symbols@^1.1.0: 1522 | version "1.1.0" 1523 | resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" 1524 | integrity sha512-chIaY3Vh2mh2Q3RGXttaDIzeiPvaVXJ+C4DAh/w3c37SKZ/U6PGMmuicR2EQQp9bKG8zLMCl7I+PtIoOOPp8Gg== 1525 | 1526 | icss-utils@^5.0.0: 1527 | version "5.1.0" 1528 | resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" 1529 | integrity sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA== 1530 | 1531 | import-cwd@^3.0.0: 1532 | version "3.0.0" 1533 | resolved "https://registry.yarnpkg.com/import-cwd/-/import-cwd-3.0.0.tgz#20845547718015126ea9b3676b7592fb8bd4cf92" 1534 | integrity sha512-4pnzH16plW+hgvRECbDWpQl3cqtvSofHWh44met7ESfZ8UZOWWddm8hEyDTqREJ9RbYHY8gi8DqmaelApoOGMg== 1535 | dependencies: 1536 | import-from "^3.0.0" 1537 | 1538 | import-from@^3.0.0: 1539 | version "3.0.0" 1540 | resolved "https://registry.yarnpkg.com/import-from/-/import-from-3.0.0.tgz#055cfec38cd5a27d8057ca51376d7d3bf0891966" 1541 | integrity sha512-CiuXOFFSzkU5x/CR0+z7T91Iht4CXgfCxVOFRhh2Zyhg5wOpWvvDLQUsWl+gcN+QscYBjez8hDCt85O7RLDttQ== 1542 | dependencies: 1543 | resolve-from "^5.0.0" 1544 | 1545 | "internmap@1 - 2": 1546 | version "2.0.3" 1547 | resolved "https://registry.yarnpkg.com/internmap/-/internmap-2.0.3.tgz#6685f23755e43c524e251d29cbc97248e3061009" 1548 | integrity sha512-5Hh7Y1wQbvY5ooGgPbDaL5iYLAPzMTUrjMulskHLH6wnv/A+1q5rgEaiuqEjB+oxGXIVZs1FF+R/KPN3ZSQYYg== 1549 | 1550 | is-core-module@^2.16.0: 1551 | version "2.16.1" 1552 | resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.16.1.tgz#2a98801a849f43e2add644fbb6bc6229b19a4ef4" 1553 | integrity sha512-UfoeMA6fIJ8wTYFEUjelnaGI67v6+N7qXJEvQuIGa99l4xsCruSYOVSQ0uPANn4dAzm8lkYPaKLrrijLq7x23w== 1554 | dependencies: 1555 | hasown "^2.0.2" 1556 | 1557 | is-fullwidth-code-point@^3.0.0: 1558 | version "3.0.0" 1559 | resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz#f116f8064fe90b3f7844a38997c0b75051269f1d" 1560 | integrity sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg== 1561 | 1562 | is-module@^1.0.0: 1563 | version "1.0.0" 1564 | resolved "https://registry.yarnpkg.com/is-module/-/is-module-1.0.0.tgz#3258fb69f78c14d5b815d664336b4cffb6441591" 1565 | integrity sha512-51ypPSPCoTEIN9dy5Oy+h4pShgJmPCygKfyRCISBI+JoWT/2oJvK8QPxmwv7b/p239jXrm9M1mlQbyKJ5A152g== 1566 | 1567 | is-reference@1.2.1: 1568 | version "1.2.1" 1569 | resolved "https://registry.yarnpkg.com/is-reference/-/is-reference-1.2.1.tgz#8b2dac0b371f4bc994fdeaba9eb542d03002d0b7" 1570 | integrity sha512-U82MsXXiFIrjCK4otLT+o2NA2Cd2g5MLoOVXUZjIOhLurrRxpEXzI8O0KZHr3IjLvlAH1kTPYSuqer5T9ZVBKQ== 1571 | dependencies: 1572 | "@types/estree" "*" 1573 | 1574 | isexe@^2.0.0: 1575 | version "2.0.0" 1576 | resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" 1577 | integrity sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw== 1578 | 1579 | jackspeak@^4.0.1: 1580 | version "4.1.0" 1581 | resolved "https://registry.yarnpkg.com/jackspeak/-/jackspeak-4.1.0.tgz#c489c079f2b636dc4cbe9b0312a13ff1282e561b" 1582 | integrity sha512-9DDdhb5j6cpeitCbvLO7n7J4IxnbM6hoF6O1g4HQ5TfhvvKN8ywDM7668ZhMHRqVmxqhps/F6syWK2KcPxYlkw== 1583 | dependencies: 1584 | "@isaacs/cliui" "^8.0.2" 1585 | 1586 | js-tokens@^4.0.0: 1587 | version "4.0.0" 1588 | resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499" 1589 | integrity sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ== 1590 | 1591 | jsesc@^3.0.2: 1592 | version "3.1.0" 1593 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.1.0.tgz#74d335a234f67ed19907fdadfac7ccf9d409825d" 1594 | integrity sha512-/sM3dO2FOzXjKQhJuo0Q173wf2KOo8t4I8vHy6lF9poUp7bKT0/NHE8fPX23PwfhnykfqnC2xRxOnVw5XuGIaA== 1595 | 1596 | jsesc@~3.0.2: 1597 | version "3.0.2" 1598 | resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-3.0.2.tgz#bb8b09a6597ba426425f2e4a07245c3d00b9343e" 1599 | integrity sha512-xKqzzWXDttJuOcawBt4KnKHHIf5oQ/Cxax+0PWFG+DFDgHNAdi+TXECADI+RYiFUMmx8792xsMbbgXj4CwnP4g== 1600 | 1601 | json5@^2.2.3: 1602 | version "2.2.3" 1603 | resolved "https://registry.yarnpkg.com/json5/-/json5-2.2.3.tgz#78cd6f1a19bdc12b73db5ad0c61efd66c1e29283" 1604 | integrity sha512-XmOWe7eyHYH14cLdVPoyg+GOH3rYX++KpzrylJwSW98t3Nk+U8XOl8FWKOgwtzdb8lXGf6zYwDUzeHMWfxasyg== 1605 | 1606 | kapsule@^1.16: 1607 | version "1.16.0" 1608 | resolved "https://registry.yarnpkg.com/kapsule/-/kapsule-1.16.0.tgz#184e3982211d0650055c9a751fa07d44b8a7b8ac" 1609 | integrity sha512-4f/z/Luu0cEXmagCwaFyzvfZai2HKgB4CQLwmsMUA+jlUbW94HfFSX+TWZxzWoMSO6b6aR+FD2Xd5z88VYZJTw== 1610 | dependencies: 1611 | lodash-es "4" 1612 | 1613 | lilconfig@^2.0.3, lilconfig@^2.0.5: 1614 | version "2.1.0" 1615 | resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" 1616 | integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== 1617 | 1618 | loader-utils@^3.2.0: 1619 | version "3.3.1" 1620 | resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-3.3.1.tgz#735b9a19fd63648ca7adbd31c2327dfe281304e5" 1621 | integrity sha512-FMJTLMXfCLMLfJxcX9PFqX5qD88Z5MRGaZCVzfuqeZSPsyiBzs+pahDQjbIWz2QIzPZz0NX9Zy4FX3lmK6YHIg== 1622 | 1623 | lodash-es@4: 1624 | version "4.17.21" 1625 | resolved "https://registry.yarnpkg.com/lodash-es/-/lodash-es-4.17.21.tgz#43e626c46e6591b7750beb2b50117390c609e3ee" 1626 | integrity sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw== 1627 | 1628 | lodash.camelcase@^4.3.0: 1629 | version "4.3.0" 1630 | resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" 1631 | integrity sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA== 1632 | 1633 | lodash.debounce@^4.0.8: 1634 | version "4.0.8" 1635 | resolved "https://registry.yarnpkg.com/lodash.debounce/-/lodash.debounce-4.0.8.tgz#82d79bff30a67c4005ffd5e2515300ad9ca4d7af" 1636 | integrity sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow== 1637 | 1638 | lodash.memoize@^4.1.2: 1639 | version "4.1.2" 1640 | resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" 1641 | integrity sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag== 1642 | 1643 | lodash.uniq@^4.5.0: 1644 | version "4.5.0" 1645 | resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" 1646 | integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== 1647 | 1648 | lru-cache@^11.0.0: 1649 | version "11.0.2" 1650 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-11.0.2.tgz#fbd8e7cf8211f5e7e5d91905c415a3f55755ca39" 1651 | integrity sha512-123qHRfJBmo2jXDbo/a5YOQrJoHF/GNQTLzQ5+IdK5pWpceK17yRc6ozlWd25FxvGKQbIUs91fDFkXmDHTKcyA== 1652 | 1653 | lru-cache@^5.1.1: 1654 | version "5.1.1" 1655 | resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-5.1.1.tgz#1da27e6710271947695daf6848e847f01d84b920" 1656 | integrity sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w== 1657 | dependencies: 1658 | yallist "^3.0.2" 1659 | 1660 | magic-string@^0.30.17, magic-string@^0.30.3: 1661 | version "0.30.17" 1662 | resolved "https://registry.yarnpkg.com/magic-string/-/magic-string-0.30.17.tgz#450a449673d2460e5bbcfba9a61916a1714c7453" 1663 | integrity sha512-sNPKHvyjVf7gyjwS4xGTaW/mCnF8wnjtifKBEhxfZ7E/S8tQ0rssrwGNn6q8JH/ohItJfSQp9mBtQYuTlH5QnA== 1664 | dependencies: 1665 | "@jridgewell/sourcemap-codec" "^1.5.0" 1666 | 1667 | mdn-data@2.0.14: 1668 | version "2.0.14" 1669 | resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" 1670 | integrity sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow== 1671 | 1672 | minimatch@^10.0.0: 1673 | version "10.0.1" 1674 | resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-10.0.1.tgz#ce0521856b453c86e25f2c4c0d03e6ff7ddc440b" 1675 | integrity sha512-ethXTt3SGGR+95gudmqJ1eNhRO7eGEGIgYA9vnPatK4/etz2MEVDno5GMCibdMTuBMyElzIlgxMna3K94XDIDQ== 1676 | dependencies: 1677 | brace-expansion "^2.0.1" 1678 | 1679 | minipass@^7.1.2: 1680 | version "7.1.2" 1681 | resolved "https://registry.yarnpkg.com/minipass/-/minipass-7.1.2.tgz#93a9626ce5e5e66bd4db86849e7515e92340a707" 1682 | integrity sha512-qOOzS1cBTWYF4BH8fVePDBOO9iptMnGUEZwNc/cMWnTV2nVLZ7VoNWEPHkYczZA0pdoA7dl6e7FL659nX9S2aw== 1683 | 1684 | ms@^2.1.3: 1685 | version "2.1.3" 1686 | resolved "https://registry.yarnpkg.com/ms/-/ms-2.1.3.tgz#574c8138ce1d2b5861f0b44579dbadd60c6615b2" 1687 | integrity sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA== 1688 | 1689 | nanoid@^3.3.8: 1690 | version "3.3.11" 1691 | resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.11.tgz#4f4f112cefbe303202f2199838128936266d185b" 1692 | integrity sha512-N8SpfPUnUp1bK+PMYW8qSWdl9U+wwNWI4QKxOYDy9JAro3WMX7p2OeVRF9v+347pnakNevPmiHhNmZ2HbFA76w== 1693 | 1694 | node-releases@^2.0.19: 1695 | version "2.0.19" 1696 | resolved "https://registry.yarnpkg.com/node-releases/-/node-releases-2.0.19.tgz#9e445a52950951ec4d177d843af370b411caf314" 1697 | integrity sha512-xxOWJsBKtzAq7DY0J+DTzuz58K8e7sJbdgwkbMWQe8UYB6ekmsQ45q0M/tJDsGaZmbC+l7n57UV8Hl5tHxO9uw== 1698 | 1699 | normalize-url@^6.0.1: 1700 | version "6.1.0" 1701 | resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" 1702 | integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== 1703 | 1704 | nth-check@^2.0.1: 1705 | version "2.1.1" 1706 | resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-2.1.1.tgz#c9eab428effce36cd6b92c924bdb000ef1f1ed1d" 1707 | integrity sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w== 1708 | dependencies: 1709 | boolbase "^1.0.0" 1710 | 1711 | p-finally@^1.0.0: 1712 | version "1.0.0" 1713 | resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" 1714 | integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== 1715 | 1716 | p-queue@^6.6.2: 1717 | version "6.6.2" 1718 | resolved "https://registry.yarnpkg.com/p-queue/-/p-queue-6.6.2.tgz#2068a9dcf8e67dd0ec3e7a2bcb76810faa85e426" 1719 | integrity sha512-RwFpb72c/BhQLEXIZ5K2e+AhgNVmIejGlTgiB9MzZ0e93GRvqZ7uSi0dvRF7/XIXDeNkra2fNHBxTyPDGySpjQ== 1720 | dependencies: 1721 | eventemitter3 "^4.0.4" 1722 | p-timeout "^3.2.0" 1723 | 1724 | p-timeout@^3.2.0: 1725 | version "3.2.0" 1726 | resolved "https://registry.yarnpkg.com/p-timeout/-/p-timeout-3.2.0.tgz#c7e17abc971d2a7962ef83626b35d635acf23dfe" 1727 | integrity sha512-rhIwUycgwwKcP9yTOOFK/AKsAopjjCakVqLHePO3CC6Mir1Z99xT+R63jZxAT5lFZLa2inS5h+ZS2GvR99/FBg== 1728 | dependencies: 1729 | p-finally "^1.0.0" 1730 | 1731 | package-json-from-dist@^1.0.0: 1732 | version "1.0.1" 1733 | resolved "https://registry.yarnpkg.com/package-json-from-dist/-/package-json-from-dist-1.0.1.tgz#4f1471a010827a86f94cfd9b0727e36d267de505" 1734 | integrity sha512-UEZIS3/by4OC8vL3P2dTXRETpebLI2NiI5vIrjaD/5UtrkFX/tNbwjTSRAGC/+7CAo2pIcBaRgWmcBBHcsaCIw== 1735 | 1736 | path-key@^3.1.0: 1737 | version "3.1.1" 1738 | resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" 1739 | integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== 1740 | 1741 | path-parse@^1.0.7: 1742 | version "1.0.7" 1743 | resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735" 1744 | integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw== 1745 | 1746 | path-scurry@^2.0.0: 1747 | version "2.0.0" 1748 | resolved "https://registry.yarnpkg.com/path-scurry/-/path-scurry-2.0.0.tgz#9f052289f23ad8bf9397a2a0425e7b8615c58580" 1749 | integrity sha512-ypGJsmGtdXUOeM5u93TyeIEfEhM6s+ljAhrk5vAvSx8uyY/02OvrZnA0YNGUrPXfpJMgI1ODd3nwz8Npx4O4cg== 1750 | dependencies: 1751 | lru-cache "^11.0.0" 1752 | minipass "^7.1.2" 1753 | 1754 | picocolors@^1.0.0, picocolors@^1.1.1: 1755 | version "1.1.1" 1756 | resolved "https://registry.yarnpkg.com/picocolors/-/picocolors-1.1.1.tgz#3d321af3eab939b083c8f929a1d12cda81c26b6b" 1757 | integrity sha512-xceH2snhtb5M9liqDsmEw56le376mTZkEX/jEb/RxNFyegNul7eNslCXP9FDj/Lcu0X8KEyMceP2ntpaHrDEVA== 1758 | 1759 | picomatch@^4.0.2: 1760 | version "4.0.2" 1761 | resolved "https://registry.yarnpkg.com/picomatch/-/picomatch-4.0.2.tgz#77c742931e8f3b8820946c76cd0c1f13730d1dab" 1762 | integrity sha512-M7BAV6Rlcy5u+m6oPhAPFgJTzAioX/6B0DxyvDlo9l8+T3nLKbrczg2WLUyzd45L8RqfUMyGPzekbMvX2Ldkwg== 1763 | 1764 | pify@^5.0.0: 1765 | version "5.0.0" 1766 | resolved "https://registry.yarnpkg.com/pify/-/pify-5.0.0.tgz#1f5eca3f5e87ebec28cc6d54a0e4aaf00acc127f" 1767 | integrity sha512-eW/gHNMlxdSP6dmG6uJip6FXN0EQBwm2clYYd8Wul42Cwu/DK8HEftzsapcNdYe2MfLiIwZqsDk2RDEsTE79hA== 1768 | 1769 | postcss-calc@^8.2.3: 1770 | version "8.2.4" 1771 | resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-8.2.4.tgz#77b9c29bfcbe8a07ff6693dc87050828889739a5" 1772 | integrity sha512-SmWMSJmB8MRnnULldx0lQIyhSNvuDl9HfrZkaqqE/WHAhToYsAvDq+yAsA/kIyINDszOp3Rh0GFoNuH5Ypsm3Q== 1773 | dependencies: 1774 | postcss-selector-parser "^6.0.9" 1775 | postcss-value-parser "^4.2.0" 1776 | 1777 | postcss-colormin@^5.3.1: 1778 | version "5.3.1" 1779 | resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-5.3.1.tgz#86c27c26ed6ba00d96c79e08f3ffb418d1d1988f" 1780 | integrity sha512-UsWQG0AqTFQmpBegeLLc1+c3jIqBNB0zlDGRWR+dQ3pRKJL1oeMzyqmH3o2PIfn9MBdNrVPWhDbT769LxCTLJQ== 1781 | dependencies: 1782 | browserslist "^4.21.4" 1783 | caniuse-api "^3.0.0" 1784 | colord "^2.9.1" 1785 | postcss-value-parser "^4.2.0" 1786 | 1787 | postcss-convert-values@^5.1.3: 1788 | version "5.1.3" 1789 | resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-5.1.3.tgz#04998bb9ba6b65aa31035d669a6af342c5f9d393" 1790 | integrity sha512-82pC1xkJZtcJEfiLw6UXnXVXScgtBrjlO5CBmuDQc+dlb88ZYheFsjTn40+zBVi3DkfF7iezO0nJUPLcJK3pvA== 1791 | dependencies: 1792 | browserslist "^4.21.4" 1793 | postcss-value-parser "^4.2.0" 1794 | 1795 | postcss-discard-comments@^5.1.2: 1796 | version "5.1.2" 1797 | resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-5.1.2.tgz#8df5e81d2925af2780075840c1526f0660e53696" 1798 | integrity sha512-+L8208OVbHVF2UQf1iDmRcbdjJkuBF6IS29yBDSiWUIzpYaAhtNl6JYnYm12FnkeCwQqF5LeklOu6rAqgfBZqQ== 1799 | 1800 | postcss-discard-duplicates@^5.1.0: 1801 | version "5.1.0" 1802 | resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-5.1.0.tgz#9eb4fe8456706a4eebd6d3b7b777d07bad03e848" 1803 | integrity sha512-zmX3IoSI2aoenxHV6C7plngHWWhUOV3sP1T8y2ifzxzbtnuhk1EdPwm0S1bIUNaJ2eNbWeGLEwzw8huPD67aQw== 1804 | 1805 | postcss-discard-empty@^5.1.1: 1806 | version "5.1.1" 1807 | resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-5.1.1.tgz#e57762343ff7f503fe53fca553d18d7f0c369c6c" 1808 | integrity sha512-zPz4WljiSuLWsI0ir4Mcnr4qQQ5e1Ukc3i7UfE2XcrwKK2LIPIqE5jxMRxO6GbI3cv//ztXDsXwEWT3BHOGh3A== 1809 | 1810 | postcss-discard-overridden@^5.1.0: 1811 | version "5.1.0" 1812 | resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-5.1.0.tgz#7e8c5b53325747e9d90131bb88635282fb4a276e" 1813 | integrity sha512-21nOL7RqWR1kasIVdKs8HNqQJhFxLsyRfAnUDm4Fe4t4mCWL9OJiHvlHPjcd8zc5Myu89b/7wZDnOSjFgeWRtw== 1814 | 1815 | postcss-load-config@^3.0.0: 1816 | version "3.1.4" 1817 | resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-3.1.4.tgz#1ab2571faf84bb078877e1d07905eabe9ebda855" 1818 | integrity sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg== 1819 | dependencies: 1820 | lilconfig "^2.0.5" 1821 | yaml "^1.10.2" 1822 | 1823 | postcss-merge-longhand@^5.1.7: 1824 | version "5.1.7" 1825 | resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-5.1.7.tgz#24a1bdf402d9ef0e70f568f39bdc0344d568fb16" 1826 | integrity sha512-YCI9gZB+PLNskrK0BB3/2OzPnGhPkBEwmwhfYk1ilBHYVAZB7/tkTHFBAnCrvBBOmeYyMYw3DMjT55SyxMBzjQ== 1827 | dependencies: 1828 | postcss-value-parser "^4.2.0" 1829 | stylehacks "^5.1.1" 1830 | 1831 | postcss-merge-rules@^5.1.4: 1832 | version "5.1.4" 1833 | resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-5.1.4.tgz#2f26fa5cacb75b1402e213789f6766ae5e40313c" 1834 | integrity sha512-0R2IuYpgU93y9lhVbO/OylTtKMVcHb67zjWIfCiKR9rWL3GUk1677LAqD/BcHizukdZEjT8Ru3oHRoAYoJy44g== 1835 | dependencies: 1836 | browserslist "^4.21.4" 1837 | caniuse-api "^3.0.0" 1838 | cssnano-utils "^3.1.0" 1839 | postcss-selector-parser "^6.0.5" 1840 | 1841 | postcss-minify-font-values@^5.1.0: 1842 | version "5.1.0" 1843 | resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-5.1.0.tgz#f1df0014a726083d260d3bd85d7385fb89d1f01b" 1844 | integrity sha512-el3mYTgx13ZAPPirSVsHqFzl+BBBDrXvbySvPGFnQcTI4iNslrPaFq4muTkLZmKlGk4gyFAYUBMH30+HurREyA== 1845 | dependencies: 1846 | postcss-value-parser "^4.2.0" 1847 | 1848 | postcss-minify-gradients@^5.1.1: 1849 | version "5.1.1" 1850 | resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-5.1.1.tgz#f1fe1b4f498134a5068240c2f25d46fcd236ba2c" 1851 | integrity sha512-VGvXMTpCEo4qHTNSa9A0a3D+dxGFZCYwR6Jokk+/3oB6flu2/PnPXAh2x7x52EkY5xlIHLm+Le8tJxe/7TNhzw== 1852 | dependencies: 1853 | colord "^2.9.1" 1854 | cssnano-utils "^3.1.0" 1855 | postcss-value-parser "^4.2.0" 1856 | 1857 | postcss-minify-params@^5.1.4: 1858 | version "5.1.4" 1859 | resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-5.1.4.tgz#c06a6c787128b3208b38c9364cfc40c8aa5d7352" 1860 | integrity sha512-+mePA3MgdmVmv6g+30rn57USjOGSAyuxUmkfiWpzalZ8aiBkdPYjXWtHuwJGm1v5Ojy0Z0LaSYhHaLJQB0P8Jw== 1861 | dependencies: 1862 | browserslist "^4.21.4" 1863 | cssnano-utils "^3.1.0" 1864 | postcss-value-parser "^4.2.0" 1865 | 1866 | postcss-minify-selectors@^5.2.1: 1867 | version "5.2.1" 1868 | resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-5.2.1.tgz#d4e7e6b46147b8117ea9325a915a801d5fe656c6" 1869 | integrity sha512-nPJu7OjZJTsVUmPdm2TcaiohIwxP+v8ha9NehQ2ye9szv4orirRU3SDdtUmKH+10nzn0bAyOXZ0UEr7OpvLehg== 1870 | dependencies: 1871 | postcss-selector-parser "^6.0.5" 1872 | 1873 | postcss-modules-extract-imports@^3.0.0: 1874 | version "3.1.0" 1875 | resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.1.0.tgz#b4497cb85a9c0c4b5aabeb759bb25e8d89f15002" 1876 | integrity sha512-k3kNe0aNFQDAZGbin48pL2VNidTF0w4/eASDsxlyspobzU3wZQLOGj7L9gfRe0Jo9/4uud09DsjFNH7winGv8Q== 1877 | 1878 | postcss-modules-local-by-default@^4.0.0: 1879 | version "4.2.0" 1880 | resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.2.0.tgz#d150f43837831dae25e4085596e84f6f5d6ec368" 1881 | integrity sha512-5kcJm/zk+GJDSfw+V/42fJ5fhjL5YbFDl8nVdXkJPLLW+Vf9mTD5Xe0wqIaDnLuL2U6cDNpTr+UQ+v2HWIBhzw== 1882 | dependencies: 1883 | icss-utils "^5.0.0" 1884 | postcss-selector-parser "^7.0.0" 1885 | postcss-value-parser "^4.1.0" 1886 | 1887 | postcss-modules-scope@^3.0.0: 1888 | version "3.2.1" 1889 | resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-3.2.1.tgz#1bbccddcb398f1d7a511e0a2d1d047718af4078c" 1890 | integrity sha512-m9jZstCVaqGjTAuny8MdgE88scJnCiQSlSrOWcTQgM2t32UBe+MUmFSO5t7VMSfAf/FJKImAxBav8ooCHJXCJA== 1891 | dependencies: 1892 | postcss-selector-parser "^7.0.0" 1893 | 1894 | postcss-modules-values@^4.0.0: 1895 | version "4.0.0" 1896 | resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz#d7c5e7e68c3bb3c9b27cbf48ca0bb3ffb4602c9c" 1897 | integrity sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ== 1898 | dependencies: 1899 | icss-utils "^5.0.0" 1900 | 1901 | postcss-modules@^4.0.0: 1902 | version "4.3.1" 1903 | resolved "https://registry.yarnpkg.com/postcss-modules/-/postcss-modules-4.3.1.tgz#517c06c09eab07d133ae0effca2c510abba18048" 1904 | integrity sha512-ItUhSUxBBdNamkT3KzIZwYNNRFKmkJrofvC2nWab3CPKhYBQ1f27XXh1PAPE27Psx58jeelPsxWB/+og+KEH0Q== 1905 | dependencies: 1906 | generic-names "^4.0.0" 1907 | icss-replace-symbols "^1.1.0" 1908 | lodash.camelcase "^4.3.0" 1909 | postcss-modules-extract-imports "^3.0.0" 1910 | postcss-modules-local-by-default "^4.0.0" 1911 | postcss-modules-scope "^3.0.0" 1912 | postcss-modules-values "^4.0.0" 1913 | string-hash "^1.1.1" 1914 | 1915 | postcss-normalize-charset@^5.1.0: 1916 | version "5.1.0" 1917 | resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-5.1.0.tgz#9302de0b29094b52c259e9b2cf8dc0879879f0ed" 1918 | integrity sha512-mSgUJ+pd/ldRGVx26p2wz9dNZ7ji6Pn8VWBajMXFf8jk7vUoSrZ2lt/wZR7DtlZYKesmZI680qjr2CeFF2fbUg== 1919 | 1920 | postcss-normalize-display-values@^5.1.0: 1921 | version "5.1.0" 1922 | resolved "https://registry.yarnpkg.com/postcss-normalize-display-values/-/postcss-normalize-display-values-5.1.0.tgz#72abbae58081960e9edd7200fcf21ab8325c3da8" 1923 | integrity sha512-WP4KIM4o2dazQXWmFaqMmcvsKmhdINFblgSeRgn8BJ6vxaMyaJkwAzpPpuvSIoG/rmX3M+IrRZEz2H0glrQNEA== 1924 | dependencies: 1925 | postcss-value-parser "^4.2.0" 1926 | 1927 | postcss-normalize-positions@^5.1.1: 1928 | version "5.1.1" 1929 | resolved "https://registry.yarnpkg.com/postcss-normalize-positions/-/postcss-normalize-positions-5.1.1.tgz#ef97279d894087b59325b45c47f1e863daefbb92" 1930 | integrity sha512-6UpCb0G4eofTCQLFVuI3EVNZzBNPiIKcA1AKVka+31fTVySphr3VUgAIULBhxZkKgwLImhzMR2Bw1ORK+37INg== 1931 | dependencies: 1932 | postcss-value-parser "^4.2.0" 1933 | 1934 | postcss-normalize-repeat-style@^5.1.1: 1935 | version "5.1.1" 1936 | resolved "https://registry.yarnpkg.com/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-5.1.1.tgz#e9eb96805204f4766df66fd09ed2e13545420fb2" 1937 | integrity sha512-mFpLspGWkQtBcWIRFLmewo8aC3ImN2i/J3v8YCFUwDnPu3Xz4rLohDO26lGjwNsQxB3YF0KKRwspGzE2JEuS0g== 1938 | dependencies: 1939 | postcss-value-parser "^4.2.0" 1940 | 1941 | postcss-normalize-string@^5.1.0: 1942 | version "5.1.0" 1943 | resolved "https://registry.yarnpkg.com/postcss-normalize-string/-/postcss-normalize-string-5.1.0.tgz#411961169e07308c82c1f8c55f3e8a337757e228" 1944 | integrity sha512-oYiIJOf4T9T1N4i+abeIc7Vgm/xPCGih4bZz5Nm0/ARVJ7K6xrDlLwvwqOydvyL3RHNf8qZk6vo3aatiw/go3w== 1945 | dependencies: 1946 | postcss-value-parser "^4.2.0" 1947 | 1948 | postcss-normalize-timing-functions@^5.1.0: 1949 | version "5.1.0" 1950 | resolved "https://registry.yarnpkg.com/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-5.1.0.tgz#d5614410f8f0b2388e9f240aa6011ba6f52dafbb" 1951 | integrity sha512-DOEkzJ4SAXv5xkHl0Wa9cZLF3WCBhF3o1SKVxKQAa+0pYKlueTpCgvkFAHfk+Y64ezX9+nITGrDZeVGgITJXjg== 1952 | dependencies: 1953 | postcss-value-parser "^4.2.0" 1954 | 1955 | postcss-normalize-unicode@^5.1.1: 1956 | version "5.1.1" 1957 | resolved "https://registry.yarnpkg.com/postcss-normalize-unicode/-/postcss-normalize-unicode-5.1.1.tgz#f67297fca3fea7f17e0d2caa40769afc487aa030" 1958 | integrity sha512-qnCL5jzkNUmKVhZoENp1mJiGNPcsJCs1aaRmURmeJGES23Z/ajaln+EPTD+rBeNkSryI+2WTdW+lwcVdOikrpA== 1959 | dependencies: 1960 | browserslist "^4.21.4" 1961 | postcss-value-parser "^4.2.0" 1962 | 1963 | postcss-normalize-url@^5.1.0: 1964 | version "5.1.0" 1965 | resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-5.1.0.tgz#ed9d88ca82e21abef99f743457d3729a042adcdc" 1966 | integrity sha512-5upGeDO+PVthOxSmds43ZeMeZfKH+/DKgGRD7TElkkyS46JXAUhMzIKiCa7BabPeIy3AQcTkXwVVN7DbqsiCew== 1967 | dependencies: 1968 | normalize-url "^6.0.1" 1969 | postcss-value-parser "^4.2.0" 1970 | 1971 | postcss-normalize-whitespace@^5.1.1: 1972 | version "5.1.1" 1973 | resolved "https://registry.yarnpkg.com/postcss-normalize-whitespace/-/postcss-normalize-whitespace-5.1.1.tgz#08a1a0d1ffa17a7cc6efe1e6c9da969cc4493cfa" 1974 | integrity sha512-83ZJ4t3NUDETIHTa3uEg6asWjSBYL5EdkVB0sDncx9ERzOKBVJIUeDO9RyA9Zwtig8El1d79HBp0JEi8wvGQnA== 1975 | dependencies: 1976 | postcss-value-parser "^4.2.0" 1977 | 1978 | postcss-ordered-values@^5.1.3: 1979 | version "5.1.3" 1980 | resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-5.1.3.tgz#b6fd2bd10f937b23d86bc829c69e7732ce76ea38" 1981 | integrity sha512-9UO79VUhPwEkzbb3RNpqqghc6lcYej1aveQteWY+4POIwlqkYE21HKWaLDF6lWNuqCobEAyTovVhtI32Rbv2RQ== 1982 | dependencies: 1983 | cssnano-utils "^3.1.0" 1984 | postcss-value-parser "^4.2.0" 1985 | 1986 | postcss-reduce-initial@^5.1.2: 1987 | version "5.1.2" 1988 | resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-5.1.2.tgz#798cd77b3e033eae7105c18c9d371d989e1382d6" 1989 | integrity sha512-dE/y2XRaqAi6OvjzD22pjTUQ8eOfc6m/natGHgKFBK9DxFmIm69YmaRVQrGgFlEfc1HePIurY0TmDeROK05rIg== 1990 | dependencies: 1991 | browserslist "^4.21.4" 1992 | caniuse-api "^3.0.0" 1993 | 1994 | postcss-reduce-transforms@^5.1.0: 1995 | version "5.1.0" 1996 | resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-5.1.0.tgz#333b70e7758b802f3dd0ddfe98bb1ccfef96b6e9" 1997 | integrity sha512-2fbdbmgir5AvpW9RLtdONx1QoYG2/EtqpNQbFASDlixBbAYuTcJ0dECwlqNqH7VbaUnEnh8SrxOe2sRIn24XyQ== 1998 | dependencies: 1999 | postcss-value-parser "^4.2.0" 2000 | 2001 | postcss-selector-parser@^6.0.4, postcss-selector-parser@^6.0.5, postcss-selector-parser@^6.0.9: 2002 | version "6.1.2" 2003 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-6.1.2.tgz#27ecb41fb0e3b6ba7a1ec84fff347f734c7929de" 2004 | integrity sha512-Q8qQfPiZ+THO/3ZrOrO0cJJKfpYCagtMUkXbnEfmgUjwXg6z/WBeOyS9APBBPCTSiDV+s4SwQGu8yFsiMRIudg== 2005 | dependencies: 2006 | cssesc "^3.0.0" 2007 | util-deprecate "^1.0.2" 2008 | 2009 | postcss-selector-parser@^7.0.0: 2010 | version "7.1.0" 2011 | resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-7.1.0.tgz#4d6af97eba65d73bc4d84bcb343e865d7dd16262" 2012 | integrity sha512-8sLjZwK0R+JlxlYcTuVnyT2v+htpdrjDOKuMcOVdYjt52Lh8hWRYpxBPoKx/Zg+bcjc3wx6fmQevMmUztS/ccA== 2013 | dependencies: 2014 | cssesc "^3.0.0" 2015 | util-deprecate "^1.0.2" 2016 | 2017 | postcss-svgo@^5.1.0: 2018 | version "5.1.0" 2019 | resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-5.1.0.tgz#0a317400ced789f233a28826e77523f15857d80d" 2020 | integrity sha512-D75KsH1zm5ZrHyxPakAxJWtkyXew5qwS70v56exwvw542d9CRtTo78K0WeFxZB4G7JXKKMbEZtZayTGdIky/eA== 2021 | dependencies: 2022 | postcss-value-parser "^4.2.0" 2023 | svgo "^2.7.0" 2024 | 2025 | postcss-unique-selectors@^5.1.1: 2026 | version "5.1.1" 2027 | resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-5.1.1.tgz#a9f273d1eacd09e9aa6088f4b0507b18b1b541b6" 2028 | integrity sha512-5JiODlELrz8L2HwxfPnhOWZYWDxVHWL83ufOv84NrcgipI7TaeRsatAhK4Tr2/ZiYldpK/wBvw5BD3qfaK96GA== 2029 | dependencies: 2030 | postcss-selector-parser "^6.0.5" 2031 | 2032 | postcss-value-parser@^4.1.0, postcss-value-parser@^4.2.0: 2033 | version "4.2.0" 2034 | resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" 2035 | integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== 2036 | 2037 | postcss@^8.5.3: 2038 | version "8.5.3" 2039 | resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.5.3.tgz#1463b6f1c7fb16fe258736cba29a2de35237eafb" 2040 | integrity sha512-dle9A3yYxlBSrt8Fu+IpjGT8SY8hN0mlaA6GY8t0P5PjIOZemULz/E2Bnm/2dcUOena75OTNkHI76uZBNUUq3A== 2041 | dependencies: 2042 | nanoid "^3.3.8" 2043 | picocolors "^1.1.1" 2044 | source-map-js "^1.2.1" 2045 | 2046 | preact@10: 2047 | version "10.26.4" 2048 | resolved "https://registry.yarnpkg.com/preact/-/preact-10.26.4.tgz#b514f4249453a4247c82ff6d1267d59b7d78f9f9" 2049 | integrity sha512-KJhO7LBFTjP71d83trW+Ilnjbo+ySsaAgCfXOXUlmGzJ4ygYPWmysm77yg4emwfmoz3b22yvH5IsVFHbhUaH5w== 2050 | 2051 | promise.series@^0.2.0: 2052 | version "0.2.0" 2053 | resolved "https://registry.yarnpkg.com/promise.series/-/promise.series-0.2.0.tgz#2cc7ebe959fc3a6619c04ab4dbdc9e452d864bbd" 2054 | integrity sha512-VWQJyU2bcDTgZw8kpfBpB/ejZASlCrzwz5f2hjb/zlujOEB4oeiAhHygAWq8ubsX2GVkD4kCU5V2dwOTaCY5EQ== 2055 | 2056 | randombytes@^2.1.0: 2057 | version "2.1.0" 2058 | resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.1.0.tgz#df6f84372f0270dc65cdf6291349ab7a473d4f2a" 2059 | integrity sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ== 2060 | dependencies: 2061 | safe-buffer "^5.1.0" 2062 | 2063 | regenerate-unicode-properties@^10.2.0: 2064 | version "10.2.0" 2065 | resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.2.0.tgz#626e39df8c372338ea9b8028d1f99dc3fd9c3db0" 2066 | integrity sha512-DqHn3DwbmmPVzeKj9woBadqmXxLvQoQIwu7nopMc72ztvxVmVk2SBhSnx67zuye5TP+lJsb/TBQsjLKhnDf3MA== 2067 | dependencies: 2068 | regenerate "^1.4.2" 2069 | 2070 | regenerate@^1.4.2: 2071 | version "1.4.2" 2072 | resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.4.2.tgz#b9346d8827e8f5a32f7ba29637d398b69014848a" 2073 | integrity sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A== 2074 | 2075 | regenerator-runtime@^0.14.0: 2076 | version "0.14.1" 2077 | resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.14.1.tgz#356ade10263f685dda125100cd862c1db895327f" 2078 | integrity sha512-dYnhHh0nJoMfnkZs6GmmhFknAGRrLznOu5nc9ML+EJxGvrx6H7teuevqVqCuPcPK//3eDrrjQhehXVx9cnkGdw== 2079 | 2080 | regenerator-transform@^0.15.2: 2081 | version "0.15.2" 2082 | resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.15.2.tgz#5bbae58b522098ebdf09bca2f83838929001c7a4" 2083 | integrity sha512-hfMp2BoF0qOk3uc5V20ALGDS2ddjQaLrdl7xrGXvAIow7qeWRM2VA2HuCHkUKk9slq3VwEwLNK3DFBqDfPGYtg== 2084 | dependencies: 2085 | "@babel/runtime" "^7.8.4" 2086 | 2087 | regexpu-core@^6.2.0: 2088 | version "6.2.0" 2089 | resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-6.2.0.tgz#0e5190d79e542bf294955dccabae04d3c7d53826" 2090 | integrity sha512-H66BPQMrv+V16t8xtmq+UC0CBpiTBA60V8ibS1QVReIp8T1z8hwFxqcGzm9K6lgsN7sB5edVH8a+ze6Fqm4weA== 2091 | dependencies: 2092 | regenerate "^1.4.2" 2093 | regenerate-unicode-properties "^10.2.0" 2094 | regjsgen "^0.8.0" 2095 | regjsparser "^0.12.0" 2096 | unicode-match-property-ecmascript "^2.0.0" 2097 | unicode-match-property-value-ecmascript "^2.1.0" 2098 | 2099 | regjsgen@^0.8.0: 2100 | version "0.8.0" 2101 | resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.8.0.tgz#df23ff26e0c5b300a6470cad160a9d090c3a37ab" 2102 | integrity sha512-RvwtGe3d7LvWiDQXeQw8p5asZUmfU1G/l6WbUXeHta7Y2PEIvBTwH6E2EfmYUK8pxcxEdEmaomqyp0vZZ7C+3Q== 2103 | 2104 | regjsparser@^0.12.0: 2105 | version "0.12.0" 2106 | resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.12.0.tgz#0e846df6c6530586429377de56e0475583b088dc" 2107 | integrity sha512-cnE+y8bz4NhMjISKbgeVJtqNbtf5QpjZP+Bslo+UqkIt9QPnX9q095eiRRASJG1/tz6dlNr6Z5NsBiWYokp6EQ== 2108 | dependencies: 2109 | jsesc "~3.0.2" 2110 | 2111 | resolve-from@^5.0.0: 2112 | version "5.0.0" 2113 | resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-5.0.0.tgz#c35225843df8f776df21c57557bc087e9dfdfc69" 2114 | integrity sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw== 2115 | 2116 | resolve@^1.14.2, resolve@^1.19.0, resolve@^1.22.1: 2117 | version "1.22.10" 2118 | resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.10.tgz#b663e83ffb09bbf2386944736baae803029b8b39" 2119 | integrity sha512-NPRy+/ncIMeDlTAsuqwKIiferiawhefFJtkNSW0qZJEqMEb+qBt/77B/jGeeek+F0uOeN05CDa6HXbbIgtVX4w== 2120 | dependencies: 2121 | is-core-module "^2.16.0" 2122 | path-parse "^1.0.7" 2123 | supports-preserve-symlinks-flag "^1.0.0" 2124 | 2125 | rimraf@^6.0.1: 2126 | version "6.0.1" 2127 | resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-6.0.1.tgz#ffb8ad8844dd60332ab15f52bc104bc3ed71ea4e" 2128 | integrity sha512-9dkvaxAsk/xNXSJzMgFqqMCuFgt2+KsOFek3TMLfo8NCPfWpBmqwyNn5Y+NX56QUYfCtsyhF3ayiboEoUmJk/A== 2129 | dependencies: 2130 | glob "^11.0.0" 2131 | package-json-from-dist "^1.0.0" 2132 | 2133 | rollup-plugin-dts@^6.2.0: 2134 | version "6.2.0" 2135 | resolved "https://registry.yarnpkg.com/rollup-plugin-dts/-/rollup-plugin-dts-6.2.0.tgz#d74239ba155a9354c08a97e9a5cda26404fc74f2" 2136 | integrity sha512-iciY+z46mUbN5nCxtJqVynwgrZZljM8of6k8Rg5rVAmu4VHDxexFPgoCa2wrJG5mMsHSGrJmjQPCM4vD0Oe3Lg== 2137 | dependencies: 2138 | magic-string "^0.30.17" 2139 | optionalDependencies: 2140 | "@babel/code-frame" "^7.26.2" 2141 | 2142 | rollup-plugin-postcss@^4.0.2: 2143 | version "4.0.2" 2144 | resolved "https://registry.yarnpkg.com/rollup-plugin-postcss/-/rollup-plugin-postcss-4.0.2.tgz#15e9462f39475059b368ce0e49c800fa4b1f7050" 2145 | integrity sha512-05EaY6zvZdmvPUDi3uCcAQoESDcYnv8ogJJQRp6V5kZ6J6P7uAVJlrTZcaaA20wTH527YTnKfkAoPxWI/jPp4w== 2146 | dependencies: 2147 | chalk "^4.1.0" 2148 | concat-with-sourcemaps "^1.1.0" 2149 | cssnano "^5.0.1" 2150 | import-cwd "^3.0.0" 2151 | p-queue "^6.6.2" 2152 | pify "^5.0.0" 2153 | postcss-load-config "^3.0.0" 2154 | postcss-modules "^4.0.0" 2155 | promise.series "^0.2.0" 2156 | resolve "^1.19.0" 2157 | rollup-pluginutils "^2.8.2" 2158 | safe-identifier "^0.4.2" 2159 | style-inject "^0.3.0" 2160 | 2161 | rollup-pluginutils@^2.8.2: 2162 | version "2.8.2" 2163 | resolved "https://registry.yarnpkg.com/rollup-pluginutils/-/rollup-pluginutils-2.8.2.tgz#72f2af0748b592364dbd3389e600e5a9444a351e" 2164 | integrity sha512-EEp9NhnUkwY8aif6bxgovPHMoMoNr2FulJziTndpt5H9RdwC47GSGuII9XxpSdzVGM0GWrNPHV6ie1LTNJPaLQ== 2165 | dependencies: 2166 | estree-walker "^0.6.1" 2167 | 2168 | rollup@^4.36.0: 2169 | version "4.36.0" 2170 | resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.36.0.tgz#f40f4db47ba3b4f5846d32a47e580c0ed7cd8f02" 2171 | integrity sha512-zwATAXNQxUcd40zgtQG0ZafcRK4g004WtEl7kbuhTWPvf07PsfohXl39jVUvPF7jvNAIkKPQ2XrsDlWuxBd++Q== 2172 | dependencies: 2173 | "@types/estree" "1.0.6" 2174 | optionalDependencies: 2175 | "@rollup/rollup-android-arm-eabi" "4.36.0" 2176 | "@rollup/rollup-android-arm64" "4.36.0" 2177 | "@rollup/rollup-darwin-arm64" "4.36.0" 2178 | "@rollup/rollup-darwin-x64" "4.36.0" 2179 | "@rollup/rollup-freebsd-arm64" "4.36.0" 2180 | "@rollup/rollup-freebsd-x64" "4.36.0" 2181 | "@rollup/rollup-linux-arm-gnueabihf" "4.36.0" 2182 | "@rollup/rollup-linux-arm-musleabihf" "4.36.0" 2183 | "@rollup/rollup-linux-arm64-gnu" "4.36.0" 2184 | "@rollup/rollup-linux-arm64-musl" "4.36.0" 2185 | "@rollup/rollup-linux-loongarch64-gnu" "4.36.0" 2186 | "@rollup/rollup-linux-powerpc64le-gnu" "4.36.0" 2187 | "@rollup/rollup-linux-riscv64-gnu" "4.36.0" 2188 | "@rollup/rollup-linux-s390x-gnu" "4.36.0" 2189 | "@rollup/rollup-linux-x64-gnu" "4.36.0" 2190 | "@rollup/rollup-linux-x64-musl" "4.36.0" 2191 | "@rollup/rollup-win32-arm64-msvc" "4.36.0" 2192 | "@rollup/rollup-win32-ia32-msvc" "4.36.0" 2193 | "@rollup/rollup-win32-x64-msvc" "4.36.0" 2194 | fsevents "~2.3.2" 2195 | 2196 | safe-buffer@^5.1.0: 2197 | version "5.2.1" 2198 | resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.1.tgz#1eaf9fa9bdb1fdd4ec75f58f9cdb4e6b7827eec6" 2199 | integrity sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ== 2200 | 2201 | safe-identifier@^0.4.2: 2202 | version "0.4.2" 2203 | resolved "https://registry.yarnpkg.com/safe-identifier/-/safe-identifier-0.4.2.tgz#cf6bfca31c2897c588092d1750d30ef501d59fcb" 2204 | integrity sha512-6pNbSMW6OhAi9j+N8V+U715yBQsaWJ7eyEUaOrawX+isg5ZxhUlV1NipNtgaKHmFGiABwt+ZF04Ii+3Xjkg+8w== 2205 | 2206 | semver@^6.3.1: 2207 | version "6.3.1" 2208 | resolved "https://registry.yarnpkg.com/semver/-/semver-6.3.1.tgz#556d2ef8689146e46dcea4bfdd095f3434dffcb4" 2209 | integrity sha512-BR7VvDCVHO+q2xBEWskxS6DJE1qRnb7DxzUrogb71CWoSficBxYsiAGd+Kl0mmq/MprG9yArRkyrQxTO6XjMzA== 2210 | 2211 | serialize-javascript@^6.0.1: 2212 | version "6.0.2" 2213 | resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-6.0.2.tgz#defa1e055c83bf6d59ea805d8da862254eb6a6c2" 2214 | integrity sha512-Saa1xPByTTq2gdeFZYLLo+RFE35NHZkAbqZeWNd3BpzppeVisAqpDjcp8dyf6uIvEqJRd46jemmyA4iFIeVk8g== 2215 | dependencies: 2216 | randombytes "^2.1.0" 2217 | 2218 | shebang-command@^2.0.0: 2219 | version "2.0.0" 2220 | resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" 2221 | integrity sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA== 2222 | dependencies: 2223 | shebang-regex "^3.0.0" 2224 | 2225 | shebang-regex@^3.0.0: 2226 | version "3.0.0" 2227 | resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" 2228 | integrity sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A== 2229 | 2230 | signal-exit@^4.0.1: 2231 | version "4.1.0" 2232 | resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-4.1.0.tgz#952188c1cbd546070e2dd20d0f41c0ae0530cb04" 2233 | integrity sha512-bzyZ1e88w9O1iNJbKnOlvYTrWPDl46O1bG0D3XInv+9tkPrxrN8jUUTiFlDkkmKWgn1M6CfIA13SuGqOa9Korw== 2234 | 2235 | smob@^1.0.0: 2236 | version "1.5.0" 2237 | resolved "https://registry.yarnpkg.com/smob/-/smob-1.5.0.tgz#85d79a1403abf128d24d3ebc1cdc5e1a9548d3ab" 2238 | integrity sha512-g6T+p7QO8npa+/hNx9ohv1E5pVCmWrVCUzUXJyLdMmftX6ER0oiWY/w9knEonLpnOp6b6FenKnMfR8gqwWdwig== 2239 | 2240 | source-map-js@^1.2.1: 2241 | version "1.2.1" 2242 | resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.2.1.tgz#1ce5650fddd87abc099eda37dcff024c2667ae46" 2243 | integrity sha512-UXWMKhLOwVKb728IUtQPXxfYU+usdybtUrK/8uGE8CQMvrhOpwvzDBwj0QhSL7MQc7vIsISBG8VQ8+IDQxpfQA== 2244 | 2245 | source-map-support@~0.5.20: 2246 | version "0.5.21" 2247 | resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.21.tgz#04fe7c7f9e1ed2d662233c28cb2b35b9f63f6e4f" 2248 | integrity sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w== 2249 | dependencies: 2250 | buffer-from "^1.0.0" 2251 | source-map "^0.6.0" 2252 | 2253 | source-map@^0.6.0, source-map@^0.6.1: 2254 | version "0.6.1" 2255 | resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" 2256 | integrity sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g== 2257 | 2258 | stable@^0.1.8: 2259 | version "0.1.8" 2260 | resolved "https://registry.yarnpkg.com/stable/-/stable-0.1.8.tgz#836eb3c8382fe2936feaf544631017ce7d47a3cf" 2261 | integrity sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w== 2262 | 2263 | string-hash@^1.1.1: 2264 | version "1.1.3" 2265 | resolved "https://registry.yarnpkg.com/string-hash/-/string-hash-1.1.3.tgz#e8aafc0ac1855b4666929ed7dd1275df5d6c811b" 2266 | integrity sha512-kJUvRUFK49aub+a7T1nNE66EJbZBMnBgoC1UbCZ5n6bsZKBRga4KgBRTMn/pFkeCZSYtNeSyMxPDM0AXWELk2A== 2267 | 2268 | "string-width-cjs@npm:string-width@^4.2.0", string-width@^4.1.0: 2269 | version "4.2.3" 2270 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-4.2.3.tgz#269c7117d27b05ad2e536830a8ec895ef9c6d010" 2271 | integrity sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g== 2272 | dependencies: 2273 | emoji-regex "^8.0.0" 2274 | is-fullwidth-code-point "^3.0.0" 2275 | strip-ansi "^6.0.1" 2276 | 2277 | string-width@^5.0.1, string-width@^5.1.2: 2278 | version "5.1.2" 2279 | resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" 2280 | integrity sha512-HnLOCR3vjcY8beoNLtcjZ5/nxn2afmME6lhrDrebokqMap+XbeW8n9TXpPDOqdGK5qcI3oT0GKTW6wC7EMiVqA== 2281 | dependencies: 2282 | eastasianwidth "^0.2.0" 2283 | emoji-regex "^9.2.2" 2284 | strip-ansi "^7.0.1" 2285 | 2286 | "strip-ansi-cjs@npm:strip-ansi@^6.0.1", strip-ansi@^6.0.0, strip-ansi@^6.0.1: 2287 | version "6.0.1" 2288 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-6.0.1.tgz#9e26c63d30f53443e9489495b2105d37b67a85d9" 2289 | integrity sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A== 2290 | dependencies: 2291 | ansi-regex "^5.0.1" 2292 | 2293 | strip-ansi@^7.0.1: 2294 | version "7.1.0" 2295 | resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" 2296 | integrity sha512-iq6eVVI64nQQTRYq2KtEg2d2uU7LElhTJwsH4YzIHZshxlgZms/wIc4VoDQTlG/IvVIrBKG06CrZnp0qv7hkcQ== 2297 | dependencies: 2298 | ansi-regex "^6.0.1" 2299 | 2300 | style-inject@^0.3.0: 2301 | version "0.3.0" 2302 | resolved "https://registry.yarnpkg.com/style-inject/-/style-inject-0.3.0.tgz#d21c477affec91811cc82355832a700d22bf8dd3" 2303 | integrity sha512-IezA2qp+vcdlhJaVm5SOdPPTUu0FCEqfNSli2vRuSIBbu5Nq5UvygTk/VzeCqfLz2Atj3dVII5QBKGZRZ0edzw== 2304 | 2305 | stylehacks@^5.1.1: 2306 | version "5.1.1" 2307 | resolved "https://registry.yarnpkg.com/stylehacks/-/stylehacks-5.1.1.tgz#7934a34eb59d7152149fa69d6e9e56f2fc34bcc9" 2308 | integrity sha512-sBpcd5Hx7G6seo7b1LkpttvTz7ikD0LlH5RmdcBNb6fFR0Fl7LQwHDFr300q4cwUqi+IYrFGmsIHieMBfnN/Bw== 2309 | dependencies: 2310 | browserslist "^4.21.4" 2311 | postcss-selector-parser "^6.0.4" 2312 | 2313 | supports-color@^7.1.0: 2314 | version "7.2.0" 2315 | resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-7.2.0.tgz#1b7dcdcb32b8138801b3e478ba6a51caa89648da" 2316 | integrity sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw== 2317 | dependencies: 2318 | has-flag "^4.0.0" 2319 | 2320 | supports-preserve-symlinks-flag@^1.0.0: 2321 | version "1.0.0" 2322 | resolved "https://registry.yarnpkg.com/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz#6eda4bd344a3c94aea376d4cc31bc77311039e09" 2323 | integrity sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w== 2324 | 2325 | svgo@^2.7.0: 2326 | version "2.8.0" 2327 | resolved "https://registry.yarnpkg.com/svgo/-/svgo-2.8.0.tgz#4ff80cce6710dc2795f0c7c74101e6764cfccd24" 2328 | integrity sha512-+N/Q9kV1+F+UeWYoSiULYo4xYSDQlTgb+ayMobAXPwMnLvop7oxKMo9OzIrX5x3eS4L4f2UHhc9axXwY8DpChg== 2329 | dependencies: 2330 | "@trysound/sax" "0.2.0" 2331 | commander "^7.2.0" 2332 | css-select "^4.1.3" 2333 | css-tree "^1.1.3" 2334 | csso "^4.2.0" 2335 | picocolors "^1.0.0" 2336 | stable "^0.1.8" 2337 | 2338 | terser@^5.17.4: 2339 | version "5.39.0" 2340 | resolved "https://registry.yarnpkg.com/terser/-/terser-5.39.0.tgz#0e82033ed57b3ddf1f96708d123cca717d86ca3a" 2341 | integrity sha512-LBAhFyLho16harJoWMg/nZsQYgTrg5jXOn2nCYjRUcZZEdE3qa2zb8QEDRUGVZBW4rlazf2fxkg8tztybTaqWw== 2342 | dependencies: 2343 | "@jridgewell/source-map" "^0.3.3" 2344 | acorn "^8.8.2" 2345 | commander "^2.20.0" 2346 | source-map-support "~0.5.20" 2347 | 2348 | typescript@^5.8.2: 2349 | version "5.8.2" 2350 | resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.8.2.tgz#8170b3702f74b79db2e5a96207c15e65807999e4" 2351 | integrity sha512-aJn6wq13/afZp/jT9QZmwEjDqqvSGp1VT5GVg+f/t6/oVyrgXM6BY1h9BRh/O5p3PlUPAe+WuiEZOmb/49RqoQ== 2352 | 2353 | unicode-canonical-property-names-ecmascript@^2.0.0: 2354 | version "2.0.1" 2355 | resolved "https://registry.yarnpkg.com/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.1.tgz#cb3173fe47ca743e228216e4a3ddc4c84d628cc2" 2356 | integrity sha512-dA8WbNeb2a6oQzAQ55YlT5vQAWGV9WXOsi3SskE3bcCdM0P4SDd+24zS/OCacdRq5BkdsRj9q3Pg6YyQoxIGqg== 2357 | 2358 | unicode-match-property-ecmascript@^2.0.0: 2359 | version "2.0.0" 2360 | resolved "https://registry.yarnpkg.com/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz#54fd16e0ecb167cf04cf1f756bdcc92eba7976c3" 2361 | integrity sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q== 2362 | dependencies: 2363 | unicode-canonical-property-names-ecmascript "^2.0.0" 2364 | unicode-property-aliases-ecmascript "^2.0.0" 2365 | 2366 | unicode-match-property-value-ecmascript@^2.1.0: 2367 | version "2.2.0" 2368 | resolved "https://registry.yarnpkg.com/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.2.0.tgz#a0401aee72714598f739b68b104e4fe3a0cb3c71" 2369 | integrity sha512-4IehN3V/+kkr5YeSSDDQG8QLqO26XpL2XP3GQtqwlT/QYSECAwFztxVHjlbh0+gjJ3XmNLS0zDsbgs9jWKExLg== 2370 | 2371 | unicode-property-aliases-ecmascript@^2.0.0: 2372 | version "2.1.0" 2373 | resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" 2374 | integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== 2375 | 2376 | update-browserslist-db@^1.1.1: 2377 | version "1.1.3" 2378 | resolved "https://registry.yarnpkg.com/update-browserslist-db/-/update-browserslist-db-1.1.3.tgz#348377dd245216f9e7060ff50b15a1b740b75420" 2379 | integrity sha512-UxhIZQ+QInVdunkDAaiazvvT/+fXL5Osr0JZlJulepYu6Jd7qJtDZjlur0emRlT71EN3ScPoE7gvsuIKKNavKw== 2380 | dependencies: 2381 | escalade "^3.2.0" 2382 | picocolors "^1.1.1" 2383 | 2384 | util-deprecate@^1.0.2: 2385 | version "1.0.2" 2386 | resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" 2387 | integrity sha512-EPD5q1uXyFxJpCrLnCc1nHnq3gOa6DZBocAIiI2TaSCA7VCJ1UJDMagCzIkXNsUYfD1daK//LTEQ8xiIbrHtcw== 2388 | 2389 | which@^2.0.1: 2390 | version "2.0.2" 2391 | resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" 2392 | integrity sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA== 2393 | dependencies: 2394 | isexe "^2.0.0" 2395 | 2396 | "wrap-ansi-cjs@npm:wrap-ansi@^7.0.0": 2397 | version "7.0.0" 2398 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-7.0.0.tgz#67e145cff510a6a6984bdf1152911d69d2eb9e43" 2399 | integrity sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q== 2400 | dependencies: 2401 | ansi-styles "^4.0.0" 2402 | string-width "^4.1.0" 2403 | strip-ansi "^6.0.0" 2404 | 2405 | wrap-ansi@^8.1.0: 2406 | version "8.1.0" 2407 | resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-8.1.0.tgz#56dc22368ee570face1b49819975d9b9a5ead214" 2408 | integrity sha512-si7QWI6zUMq56bESFvagtmzMdGOtoxfR+Sez11Mobfc7tm+VkUckk9bW2UeffTGVUbOksxmSw0AA2gs8g71NCQ== 2409 | dependencies: 2410 | ansi-styles "^6.1.0" 2411 | string-width "^5.0.1" 2412 | strip-ansi "^7.0.1" 2413 | 2414 | yallist@^3.0.2: 2415 | version "3.1.1" 2416 | resolved "https://registry.yarnpkg.com/yallist/-/yallist-3.1.1.tgz#dbb7daf9bfd8bac9ab45ebf602b8cbad0d5d08fd" 2417 | integrity sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g== 2418 | 2419 | yaml@^1.10.2: 2420 | version "1.10.2" 2421 | resolved "https://registry.yarnpkg.com/yaml/-/yaml-1.10.2.tgz#2301c5ffbf12b467de8da2333a459e29e7920e4b" 2422 | integrity sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg== 2423 | --------------------------------------------------------------------------------