@f-ewald/components 1.10.0 → 1.12.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +2 -0
- package/custom-elements.json +434 -0
- package/dist/button-group.d.ts +2 -0
- package/dist/button-group.d.ts.map +1 -1
- package/dist/button-group.js +22 -1
- package/dist/button-group.js.map +1 -1
- package/dist/icons.d.ts +4 -0
- package/dist/icons.d.ts.map +1 -1
- package/dist/icons.js +4 -0
- package/dist/icons.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/markdown-view.d.ts +26 -0
- package/dist/markdown-view.d.ts.map +1 -0
- package/dist/markdown-view.js +176 -0
- package/dist/markdown-view.js.map +1 -0
- package/dist/tree-view.d.ts +44 -0
- package/dist/tree-view.d.ts.map +1 -0
- package/dist/tree-view.js +200 -0
- package/dist/tree-view.js.map +1 -0
- package/dist/ui-button.d.ts +2 -0
- package/dist/ui-button.d.ts.map +1 -1
- package/dist/ui-button.js +11 -1
- package/dist/ui-button.js.map +1 -1
- package/docs/button-group.md +1 -0
- package/docs/markdown-view.md +73 -0
- package/docs/tree-view.md +69 -0
- package/docs/ui-button.md +2 -0
- package/llms.txt +81 -3
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -78,6 +78,7 @@ import "@f-ewald/components/roman-numeral.js";
|
|
|
78
78
|
| `<live-timer>` | [API reference](https://f-ewald.github.io/components/docs/live-timer.html) |
|
|
79
79
|
| `<map-circle>` | [API reference](https://f-ewald.github.io/components/docs/map-circle.html) |
|
|
80
80
|
| `<map-pin>` | [API reference](https://f-ewald.github.io/components/docs/map-pin.html) |
|
|
81
|
+
| `<markdown-view>` | [API reference](https://f-ewald.github.io/components/docs/markdown-view.html) |
|
|
81
82
|
| `<multi-select>` | [API reference](https://f-ewald.github.io/components/docs/multi-select.html) |
|
|
82
83
|
| `<page-header>` | [API reference](https://f-ewald.github.io/components/docs/page-header.html) |
|
|
83
84
|
| `<pagination-nav>` | [API reference](https://f-ewald.github.io/components/docs/pagination-nav.html) |
|
|
@@ -98,6 +99,7 @@ import "@f-ewald/components/roman-numeral.js";
|
|
|
98
99
|
| `<timeline-container>` | [API reference](https://f-ewald.github.io/components/docs/timeline-container.html) |
|
|
99
100
|
| `<timeline-entry>` | [API reference](https://f-ewald.github.io/components/docs/timeline-entry.html) |
|
|
100
101
|
| `<toast-notification>` | [API reference](https://f-ewald.github.io/components/docs/toast-notification.html) |
|
|
102
|
+
| `<tree-view>` | [API reference](https://f-ewald.github.io/components/docs/tree-view.html) |
|
|
101
103
|
| `<ui-button>` | [API reference](https://f-ewald.github.io/components/docs/ui-button.html) |
|
|
102
104
|
| `<user-avatar>` | [API reference](https://f-ewald.github.io/components/docs/user-avatar.html) |
|
|
103
105
|
| `<weight-bar-chart>` | [API reference](https://f-ewald.github.io/components/docs/weight-bar-chart.html) |
|
package/custom-elements.json
CHANGED
|
@@ -1915,6 +1915,17 @@
|
|
|
1915
1915
|
"description": "Disables every native radio in the group.",
|
|
1916
1916
|
"attribute": "disabled"
|
|
1917
1917
|
},
|
|
1918
|
+
{
|
|
1919
|
+
"kind": "field",
|
|
1920
|
+
"name": "iconOnly",
|
|
1921
|
+
"type": {
|
|
1922
|
+
"text": "boolean"
|
|
1923
|
+
},
|
|
1924
|
+
"default": "false",
|
|
1925
|
+
"description": "Hides labels visually (icons only) while keeping them as the accessible name.",
|
|
1926
|
+
"attribute": "icon-only",
|
|
1927
|
+
"reflects": true
|
|
1928
|
+
},
|
|
1918
1929
|
{
|
|
1919
1930
|
"kind": "field",
|
|
1920
1931
|
"name": "#name",
|
|
@@ -1963,6 +1974,15 @@
|
|
|
1963
1974
|
"default": "false",
|
|
1964
1975
|
"description": "Disables every native radio in the group.",
|
|
1965
1976
|
"fieldName": "disabled"
|
|
1977
|
+
},
|
|
1978
|
+
{
|
|
1979
|
+
"name": "icon-only",
|
|
1980
|
+
"type": {
|
|
1981
|
+
"text": "boolean"
|
|
1982
|
+
},
|
|
1983
|
+
"default": "false",
|
|
1984
|
+
"description": "Hides labels visually (icons only) while keeping them as the accessible name.",
|
|
1985
|
+
"fieldName": "iconOnly"
|
|
1966
1986
|
}
|
|
1967
1987
|
],
|
|
1968
1988
|
"superclass": {
|
|
@@ -5605,6 +5625,46 @@
|
|
|
5605
5625
|
"default": "16"
|
|
5606
5626
|
}
|
|
5607
5627
|
]
|
|
5628
|
+
},
|
|
5629
|
+
{
|
|
5630
|
+
"kind": "function",
|
|
5631
|
+
"name": "iconMoon",
|
|
5632
|
+
"parameters": [
|
|
5633
|
+
{
|
|
5634
|
+
"name": "size",
|
|
5635
|
+
"default": "16"
|
|
5636
|
+
}
|
|
5637
|
+
]
|
|
5638
|
+
},
|
|
5639
|
+
{
|
|
5640
|
+
"kind": "function",
|
|
5641
|
+
"name": "iconComputerDesktop",
|
|
5642
|
+
"parameters": [
|
|
5643
|
+
{
|
|
5644
|
+
"name": "size",
|
|
5645
|
+
"default": "16"
|
|
5646
|
+
}
|
|
5647
|
+
]
|
|
5648
|
+
},
|
|
5649
|
+
{
|
|
5650
|
+
"kind": "function",
|
|
5651
|
+
"name": "iconCodeBracketSquare",
|
|
5652
|
+
"parameters": [
|
|
5653
|
+
{
|
|
5654
|
+
"name": "size",
|
|
5655
|
+
"default": "16"
|
|
5656
|
+
}
|
|
5657
|
+
]
|
|
5658
|
+
},
|
|
5659
|
+
{
|
|
5660
|
+
"kind": "function",
|
|
5661
|
+
"name": "iconPuzzlePiece",
|
|
5662
|
+
"parameters": [
|
|
5663
|
+
{
|
|
5664
|
+
"name": "size",
|
|
5665
|
+
"default": "18"
|
|
5666
|
+
}
|
|
5667
|
+
]
|
|
5608
5668
|
}
|
|
5609
5669
|
],
|
|
5610
5670
|
"exports": [
|
|
@@ -5959,6 +6019,38 @@
|
|
|
5959
6019
|
"name": "iconExclamationTriangle",
|
|
5960
6020
|
"module": "src/icons.ts"
|
|
5961
6021
|
}
|
|
6022
|
+
},
|
|
6023
|
+
{
|
|
6024
|
+
"kind": "js",
|
|
6025
|
+
"name": "iconMoon",
|
|
6026
|
+
"declaration": {
|
|
6027
|
+
"name": "iconMoon",
|
|
6028
|
+
"module": "src/icons.ts"
|
|
6029
|
+
}
|
|
6030
|
+
},
|
|
6031
|
+
{
|
|
6032
|
+
"kind": "js",
|
|
6033
|
+
"name": "iconComputerDesktop",
|
|
6034
|
+
"declaration": {
|
|
6035
|
+
"name": "iconComputerDesktop",
|
|
6036
|
+
"module": "src/icons.ts"
|
|
6037
|
+
}
|
|
6038
|
+
},
|
|
6039
|
+
{
|
|
6040
|
+
"kind": "js",
|
|
6041
|
+
"name": "iconCodeBracketSquare",
|
|
6042
|
+
"declaration": {
|
|
6043
|
+
"name": "iconCodeBracketSquare",
|
|
6044
|
+
"module": "src/icons.ts"
|
|
6045
|
+
}
|
|
6046
|
+
},
|
|
6047
|
+
{
|
|
6048
|
+
"kind": "js",
|
|
6049
|
+
"name": "iconPuzzlePiece",
|
|
6050
|
+
"declaration": {
|
|
6051
|
+
"name": "iconPuzzlePiece",
|
|
6052
|
+
"module": "src/icons.ts"
|
|
6053
|
+
}
|
|
5962
6054
|
}
|
|
5963
6055
|
]
|
|
5964
6056
|
},
|
|
@@ -6439,6 +6531,22 @@
|
|
|
6439
6531
|
"module": "./tile-grid.js"
|
|
6440
6532
|
}
|
|
6441
6533
|
},
|
|
6534
|
+
{
|
|
6535
|
+
"kind": "js",
|
|
6536
|
+
"name": "TreeView",
|
|
6537
|
+
"declaration": {
|
|
6538
|
+
"name": "TreeView",
|
|
6539
|
+
"module": "./tree-view.js"
|
|
6540
|
+
}
|
|
6541
|
+
},
|
|
6542
|
+
{
|
|
6543
|
+
"kind": "js",
|
|
6544
|
+
"name": "TreeNode",
|
|
6545
|
+
"declaration": {
|
|
6546
|
+
"name": "TreeNode",
|
|
6547
|
+
"module": "./tree-view.js"
|
|
6548
|
+
}
|
|
6549
|
+
},
|
|
6442
6550
|
{
|
|
6443
6551
|
"kind": "js",
|
|
6444
6552
|
"name": "PopoverPanel",
|
|
@@ -6687,6 +6795,14 @@
|
|
|
6687
6795
|
"module": "./card-grid.js"
|
|
6688
6796
|
}
|
|
6689
6797
|
},
|
|
6798
|
+
{
|
|
6799
|
+
"kind": "js",
|
|
6800
|
+
"name": "MarkdownView",
|
|
6801
|
+
"declaration": {
|
|
6802
|
+
"name": "MarkdownView",
|
|
6803
|
+
"module": "./markdown-view.js"
|
|
6804
|
+
}
|
|
6805
|
+
},
|
|
6690
6806
|
{
|
|
6691
6807
|
"kind": "js",
|
|
6692
6808
|
"name": "formatDuration",
|
|
@@ -8209,6 +8325,74 @@
|
|
|
8209
8325
|
}
|
|
8210
8326
|
]
|
|
8211
8327
|
},
|
|
8328
|
+
{
|
|
8329
|
+
"kind": "javascript-module",
|
|
8330
|
+
"path": "src/markdown-view.ts",
|
|
8331
|
+
"declarations": [
|
|
8332
|
+
{
|
|
8333
|
+
"kind": "class",
|
|
8334
|
+
"description": "Renders a markdown string as sanitized, styled HTML — headings, lists,\ncode, tables, blockquotes, and links all get token-driven styling, with\nwide content (code blocks, tables) scrolling in its own container instead\nof widening the page.\n\nThe markdown source is treated as untrusted: it is always parsed with\n`marked` and sanitized with `DOMPurify` before being injected, never\nrendered as-is.",
|
|
8335
|
+
"name": "MarkdownView",
|
|
8336
|
+
"members": [
|
|
8337
|
+
{
|
|
8338
|
+
"kind": "field",
|
|
8339
|
+
"name": "markdown",
|
|
8340
|
+
"type": {
|
|
8341
|
+
"text": "string"
|
|
8342
|
+
},
|
|
8343
|
+
"default": "\"\"",
|
|
8344
|
+
"description": "Raw markdown source to render.",
|
|
8345
|
+
"attribute": "markdown"
|
|
8346
|
+
},
|
|
8347
|
+
{
|
|
8348
|
+
"kind": "method",
|
|
8349
|
+
"name": "_renderedHtml",
|
|
8350
|
+
"privacy": "private",
|
|
8351
|
+
"return": {
|
|
8352
|
+
"type": {
|
|
8353
|
+
"text": "string"
|
|
8354
|
+
}
|
|
8355
|
+
}
|
|
8356
|
+
}
|
|
8357
|
+
],
|
|
8358
|
+
"attributes": [
|
|
8359
|
+
{
|
|
8360
|
+
"name": "markdown",
|
|
8361
|
+
"type": {
|
|
8362
|
+
"text": "string"
|
|
8363
|
+
},
|
|
8364
|
+
"default": "\"\"",
|
|
8365
|
+
"description": "Raw markdown source to render.",
|
|
8366
|
+
"fieldName": "markdown"
|
|
8367
|
+
}
|
|
8368
|
+
],
|
|
8369
|
+
"superclass": {
|
|
8370
|
+
"name": "LitElement",
|
|
8371
|
+
"package": "lit"
|
|
8372
|
+
},
|
|
8373
|
+
"tagName": "markdown-view",
|
|
8374
|
+
"customElement": true
|
|
8375
|
+
}
|
|
8376
|
+
],
|
|
8377
|
+
"exports": [
|
|
8378
|
+
{
|
|
8379
|
+
"kind": "js",
|
|
8380
|
+
"name": "MarkdownView",
|
|
8381
|
+
"declaration": {
|
|
8382
|
+
"name": "MarkdownView",
|
|
8383
|
+
"module": "src/markdown-view.ts"
|
|
8384
|
+
}
|
|
8385
|
+
},
|
|
8386
|
+
{
|
|
8387
|
+
"kind": "custom-element-definition",
|
|
8388
|
+
"name": "markdown-view",
|
|
8389
|
+
"declaration": {
|
|
8390
|
+
"name": "MarkdownView",
|
|
8391
|
+
"module": "src/markdown-view.ts"
|
|
8392
|
+
}
|
|
8393
|
+
}
|
|
8394
|
+
]
|
|
8395
|
+
},
|
|
8212
8396
|
{
|
|
8213
8397
|
"kind": "javascript-module",
|
|
8214
8398
|
"path": "src/mcp-server.ts",
|
|
@@ -12136,6 +12320,237 @@
|
|
|
12136
12320
|
}
|
|
12137
12321
|
]
|
|
12138
12322
|
},
|
|
12323
|
+
{
|
|
12324
|
+
"kind": "javascript-module",
|
|
12325
|
+
"path": "src/tree-view.ts",
|
|
12326
|
+
"declarations": [
|
|
12327
|
+
{
|
|
12328
|
+
"kind": "class",
|
|
12329
|
+
"description": "A generic, presentational tree shell: renders `nodes` recursively, one row\nper node, with each row's content produced by `renderNode` (default: plain\nlabel). Modeled on `data-table`'s headless pattern — knows nothing about\nwhat a node's `data` means beyond what `renderNode` does with it.\n\nA node with a `children` array (even empty) is a folder: clicking or\nactivating its row toggles expand/collapse instead of firing `node-click`.\nA node with no `children` is a leaf: clicking or activating its row fires\n`node-click`. Folders start collapsed; set `default-expanded` to start\nevery folder expanded instead. Expansion state is otherwise managed\ninternally and untouched by later `nodes` updates, so a user's manual\ntoggles survive a data refresh.",
|
|
12330
|
+
"name": "TreeView",
|
|
12331
|
+
"members": [
|
|
12332
|
+
{
|
|
12333
|
+
"kind": "field",
|
|
12334
|
+
"name": "nodes",
|
|
12335
|
+
"type": {
|
|
12336
|
+
"text": "TreeNode[]"
|
|
12337
|
+
},
|
|
12338
|
+
"default": "[]",
|
|
12339
|
+
"description": "Tree data; opaque to this component beyond what `renderNode` does with it."
|
|
12340
|
+
},
|
|
12341
|
+
{
|
|
12342
|
+
"kind": "field",
|
|
12343
|
+
"name": "renderNode",
|
|
12344
|
+
"type": {
|
|
12345
|
+
"text": "(node: TreeNode) => unknown"
|
|
12346
|
+
},
|
|
12347
|
+
"description": "Produces a row's rendered content for `node`. Default: plain label text."
|
|
12348
|
+
},
|
|
12349
|
+
{
|
|
12350
|
+
"kind": "field",
|
|
12351
|
+
"name": "defaultExpanded",
|
|
12352
|
+
"type": {
|
|
12353
|
+
"text": "boolean"
|
|
12354
|
+
},
|
|
12355
|
+
"default": "false",
|
|
12356
|
+
"description": "Start every folder expanded instead of the default all-collapsed.",
|
|
12357
|
+
"attribute": "default-expanded"
|
|
12358
|
+
},
|
|
12359
|
+
{
|
|
12360
|
+
"kind": "field",
|
|
12361
|
+
"name": "expanded",
|
|
12362
|
+
"privacy": "private",
|
|
12363
|
+
"default": "new Set<string>()"
|
|
12364
|
+
},
|
|
12365
|
+
{
|
|
12366
|
+
"kind": "field",
|
|
12367
|
+
"name": "#initializedExpansion",
|
|
12368
|
+
"privacy": "private",
|
|
12369
|
+
"type": {
|
|
12370
|
+
"text": "boolean"
|
|
12371
|
+
},
|
|
12372
|
+
"default": "false"
|
|
12373
|
+
},
|
|
12374
|
+
{
|
|
12375
|
+
"kind": "method",
|
|
12376
|
+
"name": "#toggle",
|
|
12377
|
+
"privacy": "private",
|
|
12378
|
+
"return": {
|
|
12379
|
+
"type": {
|
|
12380
|
+
"text": "void"
|
|
12381
|
+
}
|
|
12382
|
+
},
|
|
12383
|
+
"parameters": [
|
|
12384
|
+
{
|
|
12385
|
+
"name": "id",
|
|
12386
|
+
"type": {
|
|
12387
|
+
"text": "string"
|
|
12388
|
+
}
|
|
12389
|
+
}
|
|
12390
|
+
]
|
|
12391
|
+
},
|
|
12392
|
+
{
|
|
12393
|
+
"kind": "method",
|
|
12394
|
+
"name": "#activate",
|
|
12395
|
+
"privacy": "private",
|
|
12396
|
+
"return": {
|
|
12397
|
+
"type": {
|
|
12398
|
+
"text": "void"
|
|
12399
|
+
}
|
|
12400
|
+
},
|
|
12401
|
+
"parameters": [
|
|
12402
|
+
{
|
|
12403
|
+
"name": "node",
|
|
12404
|
+
"type": {
|
|
12405
|
+
"text": "TreeNode"
|
|
12406
|
+
}
|
|
12407
|
+
}
|
|
12408
|
+
]
|
|
12409
|
+
},
|
|
12410
|
+
{
|
|
12411
|
+
"kind": "method",
|
|
12412
|
+
"name": "#onKeydown",
|
|
12413
|
+
"privacy": "private",
|
|
12414
|
+
"return": {
|
|
12415
|
+
"type": {
|
|
12416
|
+
"text": "void"
|
|
12417
|
+
}
|
|
12418
|
+
},
|
|
12419
|
+
"parameters": [
|
|
12420
|
+
{
|
|
12421
|
+
"name": "node",
|
|
12422
|
+
"type": {
|
|
12423
|
+
"text": "TreeNode"
|
|
12424
|
+
}
|
|
12425
|
+
},
|
|
12426
|
+
{
|
|
12427
|
+
"name": "e",
|
|
12428
|
+
"type": {
|
|
12429
|
+
"text": "KeyboardEvent"
|
|
12430
|
+
}
|
|
12431
|
+
}
|
|
12432
|
+
]
|
|
12433
|
+
},
|
|
12434
|
+
{
|
|
12435
|
+
"kind": "method",
|
|
12436
|
+
"name": "#onRowClick",
|
|
12437
|
+
"privacy": "private",
|
|
12438
|
+
"return": {
|
|
12439
|
+
"type": {
|
|
12440
|
+
"text": "void"
|
|
12441
|
+
}
|
|
12442
|
+
},
|
|
12443
|
+
"parameters": [
|
|
12444
|
+
{
|
|
12445
|
+
"name": "node",
|
|
12446
|
+
"type": {
|
|
12447
|
+
"text": "TreeNode"
|
|
12448
|
+
}
|
|
12449
|
+
},
|
|
12450
|
+
{
|
|
12451
|
+
"name": "e",
|
|
12452
|
+
"type": {
|
|
12453
|
+
"text": "MouseEvent"
|
|
12454
|
+
}
|
|
12455
|
+
}
|
|
12456
|
+
]
|
|
12457
|
+
},
|
|
12458
|
+
{
|
|
12459
|
+
"kind": "method",
|
|
12460
|
+
"name": "#isNestedInteractive",
|
|
12461
|
+
"privacy": "private",
|
|
12462
|
+
"return": {
|
|
12463
|
+
"type": {
|
|
12464
|
+
"text": "boolean"
|
|
12465
|
+
}
|
|
12466
|
+
},
|
|
12467
|
+
"parameters": [
|
|
12468
|
+
{
|
|
12469
|
+
"name": "path",
|
|
12470
|
+
"type": {
|
|
12471
|
+
"text": "EventTarget[]"
|
|
12472
|
+
}
|
|
12473
|
+
},
|
|
12474
|
+
{
|
|
12475
|
+
"name": "row",
|
|
12476
|
+
"type": {
|
|
12477
|
+
"text": "EventTarget | null"
|
|
12478
|
+
}
|
|
12479
|
+
}
|
|
12480
|
+
]
|
|
12481
|
+
},
|
|
12482
|
+
{
|
|
12483
|
+
"kind": "method",
|
|
12484
|
+
"name": "#renderNode",
|
|
12485
|
+
"privacy": "private",
|
|
12486
|
+
"return": {
|
|
12487
|
+
"type": {
|
|
12488
|
+
"text": "TemplateResult"
|
|
12489
|
+
}
|
|
12490
|
+
},
|
|
12491
|
+
"parameters": [
|
|
12492
|
+
{
|
|
12493
|
+
"name": "node",
|
|
12494
|
+
"type": {
|
|
12495
|
+
"text": "TreeNode"
|
|
12496
|
+
}
|
|
12497
|
+
},
|
|
12498
|
+
{
|
|
12499
|
+
"name": "depth",
|
|
12500
|
+
"type": {
|
|
12501
|
+
"text": "number"
|
|
12502
|
+
}
|
|
12503
|
+
}
|
|
12504
|
+
]
|
|
12505
|
+
}
|
|
12506
|
+
],
|
|
12507
|
+
"events": [
|
|
12508
|
+
{
|
|
12509
|
+
"name": "node-click",
|
|
12510
|
+
"type": {
|
|
12511
|
+
"text": "CustomEvent"
|
|
12512
|
+
},
|
|
12513
|
+
"description": "A leaf row was activated; detail is `{ id, data }`."
|
|
12514
|
+
}
|
|
12515
|
+
],
|
|
12516
|
+
"attributes": [
|
|
12517
|
+
{
|
|
12518
|
+
"name": "default-expanded",
|
|
12519
|
+
"type": {
|
|
12520
|
+
"text": "boolean"
|
|
12521
|
+
},
|
|
12522
|
+
"default": "false",
|
|
12523
|
+
"description": "Start every folder expanded instead of the default all-collapsed.",
|
|
12524
|
+
"fieldName": "defaultExpanded"
|
|
12525
|
+
}
|
|
12526
|
+
],
|
|
12527
|
+
"superclass": {
|
|
12528
|
+
"name": "LitElement",
|
|
12529
|
+
"package": "lit"
|
|
12530
|
+
},
|
|
12531
|
+
"tagName": "tree-view",
|
|
12532
|
+
"customElement": true
|
|
12533
|
+
}
|
|
12534
|
+
],
|
|
12535
|
+
"exports": [
|
|
12536
|
+
{
|
|
12537
|
+
"kind": "js",
|
|
12538
|
+
"name": "TreeView",
|
|
12539
|
+
"declaration": {
|
|
12540
|
+
"name": "TreeView",
|
|
12541
|
+
"module": "src/tree-view.ts"
|
|
12542
|
+
}
|
|
12543
|
+
},
|
|
12544
|
+
{
|
|
12545
|
+
"kind": "custom-element-definition",
|
|
12546
|
+
"name": "tree-view",
|
|
12547
|
+
"declaration": {
|
|
12548
|
+
"name": "TreeView",
|
|
12549
|
+
"module": "src/tree-view.ts"
|
|
12550
|
+
}
|
|
12551
|
+
}
|
|
12552
|
+
]
|
|
12553
|
+
},
|
|
12139
12554
|
{
|
|
12140
12555
|
"kind": "javascript-module",
|
|
12141
12556
|
"path": "src/ui-button.ts",
|
|
@@ -12179,6 +12594,16 @@
|
|
|
12179
12594
|
"description": "Visual weight.",
|
|
12180
12595
|
"attribute": "variant"
|
|
12181
12596
|
},
|
|
12597
|
+
{
|
|
12598
|
+
"kind": "field",
|
|
12599
|
+
"name": "size",
|
|
12600
|
+
"type": {
|
|
12601
|
+
"text": "\"sm\" | \"md\""
|
|
12602
|
+
},
|
|
12603
|
+
"default": "\"md\"",
|
|
12604
|
+
"description": "Size — `sm` reduces height/padding/font-size one step below the default.",
|
|
12605
|
+
"attribute": "size"
|
|
12606
|
+
},
|
|
12182
12607
|
{
|
|
12183
12608
|
"kind": "field",
|
|
12184
12609
|
"name": "href",
|
|
@@ -12250,6 +12675,15 @@
|
|
|
12250
12675
|
"description": "Visual weight.",
|
|
12251
12676
|
"fieldName": "variant"
|
|
12252
12677
|
},
|
|
12678
|
+
{
|
|
12679
|
+
"name": "size",
|
|
12680
|
+
"type": {
|
|
12681
|
+
"text": "\"sm\" | \"md\""
|
|
12682
|
+
},
|
|
12683
|
+
"default": "\"md\"",
|
|
12684
|
+
"description": "Size — `sm` reduces height/padding/font-size one step below the default.",
|
|
12685
|
+
"fieldName": "size"
|
|
12686
|
+
},
|
|
12253
12687
|
{
|
|
12254
12688
|
"name": "href",
|
|
12255
12689
|
"type": {
|
package/dist/button-group.d.ts
CHANGED
|
@@ -27,6 +27,8 @@ export declare class ButtonGroup extends LitElement {
|
|
|
27
27
|
value: string;
|
|
28
28
|
/** Disables every native radio in the group. */
|
|
29
29
|
disabled: boolean;
|
|
30
|
+
/** Hides labels visually (icons only) while keeping them as the accessible name. */
|
|
31
|
+
iconOnly: boolean;
|
|
30
32
|
private _onChange;
|
|
31
33
|
render(): TemplateResult<1>;
|
|
32
34
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../src/button-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAID;;;;;;;;;;;GAWG;AACH,qBACa,WAAY,SAAQ,UAAU;;IACzC,OAAgB,MAAM,
|
|
1
|
+
{"version":3,"file":"button-group.d.ts","sourceRoot":"","sources":["../src/button-group.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAC1C,OAAO,EAAE,UAAU,EAAsB,MAAM,KAAK,CAAC;AAKrD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,sEAAsE;IACtE,IAAI,CAAC,EAAE,cAAc,CAAC;CACvB;AAID;;;;;;;;;;;GAWG;AACH,qBACa,WAAY,SAAQ,UAAU;;IACzC,OAAgB,MAAM,4BA4GpB;IAEF,2CAA2C;IACX,OAAO,EAAE,iBAAiB,EAAE,CAAM;IAClE,gCAAgC;IACpB,KAAK,SAAM;IACvB,gDAAgD;IACnB,QAAQ,UAAS;IAC9C,oFAAoF;IAChB,QAAQ,UAAS;IAIrF,OAAO,CAAC,SAAS;IAQR,MAAM,sBAwBd;CACF;AAED,OAAO,CAAC,MAAM,CAAC;IACb,UAAU,qBAAqB;QAC7B,cAAc,EAAE,WAAW,CAAC;KAC7B;CACF"}
|
package/dist/button-group.js
CHANGED
|
@@ -30,6 +30,8 @@ let ButtonGroup = class ButtonGroup extends LitElement {
|
|
|
30
30
|
this.value = "";
|
|
31
31
|
/** Disables every native radio in the group. */
|
|
32
32
|
this.disabled = false;
|
|
33
|
+
/** Hides labels visually (icons only) while keeping them as the accessible name. */
|
|
34
|
+
this.iconOnly = false;
|
|
33
35
|
this.#name = `button-group-${++instanceCount}`;
|
|
34
36
|
}
|
|
35
37
|
static { this.styles = [
|
|
@@ -110,6 +112,20 @@ let ButtonGroup = class ButtonGroup extends LitElement {
|
|
|
110
112
|
cursor: not-allowed;
|
|
111
113
|
opacity: 0.6;
|
|
112
114
|
}
|
|
115
|
+
:host([icon-only]) .segment {
|
|
116
|
+
padding: 0.5rem;
|
|
117
|
+
}
|
|
118
|
+
.sr-only {
|
|
119
|
+
position: absolute;
|
|
120
|
+
width: 1px;
|
|
121
|
+
height: 1px;
|
|
122
|
+
padding: 0;
|
|
123
|
+
margin: -1px;
|
|
124
|
+
overflow: hidden;
|
|
125
|
+
clip: rect(0, 0, 0, 0);
|
|
126
|
+
white-space: nowrap;
|
|
127
|
+
border: 0;
|
|
128
|
+
}
|
|
113
129
|
@media (forced-colors: active) {
|
|
114
130
|
.segment:has(input:focus-visible) {
|
|
115
131
|
outline: 2px solid CanvasText;
|
|
@@ -144,10 +160,12 @@ let ButtonGroup = class ButtonGroup extends LitElement {
|
|
|
144
160
|
name=${this.#name}
|
|
145
161
|
?checked=${this.value === opt.value}
|
|
146
162
|
?disabled=${this.disabled}
|
|
163
|
+
aria-label=${this.iconOnly ? opt.label : nothing}
|
|
164
|
+
title=${this.iconOnly ? opt.label : nothing}
|
|
147
165
|
@change=${() => this._onChange(opt.value)}
|
|
148
166
|
/>
|
|
149
167
|
${opt.icon ?? nothing}
|
|
150
|
-
<span>${opt.label}</span>
|
|
168
|
+
<span class=${this.iconOnly ? "sr-only" : ""}>${opt.label}</span>
|
|
151
169
|
</label>
|
|
152
170
|
`)}
|
|
153
171
|
</div>
|
|
@@ -163,6 +181,9 @@ __decorate([
|
|
|
163
181
|
__decorate([
|
|
164
182
|
property({ type: Boolean })
|
|
165
183
|
], ButtonGroup.prototype, "disabled", void 0);
|
|
184
|
+
__decorate([
|
|
185
|
+
property({ type: Boolean, reflect: true, attribute: "icon-only" })
|
|
186
|
+
], ButtonGroup.prototype, "iconOnly", void 0);
|
|
166
187
|
ButtonGroup = __decorate([
|
|
167
188
|
customElement("button-group")
|
|
168
189
|
], ButtonGroup);
|
package/dist/button-group.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"button-group.js","sourceRoot":"","sources":["../src/button-group.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;;;;;;;;;;;GAWG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;
|
|
1
|
+
{"version":3,"file":"button-group.js","sourceRoot":"","sources":["../src/button-group.ts"],"names":[],"mappings":";;;;;;AACA,OAAO,EAAE,UAAU,EAAE,GAAG,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,KAAK,CAAC;AACrD,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AAC5D,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAC;AAClD,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AASrC,IAAI,aAAa,GAAG,CAAC,CAAC;AAEtB;;;;;;;;;;;GAWG;AAEI,IAAM,WAAW,GAAjB,MAAM,WAAY,SAAQ,UAAU;IAApC;;QA+GL,2CAA2C;QACX,YAAO,GAAwB,EAAE,CAAC;QAClE,gCAAgC;QACpB,UAAK,GAAG,EAAE,CAAC;QACvB,gDAAgD;QACnB,aAAQ,GAAG,KAAK,CAAC;QAC9C,oFAAoF;QAChB,aAAQ,GAAG,KAAK,CAAC;QAE5E,UAAK,GAAG,gBAAgB,EAAE,aAAa,EAAE,CAAC;IAmCrD,CAAC;aA1JiB,WAAM,GAAG;QACvB,MAAM;QACN,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;KAyGF;KACF,AA5GqB,CA4GpB;IAWO,KAAK,CAAqC;IAE3C,SAAS,CAAC,KAAa;QAC7B,IAAI,IAAI,CAAC,QAAQ;YAAE,OAAO;QAC1B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,aAAa,CAChB,IAAI,WAAW,CAAC,QAAQ,EAAE,EAAE,MAAM,EAAE,EAAE,KAAK,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAChF,CAAC;IACJ,CAAC;IAEQ,MAAM;QACb,OAAO,IAAI,CAAA;;UAEL,MAAM,CACN,IAAI,CAAC,OAAO,EACZ,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,KAAK,EAClB,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAA;;;;uBAIA,IAAI,CAAC,KAAK;2BACN,IAAI,CAAC,KAAK,KAAK,GAAG,CAAC,KAAK;4BACvB,IAAI,CAAC,QAAQ;6BACZ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;wBACxC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,CAAC,OAAO;0BACjC,GAAG,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC;;gBAEzC,GAAG,CAAC,IAAI,IAAI,OAAO;4BACP,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,IAAI,GAAG,CAAC,KAAK;;WAE5D,CACF;;KAEJ,CAAC;IACJ,CAAC;CACF,CAAA;AA3CiC;IAA/B,QAAQ,CAAC,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;4CAAmC;AAEtD;IAAX,QAAQ,EAAE;0CAAY;AAEM;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;6CAAkB;AAEsB;IAAnE,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,CAAC;6CAAkB;AAtH1E,WAAW;IADvB,aAAa,CAAC,cAAc,CAAC;GACjB,WAAW,CA2JvB","sourcesContent":["import type { TemplateResult } from \"lit\";\nimport { LitElement, css, html, nothing } from \"lit\";\nimport { customElement, property } from \"lit/decorators.js\";\nimport { repeat } from \"lit/directives/repeat.js\";\nimport { tokens } from \"./tokens.js\";\n\nexport interface ButtonGroupOption {\n value: string;\n label: string;\n /** Optional pre-rendered icon template displayed before the label. */\n icon?: TemplateResult;\n}\n\nlet instanceCount = 0;\n\n/**\n * Single-select segmented control — a strip of buttons joined into one\n * shared-border shape, for a small, persistent set of mutually exclusive\n * choices (a view switcher, a theme picker) where the *currently selected*\n * option should read as visually \"pressed,\" not just checked. For many\n * short, individually pill-shaped choices, use `radio-pills` instead. Wraps\n * native radio inputs for keyboard/a11y and fires `change` rather than\n * relying on form submission.\n *\n * @element button-group\n * @fires change - A segment was selected; detail: { value }.\n */\n@customElement(\"button-group\")\nexport class ButtonGroup extends LitElement {\n static override styles = [\n tokens,\n css`\n :host {\n display: inline-block;\n }\n .group {\n display: flex;\n border: 1px solid var(--ui-border, #e2e8f0);\n border-radius: var(--ui-radius-sm, 0.25rem);\n overflow: hidden;\n }\n .segment {\n position: relative;\n display: flex;\n flex: 1 1 auto;\n align-items: center;\n justify-content: center;\n gap: 0.25rem;\n height: 2rem;\n box-sizing: border-box;\n padding: 0.5rem 0.75rem;\n border-left: 1px solid var(--ui-border, #e2e8f0);\n cursor: pointer;\n font-family: var(\n --ui-font,\n ui-sans-serif,\n system-ui,\n sans-serif,\n \"Apple Color Emoji\",\n \"Segoe UI Emoji\",\n \"Segoe UI Symbol\",\n \"Noto Color Emoji\"\n );\n font-size: var(--ui-font-size-sm, 0.75rem);\n font-weight: var(--ui-font-weight-medium, 500);\n line-height: var(--ui-line-height-tight, 1.25);\n color: var(--ui-text, #0f172a);\n white-space: nowrap;\n }\n .segment:first-child {\n border-left: none;\n border-top-left-radius: var(--ui-radius-sm, 0.25rem);\n border-bottom-left-radius: var(--ui-radius-sm, 0.25rem);\n }\n .segment:last-child {\n border-top-right-radius: var(--ui-radius-sm, 0.25rem);\n border-bottom-right-radius: var(--ui-radius-sm, 0.25rem);\n }\n .segment:has(input:checked) {\n background: var(--ui-primary, #4f46e5);\n color: var(--ui-on-accent, #ffffff);\n }\n .segment:not(:has(input:checked)):hover {\n background: var(--ui-surface-muted, #f8fafc);\n }\n .segment input {\n /* Fills the whole segment (not visually-hidden-offscreen) so a real\n click anywhere in the segment — including a test driver clicking\n the input by its accessible role — lands on the input itself,\n not just via native <label> click delegation. */\n position: absolute;\n inset: 0;\n margin: 0;\n opacity: 0;\n cursor: pointer;\n }\n /* Clipped by the group's own overflow:hidden unless promoted above its\n neighbors — the focus ring needs a stacking context of its own. */\n .segment:has(input:focus-visible) {\n z-index: 1;\n outline: none;\n box-shadow: var(--ui-focus-ring, 0 0 0 3px rgb(79 70 229 / 0.35));\n }\n .segment:has(input:disabled) {\n cursor: not-allowed;\n opacity: 0.6;\n }\n :host([icon-only]) .segment {\n padding: 0.5rem;\n }\n .sr-only {\n position: absolute;\n width: 1px;\n height: 1px;\n padding: 0;\n margin: -1px;\n overflow: hidden;\n clip: rect(0, 0, 0, 0);\n white-space: nowrap;\n border: 0;\n }\n @media (forced-colors: active) {\n .segment:has(input:focus-visible) {\n outline: 2px solid CanvasText;\n outline-offset: 2px;\n box-shadow: none;\n }\n .segment:has(input:checked) {\n background: Highlight;\n color: HighlightText;\n }\n .segment:has(input:disabled) {\n color: GrayText;\n opacity: 1;\n }\n }\n `,\n ];\n\n /** Options to render, one segment each. */\n @property({ attribute: false }) options: ButtonGroupOption[] = [];\n /** Currently selected value. */\n @property() value = \"\";\n /** Disables every native radio in the group. */\n @property({ type: Boolean }) disabled = false;\n /** Hides labels visually (icons only) while keeping them as the accessible name. */\n @property({ type: Boolean, reflect: true, attribute: \"icon-only\" }) iconOnly = false;\n\n readonly #name = `button-group-${++instanceCount}`;\n\n private _onChange(value: string) {\n if (this.disabled) return;\n this.value = value;\n this.dispatchEvent(\n new CustomEvent(\"change\", { detail: { value }, bubbles: true, composed: true }),\n );\n }\n\n override render() {\n return html`\n <div class=\"group\">\n ${repeat(\n this.options,\n (opt) => opt.value,\n (opt) => html`\n <label class=\"segment\">\n <input\n type=\"radio\"\n name=${this.#name}\n ?checked=${this.value === opt.value}\n ?disabled=${this.disabled}\n aria-label=${this.iconOnly ? opt.label : nothing}\n title=${this.iconOnly ? opt.label : nothing}\n @change=${() => this._onChange(opt.value)}\n />\n ${opt.icon ?? nothing}\n <span class=${this.iconOnly ? \"sr-only\" : \"\"}>${opt.label}</span>\n </label>\n `,\n )}\n </div>\n `;\n }\n}\n\ndeclare global {\n interface HTMLElementTagNameMap {\n \"button-group\": ButtonGroup;\n }\n}\n"]}
|
package/dist/icons.d.ts
CHANGED
|
@@ -42,4 +42,8 @@ export declare const iconArrowTopRightOnSquare: (size?: number) => import("lit-h
|
|
|
42
42
|
export declare const iconAcademicCap: (size?: number) => import("lit-html").TemplateResult<2>;
|
|
43
43
|
export declare const iconQueueList: (size?: number) => import("lit-html").TemplateResult<2>;
|
|
44
44
|
export declare const iconExclamationTriangle: (size?: number) => import("lit-html").TemplateResult<2>;
|
|
45
|
+
export declare const iconMoon: (size?: number) => import("lit-html").TemplateResult<2>;
|
|
46
|
+
export declare const iconComputerDesktop: (size?: number) => import("lit-html").TemplateResult<2>;
|
|
47
|
+
export declare const iconCodeBracketSquare: (size?: number) => import("lit-html").TemplateResult<2>;
|
|
48
|
+
export declare const iconPuzzlePiece: (size?: number) => import("lit-html").TemplateResult<2>;
|
|
45
49
|
//# sourceMappingURL=icons.d.ts.map
|
package/dist/icons.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,yDAC2O,CAAC;AAE9P,eAAO,MAAM,SAAS,yDAC+P,CAAC;AAEtR,eAAO,MAAM,eAAe,yDACwO,CAAC;AAErQ,eAAO,MAAM,gBAAgB,yDACqO,CAAC;AAEnQ,eAAO,MAAM,OAAO,yDAC2xC,CAAC;AAEhzC,eAAO,MAAM,QAAQ,yDAC4W,CAAC;AAElY,eAAO,MAAM,sBAAsB,yDAC6Y,CAAC;AAEjb,eAAO,MAAM,UAAU,yDACqX,CAAC;AAE7Y,eAAO,MAAM,SAAS,yDACgnB,CAAC;AAEvoB,eAAO,MAAM,QAAQ,yDAC0O,CAAC;AAEhQ,eAAO,MAAM,cAAc,yDACme,CAAC;AAE/f,eAAO,MAAM,kBAAkB,yDACob,CAAC;AAEpd,eAAO,MAAM,QAAQ,yDAC8b,CAAC;AAEpd,eAAO,MAAM,UAAU,yDACiY,CAAC;AAEzZ,eAAO,MAAM,SAAS,yDACmQ,CAAC;AAE1R,eAAO,MAAM,OAAO,yDACif,CAAC;AAEtgB,eAAO,MAAM,YAAY,yDACib,CAAC;AAE3c,eAAO,MAAM,qBAAqB,yDAC4V,CAAC;AAE/X,eAAO,MAAM,OAAO,yDACyhB,CAAC;AAE9iB,eAAO,MAAM,eAAe,yDAC2Q,CAAC;AAExS,eAAO,MAAM,OAAO,yDACsZ,CAAC;AAE3a,eAAO,MAAM,qBAAqB,yDACma,CAAC;AAEtc,eAAO,MAAM,aAAa,yDACsX,CAAC;AAEjZ,eAAO,MAAM,cAAc,yDACiP,CAAC;AAE7Q,eAAO,MAAM,iBAAiB,yDACuT,CAAC;AAEtV,eAAO,MAAM,mBAAmB,yDACmR,CAAC;AAEpT,eAAO,MAAM,QAAQ,yDAC6X,CAAC;AAEnZ,eAAO,MAAM,SAAS,yDACgX,CAAC;AAEvY,eAAO,MAAM,cAAc,yDAC8f,CAAC;AAE1hB,eAAO,MAAM,OAAO,yDAC4e,CAAC;AAEjgB,eAAO,MAAM,YAAY,yDAC4hB,CAAC;AAEtjB,eAAO,MAAM,eAAe,yDAC+Z,CAAC;AAE5b,eAAO,MAAM,cAAc,yDACqZ,CAAC;AAEjb,eAAO,MAAM,yBAAyB,yDACuxB,CAAC;AAE9zB,eAAO,MAAM,WAAW,yDACge,CAAC;AAEzf,eAAO,MAAM,UAAU,yDACqd,CAAC;AAE7e,eAAO,MAAM,eAAe,yDACuO,CAAC;AAEpQ,eAAO,MAAM,YAAY,yDACid,CAAC;AAE3e,eAAO,MAAM,cAAc,yDACosB,CAAC;AAEhuB,eAAO,MAAM,uBAAuB,yDAC2sB,CAAC;AAEhvB,eAAO,MAAM,yBAAyB,yDACuU,CAAC;AAE9W,eAAO,MAAM,eAAe,yDAC6pB,CAAC;AAE1rB,eAAO,MAAM,aAAa,yDACoU,CAAC;AAE/V,eAAO,MAAM,uBAAuB,yDACqX,CAAC"}
|
|
1
|
+
{"version":3,"file":"icons.d.ts","sourceRoot":"","sources":["../src/icons.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,KAAK,yDAC2O,CAAC;AAE9P,eAAO,MAAM,SAAS,yDAC+P,CAAC;AAEtR,eAAO,MAAM,eAAe,yDACwO,CAAC;AAErQ,eAAO,MAAM,gBAAgB,yDACqO,CAAC;AAEnQ,eAAO,MAAM,OAAO,yDAC2xC,CAAC;AAEhzC,eAAO,MAAM,QAAQ,yDAC4W,CAAC;AAElY,eAAO,MAAM,sBAAsB,yDAC6Y,CAAC;AAEjb,eAAO,MAAM,UAAU,yDACqX,CAAC;AAE7Y,eAAO,MAAM,SAAS,yDACgnB,CAAC;AAEvoB,eAAO,MAAM,QAAQ,yDAC0O,CAAC;AAEhQ,eAAO,MAAM,cAAc,yDACme,CAAC;AAE/f,eAAO,MAAM,kBAAkB,yDACob,CAAC;AAEpd,eAAO,MAAM,QAAQ,yDAC8b,CAAC;AAEpd,eAAO,MAAM,UAAU,yDACiY,CAAC;AAEzZ,eAAO,MAAM,SAAS,yDACmQ,CAAC;AAE1R,eAAO,MAAM,OAAO,yDACif,CAAC;AAEtgB,eAAO,MAAM,YAAY,yDACib,CAAC;AAE3c,eAAO,MAAM,qBAAqB,yDAC4V,CAAC;AAE/X,eAAO,MAAM,OAAO,yDACyhB,CAAC;AAE9iB,eAAO,MAAM,eAAe,yDAC2Q,CAAC;AAExS,eAAO,MAAM,OAAO,yDACsZ,CAAC;AAE3a,eAAO,MAAM,qBAAqB,yDACma,CAAC;AAEtc,eAAO,MAAM,aAAa,yDACsX,CAAC;AAEjZ,eAAO,MAAM,cAAc,yDACiP,CAAC;AAE7Q,eAAO,MAAM,iBAAiB,yDACuT,CAAC;AAEtV,eAAO,MAAM,mBAAmB,yDACmR,CAAC;AAEpT,eAAO,MAAM,QAAQ,yDAC6X,CAAC;AAEnZ,eAAO,MAAM,SAAS,yDACgX,CAAC;AAEvY,eAAO,MAAM,cAAc,yDAC8f,CAAC;AAE1hB,eAAO,MAAM,OAAO,yDAC4e,CAAC;AAEjgB,eAAO,MAAM,YAAY,yDAC4hB,CAAC;AAEtjB,eAAO,MAAM,eAAe,yDAC+Z,CAAC;AAE5b,eAAO,MAAM,cAAc,yDACqZ,CAAC;AAEjb,eAAO,MAAM,yBAAyB,yDACuxB,CAAC;AAE9zB,eAAO,MAAM,WAAW,yDACge,CAAC;AAEzf,eAAO,MAAM,UAAU,yDACqd,CAAC;AAE7e,eAAO,MAAM,eAAe,yDACuO,CAAC;AAEpQ,eAAO,MAAM,YAAY,yDACid,CAAC;AAE3e,eAAO,MAAM,cAAc,yDACosB,CAAC;AAEhuB,eAAO,MAAM,uBAAuB,yDAC2sB,CAAC;AAEhvB,eAAO,MAAM,yBAAyB,yDACuU,CAAC;AAE9W,eAAO,MAAM,eAAe,yDAC6pB,CAAC;AAE1rB,eAAO,MAAM,aAAa,yDACoU,CAAC;AAE/V,eAAO,MAAM,uBAAuB,yDACqX,CAAC;AAE1Z,eAAO,MAAM,QAAQ,yDACwY,CAAC;AAE9Z,eAAO,MAAM,mBAAmB,yDACqd,CAAC;AAEtf,eAAO,MAAM,qBAAqB,yDACgX,CAAC;AAEnZ,eAAO,MAAM,eAAe,yDAC+vC,CAAC"}
|
package/dist/icons.js
CHANGED
|
@@ -45,4 +45,8 @@ export const iconArrowTopRightOnSquare = (size = 16) => svg `<svg xmlns="http://
|
|
|
45
45
|
export const iconAcademicCap = (size = 18) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M4.26 10.147a60.438 60.438 0 0 0-.491 6.347A48.62 48.62 0 0 1 12 20.904a48.62 48.62 0 0 1 8.232-4.41 60.46 60.46 0 0 0-.491-6.347m-15.482 0a50.636 50.636 0 0 0-2.658-.813A59.906 59.906 0 0 1 12 3.493a59.903 59.903 0 0 1 10.399 5.84c-.896.248-1.783.52-2.658.814m-15.482 0A50.717 50.717 0 0 1 12 13.489a50.702 50.702 0 0 1 7.74-3.342M6.75 15a.75.75 0 1 0 0-1.5.75.75 0 0 0 0 1.5Zm0 0v-3.675A55.378 55.378 0 0 1 12 8.443m-7.007 11.55A5.981 5.981 0 0 0 6.75 15.75v-1.5"/></svg>`;
|
|
46
46
|
export const iconQueueList = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M3.75 12h16.5m-16.5 3.75h16.5M3.75 19.5h16.5M5.625 4.5h12.75a1.875 1.875 0 0 1 0 3.75H5.625a1.875 1.875 0 0 1 0-3.75Z"/></svg>`;
|
|
47
47
|
export const iconExclamationTriangle = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M12 9v3.75m-9.303 3.376c-.866 1.5.217 3.374 1.948 3.374h14.71c1.73 0 2.813-1.874 1.948-3.374L13.949 3.378c-.866-1.5-3.032-1.5-3.898 0L2.697 16.126ZM12 15.75h.007v.008H12v-.008Z"/></svg>`;
|
|
48
|
+
export const iconMoon = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M21.752 15.002A9.72 9.72 0 0 1 18 15.75c-5.385 0-9.75-4.365-9.75-9.75 0-1.33.266-2.597.748-3.752A9.753 9.753 0 0 0 3 11.25C3 16.635 7.365 21 12.75 21a9.753 9.753 0 0 0 9.002-5.998Z"/></svg>`;
|
|
49
|
+
export const iconComputerDesktop = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M9 17.25v1.007a3 3 0 0 1-.879 2.122L7.5 21h9l-.621-.621A3 3 0 0 1 15 18.257V17.25m6-12V15a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 15V5.25m18 0A2.25 2.25 0 0 0 18.75 3H5.25A2.25 2.25 0 0 0 3 5.25m18 0V12a2.25 2.25 0 0 1-2.25 2.25H5.25A2.25 2.25 0 0 1 3 12V5.25"/></svg>`;
|
|
50
|
+
export const iconCodeBracketSquare = (size = 16) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M14.25 9.75 16.5 12l-2.25 2.25m-4.5 0L7.5 12l2.25-2.25M6 20.25h12A2.25 2.25 0 0 0 20.25 18V6A2.25 2.25 0 0 0 18 3.75H6A2.25 2.25 0 0 0 3.75 6v12A2.25 2.25 0 0 0 6 20.25Z"/></svg>`;
|
|
51
|
+
export const iconPuzzlePiece = (size = 18) => svg `<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="none" stroke-width="1.5" stroke="currentColor" width=${size} height=${size} aria-hidden="true"><path stroke-linecap="round" stroke-linejoin="round" d="M14.25 6.087c0-.355.186-.676.401-.959.221-.29.349-.634.349-1.003 0-1.036-1.007-1.875-2.25-1.875s-2.25.84-2.25 1.875c0 .369.128.713.349 1.003.215.283.401.604.401.959v0a.64.64 0 0 1-.657.643 48.39 48.39 0 0 1-4.163-.3c.186 1.613.293 3.25.315 4.907a.656.656 0 0 1-.658.663v0c-.355 0-.676-.186-.959-.401a1.647 1.647 0 0 0-1.003-.349c-1.036 0-1.875 1.007-1.875 2.25s.84 2.25 1.875 2.25c.369 0 .713-.128 1.003-.349.283-.215.604-.401.959-.401v0c.31 0 .555.26.532.57a48.039 48.039 0 0 1-.642 5.056c1.518.19 3.058.309 4.616.354a.64.64 0 0 0 .657-.643v0c0-.355-.186-.676-.401-.959a1.647 1.647 0 0 1-.349-1.003c0-1.035 1.008-1.875 2.25-1.875 1.243 0 2.25.84 2.25 1.875 0 .369-.128.713-.349 1.003-.215.283-.4.604-.4.959v0c0 .333.277.599.61.58a48.1 48.1 0 0 0 5.427-.63 48.05 48.05 0 0 0 .582-4.717.532.532 0 0 0-.533-.57v0c-.355 0-.676.186-.959.401-.29.221-.634.349-1.003.349-1.035 0-1.875-1.007-1.875-2.25s.84-2.25 1.875-2.25c.37 0 .713.128 1.003.349.283.215.604.401.96.401v0a.656.656 0 0 0 .658-.663 48.422 48.422 0 0 0-.37-5.36c-1.886.342-3.81.574-5.766.689a.578.578 0 0 1-.61-.58v0Z"/></svg>`;
|
|
48
52
|
//# sourceMappingURL=icons.js.map
|