luxen-ui 0.24.0 → 0.26.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 +1 -0
- package/bin/cli.mjs +16 -1
- package/cdn/custom-elements.json +295 -169
- package/cdn/elements/alert-dialog/alert-dialog.d.ts +3 -2
- package/cdn/elements/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/cdn/elements/alert-dialog/alert-dialog.js.map +1 -1
- package/cdn/elements/avatar/avatar.js +1 -1
- package/cdn/elements/avatar/avatar.js.map +1 -1
- package/cdn/elements/carousel/carousel.js +1 -1
- package/cdn/elements/carousel/carousel.js.map +1 -1
- package/cdn/elements/combobox/combobox.d.ts.map +1 -1
- package/cdn/elements/combobox/combobox.js +2 -1
- package/cdn/elements/combobox/combobox.js.map +1 -1
- package/cdn/elements/dialog/dialog.d.ts +2 -1
- package/cdn/elements/dialog/dialog.d.ts.map +1 -1
- package/cdn/elements/dialog/dialog.js.map +1 -1
- package/cdn/elements/dialog/dialog.styles.js +1 -1
- package/cdn/elements/dialog/dialog.styles.js.map +1 -1
- package/cdn/elements/drawer/drawer.d.ts +7 -7
- package/cdn/elements/drawer/drawer.js +1 -1
- package/cdn/elements/drawer/drawer.js.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.js +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
- package/cdn/elements/input-otp/input-otp.d.ts +2 -2
- package/cdn/elements/input-otp/input-otp.js.map +1 -1
- package/cdn/elements/prose-editor/prose-editor.js +1 -1
- package/cdn/elements/prose-editor/prose-editor.js.map +1 -1
- package/cdn/elements/rating/rating.js +1 -1
- package/cdn/elements/rating/rating.js.map +1 -1
- package/cdn/elements/select/select.d.ts.map +1 -1
- package/cdn/elements/select/select.js +2 -1
- package/cdn/elements/select/select.js.map +1 -1
- package/cdn/elements/slider/slider.js +1 -1
- package/cdn/elements/slider/slider.js.map +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.js +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.js.map +1 -1
- package/cdn/elements/table/table.meta.d.ts +55 -0
- package/cdn/elements/table/table.meta.d.ts.map +1 -0
- package/cdn/elements/table/table.meta.js +0 -0
- package/cdn/elements/tag/tag.js +1 -1
- package/cdn/elements/tag/tag.js.map +1 -1
- package/cdn/elements/tree/tree.js +1 -1
- package/cdn/elements/tree/tree.js.map +1 -1
- package/cdn/elements/tree-item/tree-item.js +1 -1
- package/cdn/elements/tree-item/tree-item.js.map +1 -1
- package/cdn/shared/controllers/listbox-nav.d.ts +7 -0
- package/cdn/shared/controllers/listbox-nav.d.ts.map +1 -1
- package/cdn/shared/controllers/listbox-nav.js +1 -1
- package/cdn/shared/controllers/listbox-nav.js.map +1 -1
- package/cdn/shared/styles/button-core.styles.js +1 -1
- package/cdn/shared/styles/button-core.styles.js.map +1 -1
- package/cdn/shared/styles/checkbox-appearance.styles.js +1 -1
- package/cdn/shared/styles/checkbox-appearance.styles.js.map +1 -1
- package/cdn/shared/styles/picker-core.styles.js +1 -1
- package/cdn/shared/styles/picker-core.styles.js.map +1 -1
- package/cdn/standalone.css +392 -86
- package/cdn/standalone.js +38 -28
- package/cdn/standalone.js.map +1 -1
- package/cdn/styles/base.css +11 -0
- package/cdn/styles/elements/breadcrumb.css +2 -2
- package/cdn/styles/elements/button.css +2 -2
- package/cdn/styles/elements/checkbox.css +2 -2
- package/cdn/styles/elements/close-button/circle.css +2 -2
- package/cdn/styles/elements/close-button/ring.css +2 -2
- package/cdn/styles/elements/close-button/square.css +2 -2
- package/cdn/styles/elements/disclosure.css +2 -2
- package/cdn/styles/elements/input-otp.css +20 -4
- package/cdn/styles/elements/input-stepper/default.css +2 -2
- package/cdn/styles/elements/input-stepper/pill.css +2 -2
- package/cdn/styles/elements/input-stepper/rounded.css +2 -2
- package/cdn/styles/elements/input.css +50 -17
- package/cdn/styles/elements/prose-editor.css +26 -11
- package/cdn/styles/elements/radio-group.css +2 -2
- package/cdn/styles/elements/radio.css +2 -2
- package/cdn/styles/elements/segmented-control.css +2 -2
- package/cdn/styles/elements/select.css +26 -5
- package/cdn/styles/elements/story.css +2 -2
- package/cdn/styles/elements/switch.css +2 -2
- package/cdn/styles/elements/table.css +186 -0
- package/cdn/styles/elements/tabs/enclosed.css +4 -4
- package/cdn/styles/elements/tabs/line.css +4 -4
- package/cdn/styles/elements/textarea.css +23 -9
- package/cdn/styles/preset.css +21 -2
- package/cdn/styles/tokens/aliases.css +6 -2
- package/cdn/styles/tokens/forms.css +4 -0
- package/cdn/styles/tokens.css +10 -2
- package/dist/css/base.css +11 -0
- package/dist/css/elements/breadcrumb.css +2 -2
- package/dist/css/elements/button.css +2 -2
- package/dist/css/elements/checkbox.css +2 -2
- package/dist/css/elements/close-button/circle.css +2 -2
- package/dist/css/elements/close-button/ring.css +2 -2
- package/dist/css/elements/close-button/square.css +2 -2
- package/dist/css/elements/disclosure.css +2 -2
- package/dist/css/elements/input-otp.css +20 -4
- package/dist/css/elements/input-stepper/default.css +2 -2
- package/dist/css/elements/input-stepper/pill.css +2 -2
- package/dist/css/elements/input-stepper/rounded.css +2 -2
- package/dist/css/elements/input.css +50 -17
- package/dist/css/elements/prose-editor.css +26 -11
- package/dist/css/elements/radio-group.css +2 -2
- package/dist/css/elements/radio.css +2 -2
- package/dist/css/elements/segmented-control.css +2 -2
- package/dist/css/elements/select.css +26 -5
- package/dist/css/elements/story.css +2 -2
- package/dist/css/elements/switch.css +2 -2
- package/dist/css/elements/table.css +186 -0
- package/dist/css/elements/tabs/enclosed.css +4 -4
- package/dist/css/elements/tabs/line.css +4 -4
- package/dist/css/elements/textarea.css +23 -9
- package/dist/css/preset.css +21 -2
- package/dist/css/tokens/aliases.css +6 -2
- package/dist/css/tokens/forms.css +4 -0
- package/dist/css/tokens.css +10 -2
- package/dist/custom-elements.json +295 -169
- package/dist/elements/alert-dialog/alert-dialog.d.ts +3 -2
- package/dist/elements/alert-dialog/alert-dialog.d.ts.map +1 -1
- package/dist/elements/alert-dialog/alert-dialog.js +3 -2
- package/dist/elements/avatar/avatar.css +2 -2
- package/dist/elements/carousel/carousel.css +18 -0
- package/dist/elements/combobox/combobox.css +9 -0
- package/dist/elements/combobox/combobox.d.ts.map +1 -1
- package/dist/elements/combobox/combobox.js +1 -0
- package/dist/elements/dialog/dialog.css +12 -0
- package/dist/elements/dialog/dialog.d.ts +2 -1
- package/dist/elements/dialog/dialog.d.ts.map +1 -1
- package/dist/elements/dialog/dialog.js +2 -1
- package/dist/elements/drawer/drawer.css +11 -1
- package/dist/elements/drawer/drawer.d.ts +7 -7
- package/dist/elements/drawer/drawer.js +7 -7
- package/dist/elements/dropdown-item/dropdown-item.css +5 -4
- package/dist/elements/input-otp/input-otp.d.ts +2 -2
- package/dist/elements/input-otp/input-otp.js +2 -2
- package/dist/elements/prose-editor/prose-editor.css +5 -3
- package/dist/elements/rating/rating.css +9 -10
- package/dist/elements/select/select.css +10 -9
- package/dist/elements/select/select.d.ts.map +1 -1
- package/dist/elements/select/select.js +1 -0
- package/dist/elements/slider/slider.css +5 -1
- package/dist/elements/stories-viewer/stories-viewer.css +10 -2
- package/dist/elements/table/table.meta.d.ts +55 -0
- package/dist/elements/table/table.meta.d.ts.map +1 -0
- package/dist/elements/table/table.meta.js +65 -0
- package/dist/elements/tag/tag.css +4 -4
- package/dist/elements/tree/tree.css +3 -3
- package/dist/elements/tree-item/tree-item.css +5 -3
- package/dist/metadata/alert-dialog.json +90 -85
- package/dist/metadata/alert.json +22 -22
- package/dist/metadata/avatar.json +26 -26
- package/dist/metadata/badge.json +13 -13
- package/dist/metadata/breadcrumb.json +9 -9
- package/dist/metadata/button.json +40 -40
- package/dist/metadata/carousel.json +133 -133
- package/dist/metadata/checkbox.json +13 -13
- package/dist/metadata/close-button.json +15 -15
- package/dist/metadata/color-scheme-icon.json +13 -13
- package/dist/metadata/combobox.json +77 -94
- package/dist/metadata/dialog.json +49 -44
- package/dist/metadata/disclosure.json +17 -17
- package/dist/metadata/divider.json +12 -12
- package/dist/metadata/drawer.json +61 -61
- package/dist/metadata/dropdown-item.json +50 -50
- package/dist/metadata/dropdown.json +32 -32
- package/dist/metadata/form-field.json +15 -15
- package/dist/metadata/icon.json +8 -8
- package/dist/metadata/index.json +1761 -1765
- package/dist/metadata/input-group.json +5 -5
- package/dist/metadata/input-otp.json +17 -17
- package/dist/metadata/input-stepper.json +24 -24
- package/dist/metadata/input.json +31 -31
- package/dist/metadata/popover.json +49 -49
- package/dist/metadata/progress.json +15 -15
- package/dist/metadata/prose-editor.json +110 -116
- package/dist/metadata/radio.json +15 -15
- package/dist/metadata/rating.json +25 -47
- package/dist/metadata/segmented-control.json +24 -46
- package/dist/metadata/select.json +81 -98
- package/dist/metadata/skeleton.json +12 -12
- package/dist/metadata/slider.json +60 -78
- package/dist/metadata/spinner.json +5 -5
- package/dist/metadata/sticky-bar.json +13 -13
- package/dist/metadata/stories-viewer.json +105 -105
- package/dist/metadata/stories.json +17 -17
- package/dist/metadata/story.json +41 -41
- package/dist/metadata/switch.json +9 -9
- package/dist/metadata/table.json +88 -0
- package/dist/metadata/tabs.json +26 -26
- package/dist/metadata/tag.json +50 -50
- package/dist/metadata/textarea.json +28 -28
- package/dist/metadata/toast.json +16 -16
- package/dist/metadata/tooltip.json +49 -49
- package/dist/metadata/tree-item.json +73 -73
- package/dist/metadata/tree.json +39 -39
- package/dist/shared/controllers/listbox-nav.d.ts +7 -0
- package/dist/shared/controllers/listbox-nav.d.ts.map +1 -1
- package/dist/shared/controllers/listbox-nav.js +12 -0
- package/dist/shared/styles/button-core.css +2 -2
- package/dist/shared/styles/checkbox-appearance.css +2 -2
- package/dist/shared/styles/picker-core.css +31 -7
- package/dist/templates/elements/alert-dialog.md +19 -18
- package/dist/templates/elements/alert.md +4 -4
- package/dist/templates/elements/avatar.md +9 -9
- package/dist/templates/elements/badge.md +4 -4
- package/dist/templates/elements/breadcrumb.md +4 -4
- package/dist/templates/elements/button.md +8 -8
- package/dist/templates/elements/carousel.md +32 -32
- package/dist/templates/elements/checkbox.md +4 -4
- package/dist/templates/elements/close-button.md +2 -2
- package/dist/templates/elements/color-scheme-icon.md +13 -13
- package/dist/templates/elements/combobox.md +19 -19
- package/dist/templates/elements/dialog.md +11 -10
- package/dist/templates/elements/disclosure.md +3 -3
- package/dist/templates/elements/divider.md +2 -2
- package/dist/templates/elements/drawer.md +15 -15
- package/dist/templates/elements/dropdown.md +15 -15
- package/dist/templates/elements/form-field.md +3 -3
- package/dist/templates/elements/icon.md +1 -1
- package/dist/templates/elements/input-otp.md +5 -5
- package/dist/templates/elements/input-stepper.md +4 -4
- package/dist/templates/elements/input.md +15 -8
- package/dist/templates/elements/popover.md +8 -8
- package/dist/templates/elements/progress.md +3 -3
- package/dist/templates/elements/prose-editor.md +38 -39
- package/dist/templates/elements/radio.md +6 -6
- package/dist/templates/elements/rating.md +5 -13
- package/dist/templates/elements/segmented-control.md +4 -4
- package/dist/templates/elements/select.md +23 -23
- package/dist/templates/elements/skeleton.md +2 -2
- package/dist/templates/elements/slider.md +13 -13
- package/dist/templates/elements/spinner.md +1 -1
- package/dist/templates/elements/sticky-bar.md +2 -2
- package/dist/templates/elements/stories-viewer.md +29 -29
- package/dist/templates/elements/stories.md +4 -4
- package/dist/templates/elements/story.md +11 -11
- package/dist/templates/elements/switch.md +5 -5
- package/dist/templates/elements/table.md +210 -0
- package/dist/templates/elements/tabs.md +4 -4
- package/dist/templates/elements/tag.md +14 -14
- package/dist/templates/elements/textarea.md +8 -8
- package/dist/templates/elements/toast.md +4 -4
- package/dist/templates/elements/tooltip.md +9 -9
- package/dist/templates/elements/tree-item.md +18 -18
- package/dist/templates/elements/tree.md +13 -13
- package/dist/templates/foundations/focus.md +303 -0
- package/elements.json +9 -0
- package/package.json +1 -1
- package/postcss-plugin-prefix.js +2 -2
- package/templates/SKILL.md.tpl +1 -0
- package/templates/choosing-elements.md.tpl +1 -0
|
@@ -15,22 +15,6 @@
|
|
|
15
15
|
"js": "luxen-ui/tooltip"
|
|
16
16
|
},
|
|
17
17
|
"properties": [
|
|
18
|
-
{
|
|
19
|
-
"name": "for",
|
|
20
|
-
"attribute": "for",
|
|
21
|
-
"type": "string",
|
|
22
|
-
"default": "''",
|
|
23
|
-
"reflects": true,
|
|
24
|
-
"description": "The HTML id of the element triggering the tooltip."
|
|
25
|
-
},
|
|
26
|
-
{
|
|
27
|
-
"name": "placement",
|
|
28
|
-
"attribute": "placement",
|
|
29
|
-
"type": "Placement",
|
|
30
|
-
"default": "'top'",
|
|
31
|
-
"reflects": false,
|
|
32
|
-
"description": "The preferred placement of the tooltip."
|
|
33
|
-
},
|
|
34
18
|
{
|
|
35
19
|
"name": "distance",
|
|
36
20
|
"attribute": "distance",
|
|
@@ -40,12 +24,12 @@
|
|
|
40
24
|
"description": "The distance in pixels from the target element."
|
|
41
25
|
},
|
|
42
26
|
{
|
|
43
|
-
"name": "
|
|
44
|
-
"attribute": "
|
|
45
|
-
"type": "
|
|
46
|
-
"default": "
|
|
47
|
-
"reflects":
|
|
48
|
-
"description": "
|
|
27
|
+
"name": "for",
|
|
28
|
+
"attribute": "for",
|
|
29
|
+
"type": "string",
|
|
30
|
+
"default": "''",
|
|
31
|
+
"reflects": true,
|
|
32
|
+
"description": "The HTML id of the element triggering the tooltip."
|
|
49
33
|
},
|
|
50
34
|
{
|
|
51
35
|
"name": "hideDelay",
|
|
@@ -64,12 +48,20 @@
|
|
|
64
48
|
"description": "Whether or not the tooltip is visible."
|
|
65
49
|
},
|
|
66
50
|
{
|
|
67
|
-
"name": "
|
|
68
|
-
"attribute": "
|
|
69
|
-
"type": "
|
|
70
|
-
"default": "
|
|
71
|
-
"reflects":
|
|
72
|
-
"description": "
|
|
51
|
+
"name": "placement",
|
|
52
|
+
"attribute": "placement",
|
|
53
|
+
"type": "Placement",
|
|
54
|
+
"default": "'top'",
|
|
55
|
+
"reflects": false,
|
|
56
|
+
"description": "The preferred placement of the tooltip."
|
|
57
|
+
},
|
|
58
|
+
{
|
|
59
|
+
"name": "showDelay",
|
|
60
|
+
"attribute": "show-delay",
|
|
61
|
+
"type": "number",
|
|
62
|
+
"default": "0",
|
|
63
|
+
"reflects": false,
|
|
64
|
+
"description": "Milliseconds the pointer must dwell on the trigger before the tooltip\nshows. Applies to `hover` only — focus shows immediately."
|
|
73
65
|
},
|
|
74
66
|
{
|
|
75
67
|
"name": "trigger",
|
|
@@ -78,6 +70,14 @@
|
|
|
78
70
|
"default": "'hover focus'",
|
|
79
71
|
"reflects": false,
|
|
80
72
|
"description": "Space-separated list of trigger modes: `hover`, `focus`, `click`, `manual`."
|
|
73
|
+
},
|
|
74
|
+
{
|
|
75
|
+
"name": "withoutArrow",
|
|
76
|
+
"attribute": "without-arrow",
|
|
77
|
+
"type": "boolean",
|
|
78
|
+
"default": "false",
|
|
79
|
+
"reflects": true,
|
|
80
|
+
"description": "Hide the directional arrow."
|
|
81
81
|
}
|
|
82
82
|
],
|
|
83
83
|
"attributes": [],
|
|
@@ -96,16 +96,16 @@
|
|
|
96
96
|
"description": ""
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
|
-
"name": "
|
|
99
|
+
"name": "reposition",
|
|
100
100
|
"params": [],
|
|
101
101
|
"returns": null,
|
|
102
|
-
"description": ""
|
|
102
|
+
"description": "Recompute the position against the current trigger. Use it when you move\nthe anchor yourself and the tooltip has to follow. No-op when closed;\nhides if the anchor is gone."
|
|
103
103
|
},
|
|
104
104
|
{
|
|
105
|
-
"name": "
|
|
105
|
+
"name": "toggle",
|
|
106
106
|
"params": [],
|
|
107
107
|
"returns": null,
|
|
108
|
-
"description": "
|
|
108
|
+
"description": ""
|
|
109
109
|
}
|
|
110
110
|
],
|
|
111
111
|
"slots": [
|
|
@@ -116,50 +116,50 @@
|
|
|
116
116
|
],
|
|
117
117
|
"cssClasses": [],
|
|
118
118
|
"cssParts": [
|
|
119
|
-
{
|
|
120
|
-
"name": "body",
|
|
121
|
-
"description": "The tooltip popover container."
|
|
122
|
-
},
|
|
123
119
|
{
|
|
124
120
|
"name": "arrow",
|
|
125
121
|
"description": "The directional arrow element."
|
|
122
|
+
},
|
|
123
|
+
{
|
|
124
|
+
"name": "body",
|
|
125
|
+
"description": "The tooltip popover container."
|
|
126
126
|
}
|
|
127
127
|
],
|
|
128
128
|
"cssProperties": [
|
|
129
129
|
{
|
|
130
|
-
"name": "--
|
|
131
|
-
"default":
|
|
132
|
-
"description": "
|
|
130
|
+
"name": "--arrow-size",
|
|
131
|
+
"default": "6px",
|
|
132
|
+
"description": "Arrow size."
|
|
133
133
|
},
|
|
134
134
|
{
|
|
135
|
-
"name": "--
|
|
135
|
+
"name": "--background-color",
|
|
136
136
|
"default": null,
|
|
137
|
-
"description": "
|
|
137
|
+
"description": "Background color for this tooltip instance. Defaults to the global `--l-tooltip-background-color` token (a neutral inverse surface, dark in light mode / light in dark mode) — override that token to re-skin every tooltip at once."
|
|
138
138
|
},
|
|
139
139
|
{
|
|
140
140
|
"name": "--border-radius",
|
|
141
141
|
"default": "4px",
|
|
142
142
|
"description": "Border radius."
|
|
143
143
|
},
|
|
144
|
+
{
|
|
145
|
+
"name": "--hide-duration",
|
|
146
|
+
"default": "150ms",
|
|
147
|
+
"description": "Hide animation duration."
|
|
148
|
+
},
|
|
144
149
|
{
|
|
145
150
|
"name": "--max-width",
|
|
146
151
|
"default": "180px",
|
|
147
152
|
"description": "Maximum width."
|
|
148
153
|
},
|
|
149
|
-
{
|
|
150
|
-
"name": "--arrow-size",
|
|
151
|
-
"default": "6px",
|
|
152
|
-
"description": "Arrow size."
|
|
153
|
-
},
|
|
154
154
|
{
|
|
155
155
|
"name": "--show-duration",
|
|
156
156
|
"default": "150ms",
|
|
157
157
|
"description": "Show animation duration."
|
|
158
158
|
},
|
|
159
159
|
{
|
|
160
|
-
"name": "--
|
|
161
|
-
"default":
|
|
162
|
-
"description": "
|
|
160
|
+
"name": "--text-color",
|
|
161
|
+
"default": null,
|
|
162
|
+
"description": "Text color. If unset, auto-derived from `--background-color` luminance."
|
|
163
163
|
}
|
|
164
164
|
],
|
|
165
165
|
"commands": [],
|
|
@@ -15,6 +15,22 @@
|
|
|
15
15
|
"js": "luxen-ui/tree-item"
|
|
16
16
|
},
|
|
17
17
|
"properties": [
|
|
18
|
+
{
|
|
19
|
+
"name": "depth",
|
|
20
|
+
"attribute": null,
|
|
21
|
+
"type": "number",
|
|
22
|
+
"default": null,
|
|
23
|
+
"reflects": false,
|
|
24
|
+
"description": "Set by `<l-tree>`: depth of the item in the tree (0 = root)."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "disabled",
|
|
28
|
+
"attribute": "disabled",
|
|
29
|
+
"type": "boolean",
|
|
30
|
+
"default": "false",
|
|
31
|
+
"reflects": true,
|
|
32
|
+
"description": "Whether the item is disabled."
|
|
33
|
+
},
|
|
18
34
|
{
|
|
19
35
|
"name": "expanded",
|
|
20
36
|
"attribute": "expanded",
|
|
@@ -24,12 +40,12 @@
|
|
|
24
40
|
"description": "Whether the item is expanded."
|
|
25
41
|
},
|
|
26
42
|
{
|
|
27
|
-
"name": "
|
|
28
|
-
"attribute":
|
|
43
|
+
"name": "hasChildren",
|
|
44
|
+
"attribute": null,
|
|
29
45
|
"type": "boolean",
|
|
30
|
-
"default":
|
|
31
|
-
"reflects":
|
|
32
|
-
"description": "Whether
|
|
46
|
+
"default": null,
|
|
47
|
+
"reflects": false,
|
|
48
|
+
"description": "Whether this item has nested tree-item children."
|
|
33
49
|
},
|
|
34
50
|
{
|
|
35
51
|
"name": "indeterminate",
|
|
@@ -39,14 +55,6 @@
|
|
|
39
55
|
"reflects": true,
|
|
40
56
|
"description": "Whether the checkbox is indeterminate (some descendants selected). Managed by\n`<l-tree>` in cascade mode; set it yourself with `independent`."
|
|
41
57
|
},
|
|
42
|
-
{
|
|
43
|
-
"name": "disabled",
|
|
44
|
-
"attribute": "disabled",
|
|
45
|
-
"type": "boolean",
|
|
46
|
-
"default": "false",
|
|
47
|
-
"reflects": true,
|
|
48
|
-
"description": "Whether the item is disabled."
|
|
49
|
-
},
|
|
50
58
|
{
|
|
51
59
|
"name": "lazy",
|
|
52
60
|
"attribute": "lazy",
|
|
@@ -64,40 +72,32 @@
|
|
|
64
72
|
"description": "Whether the item is currently loading (shows a spinner)."
|
|
65
73
|
},
|
|
66
74
|
{
|
|
67
|
-
"name": "
|
|
68
|
-
"attribute":
|
|
75
|
+
"name": "selected",
|
|
76
|
+
"attribute": "selected",
|
|
69
77
|
"type": "boolean",
|
|
70
|
-
"default":
|
|
71
|
-
"reflects":
|
|
72
|
-
"description": "
|
|
73
|
-
},
|
|
74
|
-
{
|
|
75
|
-
"name": "depth",
|
|
76
|
-
"attribute": null,
|
|
77
|
-
"type": "number",
|
|
78
|
-
"default": null,
|
|
79
|
-
"reflects": false,
|
|
80
|
-
"description": "Set by `<l-tree>`: depth of the item in the tree (0 = root)."
|
|
78
|
+
"default": "false",
|
|
79
|
+
"reflects": true,
|
|
80
|
+
"description": "Whether the item is selected."
|
|
81
81
|
},
|
|
82
82
|
{
|
|
83
|
-
"name": "
|
|
83
|
+
"name": "showCheckbox",
|
|
84
84
|
"attribute": null,
|
|
85
85
|
"type": "boolean",
|
|
86
86
|
"default": null,
|
|
87
87
|
"reflects": false,
|
|
88
|
-
"description": "
|
|
88
|
+
"description": "Set by `<l-tree>`: whether a checkbox is shown."
|
|
89
89
|
}
|
|
90
90
|
],
|
|
91
91
|
"attributes": [],
|
|
92
92
|
"events": [
|
|
93
93
|
{
|
|
94
|
-
"name": "
|
|
95
|
-
"description": "Fired when the item is
|
|
94
|
+
"name": "collapse",
|
|
95
|
+
"description": "Fired when the item is collapsed.",
|
|
96
96
|
"cancelable": false
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
|
-
"name": "
|
|
100
|
-
"description": "Fired when the item is
|
|
99
|
+
"name": "expand",
|
|
100
|
+
"description": "Fired when the item is expanded.",
|
|
101
101
|
"cancelable": false
|
|
102
102
|
},
|
|
103
103
|
{
|
|
@@ -107,25 +107,6 @@
|
|
|
107
107
|
}
|
|
108
108
|
],
|
|
109
109
|
"methods": [
|
|
110
|
-
{
|
|
111
|
-
"name": "setPosition",
|
|
112
|
-
"params": [
|
|
113
|
-
{
|
|
114
|
-
"name": "level",
|
|
115
|
-
"type": "number"
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
"name": "posInSet",
|
|
119
|
-
"type": "number"
|
|
120
|
-
},
|
|
121
|
-
{
|
|
122
|
-
"name": "setSize",
|
|
123
|
-
"type": "number"
|
|
124
|
-
}
|
|
125
|
-
],
|
|
126
|
-
"returns": null,
|
|
127
|
-
"description": "Set by `<l-tree>`: ARIA position within the tree. `level` is 1-based depth,\n`posInSet`/`setSize` describe the item's rank among its siblings. These let\nscreen readers announce \"level 2, 3 of 5\" even when `lazy` children keep the\nfull set out of the DOM."
|
|
128
|
-
},
|
|
129
110
|
{
|
|
130
111
|
"name": "getChildrenItems",
|
|
131
112
|
"params": [
|
|
@@ -137,6 +118,12 @@
|
|
|
137
118
|
"returns": "TreeItem[]",
|
|
138
119
|
"description": "Returns the child `<l-tree-item>` elements directly under this one."
|
|
139
120
|
},
|
|
121
|
+
{
|
|
122
|
+
"name": "getTextLabel",
|
|
123
|
+
"params": [],
|
|
124
|
+
"returns": "string",
|
|
125
|
+
"description": "Returns the text label of this item."
|
|
126
|
+
},
|
|
140
127
|
{
|
|
141
128
|
"name": "isLeaf",
|
|
142
129
|
"params": [],
|
|
@@ -144,10 +131,23 @@
|
|
|
144
131
|
"description": "Returns true if this item has no expandable children."
|
|
145
132
|
},
|
|
146
133
|
{
|
|
147
|
-
"name": "
|
|
148
|
-
"params": [
|
|
149
|
-
|
|
150
|
-
|
|
134
|
+
"name": "setPosition",
|
|
135
|
+
"params": [
|
|
136
|
+
{
|
|
137
|
+
"name": "level",
|
|
138
|
+
"type": "number"
|
|
139
|
+
},
|
|
140
|
+
{
|
|
141
|
+
"name": "posInSet",
|
|
142
|
+
"type": "number"
|
|
143
|
+
},
|
|
144
|
+
{
|
|
145
|
+
"name": "setSize",
|
|
146
|
+
"type": "number"
|
|
147
|
+
}
|
|
148
|
+
],
|
|
149
|
+
"returns": null,
|
|
150
|
+
"description": "Set by `<l-tree>`: ARIA position within the tree. `level` is 1-based depth,\n`posInSet`/`setSize` describe the item's rank among its siblings. These let\nscreen readers announce \"level 2, 3 of 5\" even when `lazy` children keep the\nfull set out of the DOM."
|
|
151
151
|
},
|
|
152
152
|
{
|
|
153
153
|
"name": "toggle",
|
|
@@ -162,24 +162,24 @@
|
|
|
162
162
|
"description": "Label content (kept to a single row)."
|
|
163
163
|
},
|
|
164
164
|
{
|
|
165
|
-
"name": "
|
|
166
|
-
"description": "
|
|
165
|
+
"name": "collapse-icon",
|
|
166
|
+
"description": "Icon shown when the item is expanded."
|
|
167
167
|
},
|
|
168
168
|
{
|
|
169
|
-
"name": "
|
|
170
|
-
"description": "
|
|
169
|
+
"name": "content",
|
|
170
|
+
"description": "Block content that belongs to the item but not to its header row (e.g. comment body, action bar). Hidden when a branch is collapsed."
|
|
171
171
|
},
|
|
172
172
|
{
|
|
173
173
|
"name": "expand-icon",
|
|
174
174
|
"description": "Icon shown when the item is collapsed."
|
|
175
175
|
},
|
|
176
176
|
{
|
|
177
|
-
"name": "
|
|
178
|
-
"description": "
|
|
177
|
+
"name": "prefix",
|
|
178
|
+
"description": "Leading content before the label (e.g. icon)."
|
|
179
179
|
},
|
|
180
180
|
{
|
|
181
|
-
"name": "
|
|
182
|
-
"description": "
|
|
181
|
+
"name": "suffix",
|
|
182
|
+
"description": "Trailing content."
|
|
183
183
|
}
|
|
184
184
|
],
|
|
185
185
|
"cssClasses": [],
|
|
@@ -189,28 +189,28 @@
|
|
|
189
189
|
"description": "The item row."
|
|
190
190
|
},
|
|
191
191
|
{
|
|
192
|
-
"name": "
|
|
193
|
-
"description": "
|
|
192
|
+
"name": "branch",
|
|
193
|
+
"description": "Wrapper around the content and children slots; carries the indent guide."
|
|
194
194
|
},
|
|
195
195
|
{
|
|
196
196
|
"name": "checkbox",
|
|
197
197
|
"description": "The native checkbox input."
|
|
198
198
|
},
|
|
199
199
|
{
|
|
200
|
-
"name": "
|
|
201
|
-
"description": "The
|
|
202
|
-
},
|
|
203
|
-
{
|
|
204
|
-
"name": "branch",
|
|
205
|
-
"description": "Wrapper around the content and children slots; carries the indent guide."
|
|
200
|
+
"name": "children",
|
|
201
|
+
"description": "The nested items container."
|
|
206
202
|
},
|
|
207
203
|
{
|
|
208
204
|
"name": "content",
|
|
209
205
|
"description": "The content slot wrapper (block area between the row and the children)."
|
|
210
206
|
},
|
|
211
207
|
{
|
|
212
|
-
"name": "
|
|
213
|
-
"description": "The
|
|
208
|
+
"name": "expand-button",
|
|
209
|
+
"description": "The chevron toggle area."
|
|
210
|
+
},
|
|
211
|
+
{
|
|
212
|
+
"name": "label",
|
|
213
|
+
"description": "The label container."
|
|
214
214
|
}
|
|
215
215
|
],
|
|
216
216
|
"cssProperties": [],
|
package/dist/metadata/tree.json
CHANGED
|
@@ -15,14 +15,6 @@
|
|
|
15
15
|
"js": "luxen-ui/tree"
|
|
16
16
|
},
|
|
17
17
|
"properties": [
|
|
18
|
-
{
|
|
19
|
-
"name": "selection",
|
|
20
|
-
"attribute": "selection",
|
|
21
|
-
"type": "TreeSelection",
|
|
22
|
-
"default": "'single'",
|
|
23
|
-
"reflects": true,
|
|
24
|
-
"description": "Selection behaviour:\n- `single` (default): at most one item selected via `aria-selected`.\n- `multiple`: any number of items selected. Checkboxes are rendered.\n- `leaf`: only leaf items can be selected (single). Branches just toggle.\n- `none`: purely navigable, no selection state."
|
|
25
|
-
},
|
|
26
18
|
{
|
|
27
19
|
"name": "independent",
|
|
28
20
|
"attribute": "independent",
|
|
@@ -30,6 +22,14 @@
|
|
|
30
22
|
"default": "false",
|
|
31
23
|
"reflects": true,
|
|
32
24
|
"description": "When set with `selection=\"multiple\"`, parent and children selection are decoupled:\ntoggling a parent does NOT toggle its descendants and vice versa.\nWithout it, selection cascades both ways and branches may become indeterminate.\n\nIn independent mode the tree never writes `indeterminate`: the consumer owns\nit (e.g. to show a partial state computed from rows not in the DOM). On\nleaving the cascade, the tree clears only the flags its cascade wrote."
|
|
25
|
+
},
|
|
26
|
+
{
|
|
27
|
+
"name": "selection",
|
|
28
|
+
"attribute": "selection",
|
|
29
|
+
"type": "TreeSelection",
|
|
30
|
+
"default": "'single'",
|
|
31
|
+
"reflects": true,
|
|
32
|
+
"description": "Selection behaviour:\n- `single` (default): at most one item selected via `aria-selected`.\n- `multiple`: any number of items selected. Checkboxes are rendered.\n- `leaf`: only leaf items can be selected (single). Branches just toggle.\n- `none`: purely navigable, no selection state."
|
|
33
33
|
}
|
|
34
34
|
],
|
|
35
35
|
"attributes": [],
|
|
@@ -41,6 +41,18 @@
|
|
|
41
41
|
}
|
|
42
42
|
],
|
|
43
43
|
"methods": [
|
|
44
|
+
{
|
|
45
|
+
"name": "collapseAll",
|
|
46
|
+
"params": [],
|
|
47
|
+
"returns": null,
|
|
48
|
+
"description": "Collapses every item."
|
|
49
|
+
},
|
|
50
|
+
{
|
|
51
|
+
"name": "expandAll",
|
|
52
|
+
"params": [],
|
|
53
|
+
"returns": null,
|
|
54
|
+
"description": "Expands every item that has children."
|
|
55
|
+
},
|
|
44
56
|
{
|
|
45
57
|
"name": "getAllItems",
|
|
46
58
|
"params": [
|
|
@@ -57,18 +69,6 @@
|
|
|
57
69
|
"params": [],
|
|
58
70
|
"returns": "TreeItem[]",
|
|
59
71
|
"description": "Returns currently selected items."
|
|
60
|
-
},
|
|
61
|
-
{
|
|
62
|
-
"name": "expandAll",
|
|
63
|
-
"params": [],
|
|
64
|
-
"returns": null,
|
|
65
|
-
"description": "Expands every item that has children."
|
|
66
|
-
},
|
|
67
|
-
{
|
|
68
|
-
"name": "collapseAll",
|
|
69
|
-
"params": [],
|
|
70
|
-
"returns": null,
|
|
71
|
-
"description": "Collapses every item."
|
|
72
72
|
}
|
|
73
73
|
],
|
|
74
74
|
"slots": [
|
|
@@ -86,14 +86,14 @@
|
|
|
86
86
|
],
|
|
87
87
|
"cssProperties": [
|
|
88
88
|
{
|
|
89
|
-
"name": "--
|
|
90
|
-
"default": "
|
|
91
|
-
"description": "
|
|
89
|
+
"name": "--chevron-size",
|
|
90
|
+
"default": "1.125rem",
|
|
91
|
+
"description": "Size of the expand/collapse chevron box."
|
|
92
92
|
},
|
|
93
93
|
{
|
|
94
|
-
"name": "--indent-guide-
|
|
95
|
-
"default":
|
|
96
|
-
"description": "
|
|
94
|
+
"name": "--indent-guide-color",
|
|
95
|
+
"default": null,
|
|
96
|
+
"description": "Color of the guide line."
|
|
97
97
|
},
|
|
98
98
|
{
|
|
99
99
|
"name": "--indent-guide-style",
|
|
@@ -101,9 +101,19 @@
|
|
|
101
101
|
"description": "Line style of the guide (`solid`, `dashed`, `dotted`, `double`…)."
|
|
102
102
|
},
|
|
103
103
|
{
|
|
104
|
-
"name": "--indent-guide-
|
|
105
|
-
"default":
|
|
106
|
-
"description": "
|
|
104
|
+
"name": "--indent-guide-width",
|
|
105
|
+
"default": "1px",
|
|
106
|
+
"description": "Thickness of the vertical guide line between a parent and its children. Set to `0` to hide guides."
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
"name": "--indent-size",
|
|
110
|
+
"default": "1rem",
|
|
111
|
+
"description": "Horizontal indent per depth level."
|
|
112
|
+
},
|
|
113
|
+
{
|
|
114
|
+
"name": "--item-gap",
|
|
115
|
+
"default": "0.375rem",
|
|
116
|
+
"description": "Horizontal gap between chevron, prefix, label and suffix on the row; also drives the content slot left indent."
|
|
107
117
|
},
|
|
108
118
|
{
|
|
109
119
|
"name": "--row-height",
|
|
@@ -114,16 +124,6 @@
|
|
|
114
124
|
"name": "--row-padding-inline",
|
|
115
125
|
"default": "0.25rem",
|
|
116
126
|
"description": "Inner inline padding of the row; also drives the content slot left indent and the indent guide column."
|
|
117
|
-
},
|
|
118
|
-
{
|
|
119
|
-
"name": "--chevron-size",
|
|
120
|
-
"default": "1.125rem",
|
|
121
|
-
"description": "Size of the expand/collapse chevron box."
|
|
122
|
-
},
|
|
123
|
-
{
|
|
124
|
-
"name": "--item-gap",
|
|
125
|
-
"default": "0.375rem",
|
|
126
|
-
"description": "Horizontal gap between chevron, prefix, label and suffix on the row; also drives the content slot left indent."
|
|
127
127
|
}
|
|
128
128
|
],
|
|
129
129
|
"commands": [],
|
|
@@ -32,6 +32,13 @@ export declare class ListboxNavController implements ReactiveController {
|
|
|
32
32
|
private config;
|
|
33
33
|
/** Index of the active option, or `-1` when none is active. */
|
|
34
34
|
activeIndex: number;
|
|
35
|
+
/**
|
|
36
|
+
* Whether the keyboard (not the pointer) last moved the active option. DOM
|
|
37
|
+
* focus stays on the input, so `:focus-visible` cannot tell: hosts render it
|
|
38
|
+
* on the listbox (`data-nav="keyboard"`) and the active option then draws the
|
|
39
|
+
* focus ring, while a pointer-driven one keeps the plain hover tint.
|
|
40
|
+
*/
|
|
41
|
+
keyboard: boolean;
|
|
35
42
|
constructor(host: ReactiveControllerHost, config: ListboxNavConfig);
|
|
36
43
|
hostConnected(): void;
|
|
37
44
|
/** The DOM id for the option at `index` (matches the rendered option `id`). */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listbox-nav.d.ts","sourceRoot":"","sources":["../../../src/html/shared/controllers/listbox-nav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,4EAA4E;IAC5E,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACpE;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,MAAM,CAAmB;IAEjC,+DAA+D;IAC/D,WAAW,SAAM;IAEjB,YAAY,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,gBAAgB,EAIjE;IAED,aAAa,SAAK;IAElB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9B;IAED,6EAA6E;IAC7E,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAIzC;IAED,+BAA+B;IAC/B,KAAK,SAIJ;IAED,8EAA8E;IAC9E,SAAS,CAAC,KAAK,EAAE,MAAM,QAItB;IAED,6EAA6E;IAC7E,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,
|
|
1
|
+
{"version":3,"file":"listbox-nav.d.ts","sourceRoot":"","sources":["../../../src/html/shared/controllers/listbox-nav.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,KAAK,CAAC;AAEtE;;;GAGG;AACH,MAAM,WAAW,gBAAgB;IAC/B,oEAAoE;IACpE,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,MAAM,CAAC;IACvB,4EAA4E;IAC5E,UAAU,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACvC,6CAA6C;IAC7C,MAAM,EAAE,MAAM,OAAO,CAAC;IACtB,+EAA+E;IAC/E,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,oEAAoE;IACpE,iBAAiB,EAAE,MAAM,SAAS,CAAC,WAAW,CAAC,GAAG,IAAI,GAAG,SAAS,CAAC;CACpE;AAED;;;;;;;;;GASG;AACH,qBAAa,oBAAqB,YAAW,kBAAkB;IAC7D,OAAO,CAAC,IAAI,CAAyB;IACrC,OAAO,CAAC,MAAM,CAAmB;IAEjC,+DAA+D;IAC/D,WAAW,SAAM;IAEjB;;;;;OAKG;IACH,QAAQ,UAAS;IAEjB,YAAY,IAAI,EAAE,sBAAsB,EAAE,MAAM,EAAE,gBAAgB,EAIjE;IAED,aAAa,SAAK;IAElB,+EAA+E;IAC/E,QAAQ,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAE9B;IAED,6EAA6E;IAC7E,IAAI,gBAAgB,IAAI,MAAM,GAAG,SAAS,CAIzC;IAED,+BAA+B;IAC/B,KAAK,SAIJ;IAED,8EAA8E;IAC9E,SAAS,CAAC,KAAK,EAAE,MAAM,QAItB;IAED,6EAA6E;IAC7E,IAAI,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,QAQhB;IAED;;;;;;;OAOG;IACH,QAAQ,CAAC,aAAa,MAAO,YAAY,UAYvC;IAEF;;;OAGG;IACH,QAAQ,CAAC,cAAc,MAAO,YAAY,UAGxC;IAEF;;;;OAIG;IACH,SAAS,CAAC,CAAC,EAAE,aAAa,GAAG,OAAO,CAanC;IAED,OAAO,CAAC,KAAK;IAmBb,OAAO,CAAC,qBAAqB;CAI9B"}
|
|
@@ -12,6 +12,13 @@ export class ListboxNavController {
|
|
|
12
12
|
constructor(host, config) {
|
|
13
13
|
/** Index of the active option, or `-1` when none is active. */
|
|
14
14
|
this.activeIndex = -1;
|
|
15
|
+
/**
|
|
16
|
+
* Whether the keyboard (not the pointer) last moved the active option. DOM
|
|
17
|
+
* focus stays on the input, so `:focus-visible` cannot tell: hosts render it
|
|
18
|
+
* on the listbox (`data-nav="keyboard"`) and the active option then draws the
|
|
19
|
+
* focus ring, while a pointer-driven one keeps the plain hover tint.
|
|
20
|
+
*/
|
|
21
|
+
this.keyboard = false;
|
|
15
22
|
/**
|
|
16
23
|
* Bind on the `role="listbox"` as `@pointermove`: the option under the mouse
|
|
17
24
|
* becomes the active one, so hover and keyboard share a single highlight (and
|
|
@@ -26,6 +33,10 @@ export class ListboxNavController {
|
|
|
26
33
|
const row = e.target.closest('[role="option"]');
|
|
27
34
|
if (!row)
|
|
28
35
|
return;
|
|
36
|
+
if (this.keyboard) {
|
|
37
|
+
this.keyboard = false;
|
|
38
|
+
this.host.requestUpdate();
|
|
39
|
+
}
|
|
29
40
|
const index = Array.prototype.indexOf.call(this.config.getOptionElements() ?? [], row);
|
|
30
41
|
if (index < 0)
|
|
31
42
|
return;
|
|
@@ -74,6 +85,7 @@ export class ListboxNavController {
|
|
|
74
85
|
}
|
|
75
86
|
/** Move the active option by `diff`, opening the listbox first if closed. */
|
|
76
87
|
move(diff) {
|
|
88
|
+
this.keyboard = true;
|
|
77
89
|
if (!this.config.isOpen()) {
|
|
78
90
|
this.config.open();
|
|
79
91
|
// Land on the first (Down) or last (Up) option — APG.
|
|
@@ -71,8 +71,8 @@
|
|
|
71
71
|
}
|
|
72
72
|
|
|
73
73
|
&:focus-visible {
|
|
74
|
-
outline:
|
|
75
|
-
outline-offset:
|
|
74
|
+
outline: var(--l-focus-ring-width) solid var(--l-focus-ring-color);
|
|
75
|
+
outline-offset: var(--l-focus-ring-offset);
|
|
76
76
|
}
|
|
77
77
|
|
|
78
78
|
/* High contrast: the checked fill is forced to Canvas, hiding the accent and
|