luxen-ui 0.23.0 → 0.24.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/cdn/custom-elements.json +203 -170
- package/cdn/elements/combobox/combobox.d.ts +6 -1
- package/cdn/elements/combobox/combobox.d.ts.map +1 -1
- package/cdn/elements/combobox/combobox.js +19 -17
- package/cdn/elements/combobox/combobox.js.map +1 -1
- package/cdn/elements/dropdown/dropdown.d.ts +6 -7
- package/cdn/elements/dropdown/dropdown.d.ts.map +1 -1
- package/cdn/elements/dropdown/dropdown.js +2 -2
- package/cdn/elements/dropdown/dropdown.js.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.d.ts +0 -1
- package/cdn/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/cdn/elements/dropdown-item/dropdown-item.js +2 -2
- package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
- package/cdn/elements/dropdown-label/dropdown-label.js +1 -1
- package/cdn/elements/dropdown-label/dropdown-label.js.map +1 -1
- package/cdn/elements/form-field/form-field.d.ts +1 -1
- package/cdn/elements/form-field/form-field.js.map +1 -1
- package/cdn/elements/input/input.meta.d.ts +2 -0
- package/cdn/elements/input/input.meta.d.ts.map +1 -1
- package/cdn/elements/input-otp/input-otp.d.ts +3 -3
- package/cdn/elements/input-otp/input-otp.js.map +1 -1
- package/cdn/elements/popover/popover.d.ts +3 -4
- package/cdn/elements/popover/popover.d.ts.map +1 -1
- package/cdn/elements/popover/popover.js +1 -1
- package/cdn/elements/popover/popover.js.map +1 -1
- package/cdn/elements/select/select.d.ts +6 -1
- package/cdn/elements/select/select.d.ts.map +1 -1
- package/cdn/elements/select/select.js +8 -7
- package/cdn/elements/select/select.js.map +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.d.ts.map +1 -1
- package/cdn/elements/stories-viewer/stories-viewer.js +4 -4
- package/cdn/elements/stories-viewer/stories-viewer.js.map +1 -1
- package/cdn/elements/tooltip/tooltip.d.ts +0 -1
- package/cdn/elements/tooltip/tooltip.d.ts.map +1 -1
- package/cdn/elements/tooltip/tooltip.js +1 -1
- package/cdn/elements/tooltip/tooltip.js.map +1 -1
- package/cdn/shared/controllers/listbox-nav.d.ts +15 -1
- 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/controllers/popover.d.ts +10 -2
- package/cdn/shared/controllers/popover.d.ts.map +1 -1
- package/cdn/shared/controllers/popover.js +1 -1
- package/cdn/shared/controllers/popover.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/menu-panel.styles.d.ts +8 -0
- package/cdn/shared/styles/menu-panel.styles.d.ts.map +1 -0
- package/cdn/shared/styles/menu-panel.styles.js +2 -0
- package/cdn/shared/styles/menu-panel.styles.js.map +1 -0
- package/cdn/shared/styles/picker-core.styles.d.ts +9 -0
- package/cdn/shared/styles/picker-core.styles.d.ts.map +1 -0
- package/cdn/shared/styles/picker-core.styles.js +2 -0
- package/cdn/shared/styles/picker-core.styles.js.map +1 -0
- package/cdn/shared/styles/select-item-suffix.styles.js +1 -1
- package/cdn/shared/styles/select-item-suffix.styles.js.map +1 -1
- package/cdn/shared/styles/select-item.styles.d.ts +8 -0
- package/cdn/shared/styles/select-item.styles.d.ts.map +1 -0
- package/cdn/shared/styles/select-item.styles.js +2 -0
- package/cdn/shared/styles/select-item.styles.js.map +1 -0
- package/cdn/shared/styles/visually-hidden.styles.d.ts +8 -0
- package/cdn/shared/styles/visually-hidden.styles.d.ts.map +1 -0
- package/cdn/shared/styles/visually-hidden.styles.js +2 -0
- package/cdn/shared/styles/visually-hidden.styles.js.map +1 -0
- package/cdn/standalone.css +365 -196
- package/cdn/standalone.js +148 -75
- package/cdn/standalone.js.map +1 -1
- package/cdn/styles/base.css +30 -20
- package/cdn/styles/elements/checkbox.css +2 -2
- package/cdn/styles/elements/form-field.css +16 -9
- package/cdn/styles/elements/input-otp.css +16 -9
- package/cdn/styles/elements/input-stepper/default.css +4 -4
- package/cdn/styles/elements/input-stepper/pill.css +4 -4
- package/cdn/styles/elements/input-stepper/rounded.css +3 -3
- package/cdn/styles/elements/input.css +82 -27
- package/cdn/styles/elements/radio.css +2 -2
- package/cdn/styles/elements/select.css +137 -80
- package/cdn/styles/elements/switch.css +3 -3
- package/cdn/styles/elements/textarea.css +5 -5
- package/cdn/styles/preset.css +92 -49
- package/cdn/styles/tokens/forms.css +33 -30
- package/cdn/styles/tokens.css +62 -29
- package/dist/css/base.css +30 -20
- package/dist/css/elements/checkbox.css +2 -2
- package/dist/css/elements/form-field.css +16 -9
- package/dist/css/elements/input-otp.css +16 -9
- package/dist/css/elements/input-stepper/default.css +4 -4
- package/dist/css/elements/input-stepper/pill.css +4 -4
- package/dist/css/elements/input-stepper/rounded.css +3 -3
- package/dist/css/elements/input.css +82 -27
- package/dist/css/elements/radio.css +2 -2
- package/dist/css/elements/select.css +137 -80
- package/dist/css/elements/switch.css +3 -3
- package/dist/css/elements/textarea.css +5 -5
- package/dist/css/preset.css +92 -49
- package/dist/css/tokens/forms.css +33 -30
- package/dist/css/tokens.css +62 -29
- package/dist/custom-elements.json +203 -170
- package/dist/elements/combobox/combobox.css +30 -187
- package/dist/elements/combobox/combobox.d.ts +6 -1
- package/dist/elements/combobox/combobox.d.ts.map +1 -1
- package/dist/elements/combobox/combobox.js +48 -20
- package/dist/elements/dropdown/dropdown.css +7 -30
- package/dist/elements/dropdown/dropdown.d.ts +6 -7
- package/dist/elements/dropdown/dropdown.d.ts.map +1 -1
- package/dist/elements/dropdown/dropdown.js +17 -14
- package/dist/elements/dropdown-item/dropdown-item.css +7 -36
- package/dist/elements/dropdown-item/dropdown-item.d.ts +0 -1
- package/dist/elements/dropdown-item/dropdown-item.d.ts.map +1 -1
- package/dist/elements/dropdown-item/dropdown-item.js +4 -7
- package/dist/elements/dropdown-label/dropdown-label.css +3 -3
- package/dist/elements/form-field/form-field.d.ts +1 -1
- package/dist/elements/form-field/form-field.js +2 -2
- package/dist/elements/input/input.meta.d.ts +2 -0
- package/dist/elements/input/input.meta.d.ts.map +1 -1
- package/dist/elements/input/input.meta.js +2 -0
- package/dist/elements/input-otp/input-otp.d.ts +3 -3
- package/dist/elements/input-otp/input-otp.js +3 -3
- package/dist/elements/popover/popover.css +4 -4
- package/dist/elements/popover/popover.d.ts +3 -4
- package/dist/elements/popover/popover.d.ts.map +1 -1
- package/dist/elements/popover/popover.js +5 -9
- package/dist/elements/select/select.css +24 -260
- package/dist/elements/select/select.d.ts +6 -1
- package/dist/elements/select/select.d.ts.map +1 -1
- package/dist/elements/select/select.js +27 -9
- package/dist/elements/stories-viewer/stories-viewer.css +0 -12
- package/dist/elements/stories-viewer/stories-viewer.d.ts.map +1 -1
- package/dist/elements/stories-viewer/stories-viewer.js +4 -3
- package/dist/elements/tooltip/tooltip.d.ts +0 -1
- package/dist/elements/tooltip/tooltip.d.ts.map +1 -1
- package/dist/elements/tooltip/tooltip.js +2 -6
- package/dist/metadata/combobox.json +16 -1
- package/dist/metadata/dropdown.json +10 -10
- package/dist/metadata/form-field.json +1 -1
- package/dist/metadata/index.json +57 -22
- package/dist/metadata/input-otp.json +3 -3
- package/dist/metadata/input.json +5 -0
- package/dist/metadata/popover.json +5 -5
- package/dist/metadata/select.json +16 -1
- package/dist/shared/controllers/listbox-nav.d.ts +15 -1
- package/dist/shared/controllers/listbox-nav.d.ts.map +1 -1
- package/dist/shared/controllers/listbox-nav.js +32 -1
- package/dist/shared/controllers/popover.d.ts +10 -2
- package/dist/shared/controllers/popover.d.ts.map +1 -1
- package/dist/shared/controllers/popover.js +16 -2
- package/dist/shared/styles/checkbox-appearance.css +2 -2
- package/dist/shared/styles/menu-panel.css +37 -0
- package/dist/shared/styles/menu-panel.styles.d.ts +8 -0
- package/dist/shared/styles/menu-panel.styles.d.ts.map +1 -0
- package/dist/shared/styles/menu-panel.styles.js +8 -0
- package/dist/shared/styles/picker-core.css +250 -0
- package/dist/shared/styles/picker-core.styles.d.ts +9 -0
- package/dist/shared/styles/picker-core.styles.d.ts.map +1 -0
- package/dist/shared/styles/picker-core.styles.js +9 -0
- package/dist/shared/styles/select-item-suffix.css +4 -4
- package/dist/shared/styles/select-item.css +98 -0
- package/dist/shared/styles/select-item.styles.d.ts +8 -0
- package/dist/shared/styles/select-item.styles.d.ts.map +1 -0
- package/dist/shared/styles/select-item.styles.js +8 -0
- package/dist/shared/styles/visually-hidden.css +27 -0
- package/dist/shared/styles/visually-hidden.styles.d.ts +8 -0
- package/dist/shared/styles/visually-hidden.styles.d.ts.map +1 -0
- package/dist/shared/styles/visually-hidden.styles.js +8 -0
- package/dist/templates/elements/combobox.md +26 -1
- package/dist/templates/elements/disclosure.md +2 -0
- package/dist/templates/elements/dropdown.md +6 -6
- package/dist/templates/elements/form-field.md +2 -2
- package/dist/templates/elements/input-otp.md +3 -3
- package/dist/templates/elements/input.md +1 -0
- package/dist/templates/elements/popover.md +3 -3
- package/dist/templates/elements/select.md +30 -1
- package/package.json +1 -1
package/cdn/custom-elements.json
CHANGED
|
@@ -1065,159 +1065,6 @@
|
|
|
1065
1065
|
}
|
|
1066
1066
|
]
|
|
1067
1067
|
},
|
|
1068
|
-
{
|
|
1069
|
-
"kind": "javascript-module",
|
|
1070
|
-
"path": "src/html/elements/button/button.meta.ts",
|
|
1071
|
-
"declarations": [
|
|
1072
|
-
{
|
|
1073
|
-
"kind": "class",
|
|
1074
|
-
"description": "",
|
|
1075
|
-
"name": "ButtonMeta",
|
|
1076
|
-
"cssProperties": [
|
|
1077
|
-
{
|
|
1078
|
-
"description": "Button height (md size).",
|
|
1079
|
-
"name": "--height",
|
|
1080
|
-
"default": "36px"
|
|
1081
|
-
},
|
|
1082
|
-
{
|
|
1083
|
-
"description": "Horizontal padding.",
|
|
1084
|
-
"name": "--padding-inline",
|
|
1085
|
-
"default": "0.625rem"
|
|
1086
|
-
},
|
|
1087
|
-
{
|
|
1088
|
-
"description": "Background color.",
|
|
1089
|
-
"name": "--background-color"
|
|
1090
|
-
},
|
|
1091
|
-
{
|
|
1092
|
-
"description": "Background color on hover.",
|
|
1093
|
-
"name": "--background-color-hover"
|
|
1094
|
-
},
|
|
1095
|
-
{
|
|
1096
|
-
"description": "Background color on press.",
|
|
1097
|
-
"name": "--background-color-active"
|
|
1098
|
-
},
|
|
1099
|
-
{
|
|
1100
|
-
"description": "Text color.",
|
|
1101
|
-
"name": "--text-color"
|
|
1102
|
-
},
|
|
1103
|
-
{
|
|
1104
|
-
"description": "Text color on hover.",
|
|
1105
|
-
"name": "--text-color-hover"
|
|
1106
|
-
},
|
|
1107
|
-
{
|
|
1108
|
-
"description": "Border color.",
|
|
1109
|
-
"name": "--border-color"
|
|
1110
|
-
},
|
|
1111
|
-
{
|
|
1112
|
-
"description": "Border color on hover.",
|
|
1113
|
-
"name": "--border-color-hover"
|
|
1114
|
-
},
|
|
1115
|
-
{
|
|
1116
|
-
"description": "Label font size. Stays 14px across all sizes; override to opt into a larger label.",
|
|
1117
|
-
"name": "--font-size",
|
|
1118
|
-
"default": "0.875rem"
|
|
1119
|
-
}
|
|
1120
|
-
],
|
|
1121
|
-
"attributes": [
|
|
1122
|
-
{
|
|
1123
|
-
"description": "Disables the button.",
|
|
1124
|
-
"name": "disabled"
|
|
1125
|
-
},
|
|
1126
|
-
{
|
|
1127
|
-
"description": "Invoker command (`show-modal`, `close`, `show-popover`, etc.).",
|
|
1128
|
-
"name": "command"
|
|
1129
|
-
},
|
|
1130
|
-
{
|
|
1131
|
-
"description": "ID of the target element for `command`.",
|
|
1132
|
-
"name": "commandfor"
|
|
1133
|
-
},
|
|
1134
|
-
{
|
|
1135
|
-
"description": "primary | destructive — Visual variant. Default is the secondary style.",
|
|
1136
|
-
"name": "data-variant"
|
|
1137
|
-
},
|
|
1138
|
-
{
|
|
1139
|
-
"description": "sm | lg | xl — Control size. Default is md.",
|
|
1140
|
-
"name": "data-size"
|
|
1141
|
-
},
|
|
1142
|
-
{
|
|
1143
|
-
"description": "Icon-only mode (square button, width equals height). Auto-detected for a single icon child.",
|
|
1144
|
-
"name": "data-icon-only"
|
|
1145
|
-
},
|
|
1146
|
-
{
|
|
1147
|
-
"description": "Press effect (scale + translate on active).",
|
|
1148
|
-
"name": "data-press-effect"
|
|
1149
|
-
}
|
|
1150
|
-
],
|
|
1151
|
-
"summary": "Buttons trigger actions such as submitting forms, confirming dialogs, or navigating.",
|
|
1152
|
-
"examples": [
|
|
1153
|
-
{
|
|
1154
|
-
"title": "Primary",
|
|
1155
|
-
"language": "html",
|
|
1156
|
-
"code": "<button class=\"l-button\" data-variant=\"primary\">Save</button>"
|
|
1157
|
-
}
|
|
1158
|
-
],
|
|
1159
|
-
"_cssClasses": [
|
|
1160
|
-
{
|
|
1161
|
-
"name": ".l-button",
|
|
1162
|
-
"description": "Base button style."
|
|
1163
|
-
}
|
|
1164
|
-
],
|
|
1165
|
-
"customElement": false,
|
|
1166
|
-
"_native": true,
|
|
1167
|
-
"_nativeTag": "button",
|
|
1168
|
-
"selector": ".l-button",
|
|
1169
|
-
"_attributes": [
|
|
1170
|
-
{
|
|
1171
|
-
"name": "disabled",
|
|
1172
|
-
"description": "Disables the button."
|
|
1173
|
-
},
|
|
1174
|
-
{
|
|
1175
|
-
"name": "command",
|
|
1176
|
-
"description": "Invoker command (`show-modal`, `close`, `show-popover`, etc.)."
|
|
1177
|
-
},
|
|
1178
|
-
{
|
|
1179
|
-
"name": "commandfor",
|
|
1180
|
-
"description": "ID of the target element for `command`."
|
|
1181
|
-
},
|
|
1182
|
-
{
|
|
1183
|
-
"name": "data-variant",
|
|
1184
|
-
"values": [
|
|
1185
|
-
"primary",
|
|
1186
|
-
"destructive"
|
|
1187
|
-
],
|
|
1188
|
-
"description": "Visual variant. Default is the secondary style."
|
|
1189
|
-
},
|
|
1190
|
-
{
|
|
1191
|
-
"name": "data-size",
|
|
1192
|
-
"values": [
|
|
1193
|
-
"sm",
|
|
1194
|
-
"lg",
|
|
1195
|
-
"xl"
|
|
1196
|
-
],
|
|
1197
|
-
"description": "Control size. Default is md."
|
|
1198
|
-
},
|
|
1199
|
-
{
|
|
1200
|
-
"name": "data-icon-only",
|
|
1201
|
-
"description": "Icon-only mode (square button, width equals height). Auto-detected for a single icon child."
|
|
1202
|
-
},
|
|
1203
|
-
{
|
|
1204
|
-
"name": "data-press-effect",
|
|
1205
|
-
"description": "Press effect (scale + translate on active)."
|
|
1206
|
-
}
|
|
1207
|
-
]
|
|
1208
|
-
}
|
|
1209
|
-
],
|
|
1210
|
-
"exports": [
|
|
1211
|
-
{
|
|
1212
|
-
"kind": "js",
|
|
1213
|
-
"name": "ButtonMeta",
|
|
1214
|
-
"declaration": {
|
|
1215
|
-
"name": "ButtonMeta",
|
|
1216
|
-
"module": "src/html/elements/button/button.meta.ts"
|
|
1217
|
-
}
|
|
1218
|
-
}
|
|
1219
|
-
]
|
|
1220
|
-
},
|
|
1221
1068
|
{
|
|
1222
1069
|
"kind": "javascript-module",
|
|
1223
1070
|
"path": "src/html/elements/button-group/button-group.ts",
|
|
@@ -1989,6 +1836,159 @@
|
|
|
1989
1836
|
}
|
|
1990
1837
|
]
|
|
1991
1838
|
},
|
|
1839
|
+
{
|
|
1840
|
+
"kind": "javascript-module",
|
|
1841
|
+
"path": "src/html/elements/button/button.meta.ts",
|
|
1842
|
+
"declarations": [
|
|
1843
|
+
{
|
|
1844
|
+
"kind": "class",
|
|
1845
|
+
"description": "",
|
|
1846
|
+
"name": "ButtonMeta",
|
|
1847
|
+
"cssProperties": [
|
|
1848
|
+
{
|
|
1849
|
+
"description": "Button height (md size).",
|
|
1850
|
+
"name": "--height",
|
|
1851
|
+
"default": "36px"
|
|
1852
|
+
},
|
|
1853
|
+
{
|
|
1854
|
+
"description": "Horizontal padding.",
|
|
1855
|
+
"name": "--padding-inline",
|
|
1856
|
+
"default": "0.625rem"
|
|
1857
|
+
},
|
|
1858
|
+
{
|
|
1859
|
+
"description": "Background color.",
|
|
1860
|
+
"name": "--background-color"
|
|
1861
|
+
},
|
|
1862
|
+
{
|
|
1863
|
+
"description": "Background color on hover.",
|
|
1864
|
+
"name": "--background-color-hover"
|
|
1865
|
+
},
|
|
1866
|
+
{
|
|
1867
|
+
"description": "Background color on press.",
|
|
1868
|
+
"name": "--background-color-active"
|
|
1869
|
+
},
|
|
1870
|
+
{
|
|
1871
|
+
"description": "Text color.",
|
|
1872
|
+
"name": "--text-color"
|
|
1873
|
+
},
|
|
1874
|
+
{
|
|
1875
|
+
"description": "Text color on hover.",
|
|
1876
|
+
"name": "--text-color-hover"
|
|
1877
|
+
},
|
|
1878
|
+
{
|
|
1879
|
+
"description": "Border color.",
|
|
1880
|
+
"name": "--border-color"
|
|
1881
|
+
},
|
|
1882
|
+
{
|
|
1883
|
+
"description": "Border color on hover.",
|
|
1884
|
+
"name": "--border-color-hover"
|
|
1885
|
+
},
|
|
1886
|
+
{
|
|
1887
|
+
"description": "Label font size. Stays 14px across all sizes; override to opt into a larger label.",
|
|
1888
|
+
"name": "--font-size",
|
|
1889
|
+
"default": "0.875rem"
|
|
1890
|
+
}
|
|
1891
|
+
],
|
|
1892
|
+
"attributes": [
|
|
1893
|
+
{
|
|
1894
|
+
"description": "Disables the button.",
|
|
1895
|
+
"name": "disabled"
|
|
1896
|
+
},
|
|
1897
|
+
{
|
|
1898
|
+
"description": "Invoker command (`show-modal`, `close`, `show-popover`, etc.).",
|
|
1899
|
+
"name": "command"
|
|
1900
|
+
},
|
|
1901
|
+
{
|
|
1902
|
+
"description": "ID of the target element for `command`.",
|
|
1903
|
+
"name": "commandfor"
|
|
1904
|
+
},
|
|
1905
|
+
{
|
|
1906
|
+
"description": "primary | destructive — Visual variant. Default is the secondary style.",
|
|
1907
|
+
"name": "data-variant"
|
|
1908
|
+
},
|
|
1909
|
+
{
|
|
1910
|
+
"description": "sm | lg | xl — Control size. Default is md.",
|
|
1911
|
+
"name": "data-size"
|
|
1912
|
+
},
|
|
1913
|
+
{
|
|
1914
|
+
"description": "Icon-only mode (square button, width equals height). Auto-detected for a single icon child.",
|
|
1915
|
+
"name": "data-icon-only"
|
|
1916
|
+
},
|
|
1917
|
+
{
|
|
1918
|
+
"description": "Press effect (scale + translate on active).",
|
|
1919
|
+
"name": "data-press-effect"
|
|
1920
|
+
}
|
|
1921
|
+
],
|
|
1922
|
+
"summary": "Buttons trigger actions such as submitting forms, confirming dialogs, or navigating.",
|
|
1923
|
+
"examples": [
|
|
1924
|
+
{
|
|
1925
|
+
"title": "Primary",
|
|
1926
|
+
"language": "html",
|
|
1927
|
+
"code": "<button class=\"l-button\" data-variant=\"primary\">Save</button>"
|
|
1928
|
+
}
|
|
1929
|
+
],
|
|
1930
|
+
"_cssClasses": [
|
|
1931
|
+
{
|
|
1932
|
+
"name": ".l-button",
|
|
1933
|
+
"description": "Base button style."
|
|
1934
|
+
}
|
|
1935
|
+
],
|
|
1936
|
+
"customElement": false,
|
|
1937
|
+
"_native": true,
|
|
1938
|
+
"_nativeTag": "button",
|
|
1939
|
+
"selector": ".l-button",
|
|
1940
|
+
"_attributes": [
|
|
1941
|
+
{
|
|
1942
|
+
"name": "disabled",
|
|
1943
|
+
"description": "Disables the button."
|
|
1944
|
+
},
|
|
1945
|
+
{
|
|
1946
|
+
"name": "command",
|
|
1947
|
+
"description": "Invoker command (`show-modal`, `close`, `show-popover`, etc.)."
|
|
1948
|
+
},
|
|
1949
|
+
{
|
|
1950
|
+
"name": "commandfor",
|
|
1951
|
+
"description": "ID of the target element for `command`."
|
|
1952
|
+
},
|
|
1953
|
+
{
|
|
1954
|
+
"name": "data-variant",
|
|
1955
|
+
"values": [
|
|
1956
|
+
"primary",
|
|
1957
|
+
"destructive"
|
|
1958
|
+
],
|
|
1959
|
+
"description": "Visual variant. Default is the secondary style."
|
|
1960
|
+
},
|
|
1961
|
+
{
|
|
1962
|
+
"name": "data-size",
|
|
1963
|
+
"values": [
|
|
1964
|
+
"sm",
|
|
1965
|
+
"lg",
|
|
1966
|
+
"xl"
|
|
1967
|
+
],
|
|
1968
|
+
"description": "Control size. Default is md."
|
|
1969
|
+
},
|
|
1970
|
+
{
|
|
1971
|
+
"name": "data-icon-only",
|
|
1972
|
+
"description": "Icon-only mode (square button, width equals height). Auto-detected for a single icon child."
|
|
1973
|
+
},
|
|
1974
|
+
{
|
|
1975
|
+
"name": "data-press-effect",
|
|
1976
|
+
"description": "Press effect (scale + translate on active)."
|
|
1977
|
+
}
|
|
1978
|
+
]
|
|
1979
|
+
}
|
|
1980
|
+
],
|
|
1981
|
+
"exports": [
|
|
1982
|
+
{
|
|
1983
|
+
"kind": "js",
|
|
1984
|
+
"name": "ButtonMeta",
|
|
1985
|
+
"declaration": {
|
|
1986
|
+
"name": "ButtonMeta",
|
|
1987
|
+
"module": "src/html/elements/button/button.meta.ts"
|
|
1988
|
+
}
|
|
1989
|
+
}
|
|
1990
|
+
]
|
|
1991
|
+
},
|
|
1992
1992
|
{
|
|
1993
1993
|
"kind": "javascript-module",
|
|
1994
1994
|
"path": "src/html/elements/carousel-item/carousel-item.ts",
|
|
@@ -2404,8 +2404,22 @@
|
|
|
2404
2404
|
"name": "Combobox",
|
|
2405
2405
|
"cssProperties": [
|
|
2406
2406
|
{
|
|
2407
|
-
"description": "Control height.
|
|
2408
|
-
"name": "--height"
|
|
2407
|
+
"description": "Control height. The clear button and the chevron each take a square of this height (borders excluded), so their hit area and spacing follow it.",
|
|
2408
|
+
"name": "--height",
|
|
2409
|
+
"default": "var(--l-form-control-height)"
|
|
2410
|
+
},
|
|
2411
|
+
{
|
|
2412
|
+
"description": "Glyph size of the clear button and the chevron (global form-control token; set it here or on any ancestor). Changes the glyph only — the hit area follows `--height`.",
|
|
2413
|
+
"name": "--l-form-control-icon-size",
|
|
2414
|
+
"default": "1em"
|
|
2415
|
+
},
|
|
2416
|
+
{
|
|
2417
|
+
"description": "Chevron glyph as a `url()`. Masked, so its color comes from the control, not the image.",
|
|
2418
|
+
"name": "--chevron-icon"
|
|
2419
|
+
},
|
|
2420
|
+
{
|
|
2421
|
+
"description": "Clear button glyph as a `url()`.",
|
|
2422
|
+
"name": "--clear-icon"
|
|
2409
2423
|
},
|
|
2410
2424
|
{
|
|
2411
2425
|
"description": "Control + panel radius.",
|
|
@@ -3636,27 +3650,27 @@
|
|
|
3636
3650
|
"name": "Dropdown",
|
|
3637
3651
|
"cssProperties": [
|
|
3638
3652
|
{
|
|
3639
|
-
"description": "Panel background color.",
|
|
3653
|
+
"description": "Panel background color. Default `var(--l-color-surface-overlay)`.",
|
|
3640
3654
|
"name": "--background"
|
|
3641
3655
|
},
|
|
3642
3656
|
{
|
|
3643
|
-
"description": "Panel border radius. Default `
|
|
3657
|
+
"description": "Panel border radius. Default `var(--l-popover-border-radius)` (6px).",
|
|
3644
3658
|
"name": "--border-radius"
|
|
3645
3659
|
},
|
|
3646
3660
|
{
|
|
3647
|
-
"description": "Panel inner padding. Default `0.25rem
|
|
3661
|
+
"description": "Panel inner padding. Default `var(--l-popover-padding)` (0.25rem). Slotted `<l-divider>` elements bleed by this amount on each side to span the panel edges.",
|
|
3648
3662
|
"name": "--padding"
|
|
3649
3663
|
},
|
|
3650
3664
|
{
|
|
3651
|
-
"description": "Panel box shadow.",
|
|
3665
|
+
"description": "Panel box shadow. Default `var(--l-popover-shadow)`.",
|
|
3652
3666
|
"name": "--shadow"
|
|
3653
3667
|
},
|
|
3654
3668
|
{
|
|
3655
|
-
"description": "Show animation duration
|
|
3669
|
+
"description": "Show animation duration. Default `150ms`.",
|
|
3656
3670
|
"name": "--show-duration"
|
|
3657
3671
|
},
|
|
3658
3672
|
{
|
|
3659
|
-
"description": "Hide animation duration
|
|
3673
|
+
"description": "Hide animation duration. Default `150ms`.",
|
|
3660
3674
|
"name": "--hide-duration"
|
|
3661
3675
|
}
|
|
3662
3676
|
],
|
|
@@ -4300,7 +4314,7 @@
|
|
|
4300
4314
|
},
|
|
4301
4315
|
"tagName": "l-form-field",
|
|
4302
4316
|
"customElement": true,
|
|
4303
|
-
"summary": "Progressively enhances a label + control + messages group: wires the\naccessibility plumbing (`id`/`for`, `aria-describedby`, `aria-invalid`,\nrequired
|
|
4317
|
+
"summary": "Progressively enhances a label + control + messages group: wires the\naccessibility plumbing (`id`/`for`, `aria-describedby`, `aria-invalid`,\nrequired indicator) and picks an inline or stacked layout from the control type.\n\nStyling stays on the control (`.l-checkbox`, …); inside a field a bare control\nis auto-styled by the element CSS. Add `unstyled` to keep the ARIA wiring while\nopting out of that auto-styling (e.g. for a third-party control).",
|
|
4304
4318
|
"examples": [
|
|
4305
4319
|
{
|
|
4306
4320
|
"language": "html",
|
|
@@ -4488,6 +4502,11 @@
|
|
|
4488
4502
|
{
|
|
4489
4503
|
"description": "Search clear glyph as a `url()`.",
|
|
4490
4504
|
"name": "--clear-icon"
|
|
4505
|
+
},
|
|
4506
|
+
{
|
|
4507
|
+
"description": "Glyph size of the date/time picker icon and the search clear (global form-control token). Their hit area is a square of the control height (borders excluded).",
|
|
4508
|
+
"name": "--l-form-control-icon-size",
|
|
4509
|
+
"default": "1em"
|
|
4491
4510
|
}
|
|
4492
4511
|
],
|
|
4493
4512
|
"attributes": [
|
|
@@ -4765,15 +4784,15 @@
|
|
|
4765
4784
|
"name": "--cell-gap"
|
|
4766
4785
|
},
|
|
4767
4786
|
{
|
|
4768
|
-
"description": "Cell background color.",
|
|
4787
|
+
"description": "Cell background color (default: a faint ink tint over `--l-form-control-background-color`).",
|
|
4769
4788
|
"name": "--cell-bg-color"
|
|
4770
4789
|
},
|
|
4771
4790
|
{
|
|
4772
|
-
"description": "Cell border color.",
|
|
4791
|
+
"description": "Cell border color (default: `var(--l-form-control-border-color)`).",
|
|
4773
4792
|
"name": "--cell-border-color"
|
|
4774
4793
|
},
|
|
4775
4794
|
{
|
|
4776
|
-
"description": "Cell border-radius.",
|
|
4795
|
+
"description": "Cell border-radius (default: `var(--l-form-control-border-radius)`, like the other text fields).",
|
|
4777
4796
|
"name": "--cell-border-radius"
|
|
4778
4797
|
},
|
|
4779
4798
|
{
|
|
@@ -5141,7 +5160,7 @@
|
|
|
5141
5160
|
"name": "Popover",
|
|
5142
5161
|
"cssProperties": [
|
|
5143
5162
|
{
|
|
5144
|
-
"description": "Background color. Default
|
|
5163
|
+
"description": "Background color. Default `var(--l-color-surface-overlay)`.",
|
|
5145
5164
|
"name": "--background"
|
|
5146
5165
|
},
|
|
5147
5166
|
{
|
|
@@ -5149,7 +5168,7 @@
|
|
|
5149
5168
|
"name": "--color"
|
|
5150
5169
|
},
|
|
5151
5170
|
{
|
|
5152
|
-
"description": "Border radius. Default `
|
|
5171
|
+
"description": "Border radius. Default `var(--l-popover-border-radius)` (6px).",
|
|
5153
5172
|
"name": "--border-radius"
|
|
5154
5173
|
},
|
|
5155
5174
|
{
|
|
@@ -5157,7 +5176,7 @@
|
|
|
5157
5176
|
"name": "--max-width"
|
|
5158
5177
|
},
|
|
5159
5178
|
{
|
|
5160
|
-
"description": "Box shadow.",
|
|
5179
|
+
"description": "Box shadow. Default `var(--l-popover-shadow)`.",
|
|
5161
5180
|
"name": "--shadow"
|
|
5162
5181
|
},
|
|
5163
5182
|
{
|
|
@@ -6657,8 +6676,22 @@
|
|
|
6657
6676
|
"name": "Select",
|
|
6658
6677
|
"cssProperties": [
|
|
6659
6678
|
{
|
|
6660
|
-
"description": "Control height.
|
|
6661
|
-
"name": "--height"
|
|
6679
|
+
"description": "Control height. The clear button and the chevron each take a square of this height (borders excluded), so their hit area and spacing follow it.",
|
|
6680
|
+
"name": "--height",
|
|
6681
|
+
"default": "var(--l-form-control-height)"
|
|
6682
|
+
},
|
|
6683
|
+
{
|
|
6684
|
+
"description": "Glyph size of the clear button and the chevron (global form-control token; set it here or on any ancestor). Changes the glyph only — the hit area follows `--height`.",
|
|
6685
|
+
"name": "--l-form-control-icon-size",
|
|
6686
|
+
"default": "1em"
|
|
6687
|
+
},
|
|
6688
|
+
{
|
|
6689
|
+
"description": "Chevron glyph as a `url()`. Masked, so its color comes from the control, not the image.",
|
|
6690
|
+
"name": "--chevron-icon"
|
|
6691
|
+
},
|
|
6692
|
+
{
|
|
6693
|
+
"description": "Clear button glyph as a `url()`.",
|
|
6694
|
+
"name": "--clear-icon"
|
|
6662
6695
|
},
|
|
6663
6696
|
{
|
|
6664
6697
|
"description": "Trigger + panel radius.",
|
|
@@ -58,7 +58,12 @@ interface ComboboxEventMap {
|
|
|
58
58
|
* @csspart option - Each option row.
|
|
59
59
|
* @csspart empty - The "no results" message.
|
|
60
60
|
*
|
|
61
|
-
* @cssproperty [--height] - Control height.
|
|
61
|
+
* @cssproperty [--height=var(--l-form-control-height)] - Control height. The clear button and the chevron
|
|
62
|
+
* each take a square of this height (borders excluded), so their hit area and spacing follow it.
|
|
63
|
+
* @cssproperty [--l-form-control-icon-size=1em] - Glyph size of the clear button and the chevron (global form-control
|
|
64
|
+
* token; set it here or on any ancestor). Changes the glyph only — the hit area follows `--height`.
|
|
65
|
+
* @cssproperty --chevron-icon - Chevron glyph as a `url()`. Masked, so its color comes from the control, not the image.
|
|
66
|
+
* @cssproperty --clear-icon - Clear button glyph as a `url()`.
|
|
62
67
|
* @cssproperty [--border-radius] - Control + panel radius.
|
|
63
68
|
* @cssproperty [--background] - Panel background.
|
|
64
69
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/html/elements/combobox/combobox.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,KAAK,CAAC;AAG1C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,0BAA0B,EAAE,MAAM,+CAA+C,CAAC;
|
|
1
|
+
{"version":3,"file":"combobox.d.ts","sourceRoot":"","sources":["../../../src/html/elements/combobox/combobox.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{i as e}from"../../chunks/lit.js";import{n as t,r as n,t as r}from"../../chunks/decorate.js";import{t as i}from"../../chunks/unsafe-html.js";import{a,t as o}from"../../chunks/lit-html.js";import{LuxenFormAssociatedElement as s}from"../../shared/luxen-form-associated-element.js";import{PopoverController as c}from"../../shared/controllers/popover.js";import{ListboxNavController as l}from"../../shared/controllers/listbox-nav.js";import{DatalistObserverController as u}from"../../shared/controllers/datalist-observer.js";import{LocalizeController as d}from"../../shared/localize.js";import{RichHighlighter as f,highlightText as p,normalize as m}from"../../shared/highlight.js";import{uniqueId as h}from"../../registry.js";import{adoptRichContentStyles as g,richOptionLabel as _}from"../../shared/rich-option.js";import v from"../../shared/styles/host.styles.js";import y from"../../shared/styles/select-item-suffix.styles.js";var b=e(`:host{--height:var(--l-form-control-height);--border-radius:var(--l-form-control-border-radius);--background:var(--l-color-surface-overlay);inline-size:100%;display:block}:host([size=xs]){--height:var(--l-size-control-xs)}:host([size=sm]){--height:var(--l-size-control-sm)}:host([size=lg]){--height:var(--l-size-control-lg)}:host([size=xl]){--height:var(--l-size-control-xl)}:host([disabled]){opacity:.5;pointer-events:none}.base{position:relative}.control{block-size:var(--height);padding-inline:var(--l-form-control-padding-inline);border:var(--l-form-control-border-width) solid var(--l-form-control-border-color);border-radius:var(--border-radius);background-color:var(--l-form-control-background-color);cursor:text;align-items:center;gap:.25rem;display:flex}@media (hover:hover){.control:hover{border-color:var(--l-form-control-border-color-hover)}}.control:has(.input:focus-visible){border-color:var(--l-focus-ring);box-shadow:0 0 0 3px color-mix(in oklab, var(--l-focus-ring) 22%, transparent)}.input{min-inline-size:0;color:var(--l-form-control-value-color);font:inherit;background:0 0;border:0;outline:none;flex:1}.input::placeholder{color:var(--l-form-control-placeholder-color)}.chevron{block-size:1em;inline-size:1em;color:var(--l-form-control-placeholder-color);-webkit-mask:var(--_chevron-icon) center / contain no-repeat;mask:var(--_chevron-icon) center / contain no-repeat;background-color:currentColor;flex:none;transition:rotate .15s}.clear{cursor:pointer;block-size:1.5rem;inline-size:1.5rem;color:var(--l-form-control-placeholder-color);-webkit-mask:var(--_x-icon) center / 1em no-repeat;mask:var(--_x-icon) center / 1em no-repeat;background-color:currentColor;border:0;flex:none;padding:0}@media (hover:hover){.clear:hover{color:var(--l-form-control-value-color)}}.control:has(.input[aria-expanded=true]) .chevron{rotate:180deg}.panel{border:1px solid var(--l-color-border-overlay);border-radius:var(--border-radius);background-color:var(--background);box-shadow:var(--l-shadow-md);opacity:0;transition:opacity .12s ease, scale .12s ease, display .12s allow-discrete, overlay .12s allow-discrete;margin:0;padding:0;inset:auto;overflow:hidden;scale:.98}.panel:popover-open{opacity:1;scale:1}@starting-style{.panel:popover-open{opacity:0;scale:.98}}.listbox{overscroll-behavior:contain;max-block-size:16rem;margin:0;padding:.25rem;list-style:none;overflow-y:auto}.option{min-block-size:2rem;padding-block:.25rem;padding-inline:.5rem var(--height);border-radius:calc(var(--border-radius) - 2px);color:var(--l-color-text-primary);cursor:pointer;align-items:center;gap:.5rem;display:flex;position:relative}.option[aria-selected=true]{background-color:var(--l-color-bg-state-hover)}.option[aria-disabled=true]{opacity:.4;cursor:not-allowed}.option[data-current]:after{content:"";background-color:var(--l-form-control-activated-color);block-size:1em;inline-size:1em;-webkit-mask:var(--_check-icon) center / contain no-repeat;mask:var(--_check-icon) center / contain no-repeat;position:absolute;inset-inline-end:.5rem}.option-label{text-overflow:ellipsis;white-space:nowrap;flex:1;min-inline-size:0;overflow:hidden}mark.match{background-color:var(--l-form-control-match-background-color);color:inherit;font-weight:var(--l-form-control-match-font-weight);-webkit-box-decoration-break:clone;box-decoration-break:clone;border-radius:.2em}.option-rich{flex:1;align-items:center;gap:.5rem;min-inline-size:0;display:flex}.option-rich .l-select-item-media{flex:none;align-items:center;font-size:1.25em;display:inline-flex}.option-rich .l-select-item-text{flex-direction:column;min-inline-size:0;display:flex}.option-rich .l-select-item-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.option-rich .l-select-item-description{color:var(--l-color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.85em;overflow:hidden}.empty{color:var(--l-color-text-tertiary);text-align:center;padding:.5rem}.visually-hidden{clip-path:inset(50%);white-space:nowrap;border:0;block-size:1px;inline-size:1px;margin:-1px;padding:0;position:absolute;overflow:hidden}:host{--_chevron-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m6 9 6 6 6-6'/%3E%3C/svg%3E");--_x-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M18 6 6 18M6 6l12 12'/%3E%3C/svg%3E");--_check-icon:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E")}@media (prefers-reduced-motion:reduce){.panel,.chevron{transition-duration:0s}}`),x=(e,t)=>{if(!t)return!0;let n=m(e.label);return m(t).split(/\s+/).filter(Boolean).every(e=>n.includes(e))},S=class extends Event{constructor(e){super(`change`,{bubbles:!0,composed:!1,cancelable:!1}),this.value=e}},C=class extends Event{constructor(e){super(`input`,{bubbles:!0,composed:!1,cancelable:!1}),this.value=e}},w=class extends s{constructor(...e){super(...e),this._localize=new d(this),this._listId=h(`combobox-list`),this._richHighlighter=new f,this._floating=new c(this,{getTriggerElement:()=>this._controlEl,getFloatingElement:()=>this._panelEl,getArrowElement:()=>null}),this._nav=new l(this,{listboxId:this._listId,getCount:()=>this._filtered.length,isDisabled:e=>this._filtered[e]?.disabled??!1,isOpen:()=>this._open,open:()=>this.show(),getOptionElements:()=>this.shadowRoot?.querySelectorAll(`.option`)}),this._options=new u(this,()=>this._syncItems()),this.#e=``,this.#t=``,this.#n=``,this.#r=`md`,this.#i=!1,this.#a=!1,this.#o=!0,this.#s=`bottom-start`,this.filter=x,this.#c=!1,this.#l=``,this.#u=[],this._onKeyDown=e=>{if(!this._nav.onKeyDown(e))switch(e.key){case`Enter`:this._open&&(e.preventDefault(),this._commitActiveOrCustom());break;case`Escape`:this._open?(e.preventDefault(),this.hide()):(this.value||this._inputEl?.value)&&this._clear();break;case`Tab`:this._open&&this._nav.activeIndex>=0&&this._commitActiveOrCustom()}},this._onInput=e=>{this._query=e.target.value,this._nav.reset(),this._open||this.show(),this.dispatchEvent(new C(this._query))},this._onControlPointerDown=e=>{e.target.closest(`.clear`)||this._open||this.show()},this._onFocusOut=e=>{let t=e.relatedTarget;t&&this.shadowRoot?.contains(t)||(this.hasInteracted=!0,this._updateValidity(),this.hide())}}static{this.styles=[v,y,b]}#e;get value(){return this.#e}set value(e){this.#e=e}#t;get placeholder(){return this.#t}set placeholder(e){this.#t=e}#n;get label(){return this.#n}set label(e){this.#n=e}#r;get size(){return this.#r}set size(e){this.#r=e}#i;get withClear(){return this.#i}set withClear(e){this.#i=e}#a;get allowCustom(){return this.#a}set allowCustom(e){this.#a=e}#o;get highlight(){return this.#o}set highlight(e){this.#o=e}#s;get placement(){return this.#s}set placement(e){this.#s=e}#c;get _open(){return this.#c}set _open(e){this.#c=e}#l;get _query(){return this.#l}set _query(e){this.#l=e}#u;get _items(){return this.#u}set _items(e){this.#u=e}get _controlEl(){return this.shadowRoot?.querySelector(`.control`)??null}get _panelEl(){return this.shadowRoot?.querySelector(`.panel`)??null}get _inputEl(){return this.shadowRoot?.querySelector(`.input`)??null}connectedCallback(){super.connectedCallback(),this._syncItems(),this._defaultFormValue=this.value,this._syncFormValue(this.value)}updated(e){e.has(`value`)&&(this._syncFormValue(this.value),this._updateValidity(),this._open||this._resetDisplay())}formResetCallback(){this.value=this._defaultFormValue,this._query=``,this._nav.reset(),super.formResetCallback(),this._resetDisplay()}formStateRestoreCallback(e){this.value=e,this._syncFormValue(e)}_readItems(){let e=this.querySelector(`datalist`),t=e?Array.from(e.options):[];this._items=t.map(e=>{let t=e.childElementCount>0,n=_(e);return{value:e.value,label:n,disabled:e.disabled,html:t?e.innerHTML:void 0}}),g(this.shadowRoot,this._items)}_syncItems(){let e=this._open?this._filtered[this._nav.activeIndex]:void 0,t=this._inputEl?.value,n=t===void 0||t===this._labelForValue(this.value);this._readItems(),this._open?this._nav.setActive(e?this._filtered.findIndex(t=>t.value===e.value):-1):n&&this._resetDisplay()}_labelForValue(e){return this._items.find(t=>t.value===e)?.label??(this.allowCustom?e:``)}get _filtered(){return this._items.filter(e=>this.filter(e,this._query))}_resetDisplay(){let e=this._inputEl;e&&(e.value=this._labelForValue(this.value))}_updateValidity(){this.required&&!this.value?this.setValidity({valueMissing:!0},this._localize.term(`selectOption`),this._inputEl??void 0):this.setValidity({})}show(){this._open||this.disabled||(this._readItems(),this.dispatchEvent(new Event(`show`,{cancelable:!0}))&&(this._open=!0,this.value&&!this._query&&this._nav.setActive(this._filtered.findIndex(e=>e.value===this.value)),this.updateComplete.then(()=>{this._panelEl?.showPopover?.(),this._floating.startPositioning({placement:this.placement,distance:4,minWidth:`trigger`})})))}hide(){if(!this._open||!this.dispatchEvent(new Event(`hide`,{cancelable:!0})))return;this._open=!1,this._nav.reset();let e=this._panelEl;e?.matches?.(`:popover-open`)&&e.hidePopover?.(),this._floating.stopPositioning(),this._resetDisplay()}_commit(e){if(e.disabled)return;this.value=e.value,this._query=``,this.hasInteracted=!0;let t=this._inputEl;t&&(t.value=e.label),this._syncFormValue(this.value),this._updateValidity(),this.dispatchEvent(new S(this.value)),this.hide(),t?.focus()}_commitActiveOrCustom(){let e=this._filtered,t=this._nav.activeIndex;if(t>=0&&e[t]){this._commit(e[t]);return}let n=this._inputEl;this.allowCustom&&n&&(this.value=n.value,this._syncFormValue(this.value),this._updateValidity(),this.dispatchEvent(new S(this.value)),this.hide())}_clear(){this.value=``,this._query=``,this._nav.reset(),this._inputEl&&(this._inputEl.value=``),this._syncFormValue(``),this._updateValidity(),this.dispatchEvent(new S(``)),this._inputEl?.focus()}_highlight(e){return this.highlight?p(e,this._query):e}_highlightRich(e){return this.highlight?this._richHighlighter.highlight(e,this._query):e}render(){let e=this._filtered,t=this._nav.activeDescendant,n=this._nav.activeIndex,r=this.required&&!this.value&&this.hasInteracted,s=this._open?e.length===0?this._localize.term(`noResults`):`${e.length} ${this._localize.term(`suggestions`)}`:``;return a`
|
|
1
|
+
import{i as e}from"../../chunks/lit.js";import{n as t,r as n,t as r}from"../../chunks/decorate.js";import{t as i}from"../../chunks/unsafe-html.js";import{a,t as o}from"../../chunks/lit-html.js";import{LuxenFormAssociatedElement as s}from"../../shared/luxen-form-associated-element.js";import{PopoverController as c}from"../../shared/controllers/popover.js";import{ListboxNavController as l}from"../../shared/controllers/listbox-nav.js";import{DatalistObserverController as u}from"../../shared/controllers/datalist-observer.js";import{LocalizeController as d}from"../../shared/localize.js";import{RichHighlighter as f,highlightText as p,normalize as m}from"../../shared/highlight.js";import{cls as h,uniqueId as g}from"../../registry.js";import{adoptRichContentStyles as _,richOptionLabel as v}from"../../shared/rich-option.js";import y from"../../shared/styles/host.styles.js";import b from"../../shared/styles/visually-hidden.styles.js";import x from"../../shared/styles/select-item-suffix.styles.js";import S from"../../shared/styles/picker-core.styles.js";var C=e(`.control{block-size:var(--height);cursor:text;gap:.25rem}.input{min-inline-size:0;color:var(--l-form-control-value-color);font:inherit;background:0 0;border:0;outline:none;flex:1}.input::placeholder{color:var(--l-form-control-placeholder-color)}.actions{flex:none;align-self:stretch;align-items:center;display:flex}.chevron{cursor:pointer}@media (hover:hover){.chevron:hover{color:var(--l-form-control-value-color)}}.option{align-items:center;gap:var(--l-menu-item-gap);min-block-size:var(--l-menu-item-min-height);padding-block:var(--l-menu-item-padding-block);padding-inline:var(--l-menu-item-padding-inline) calc(var(--l-menu-item-padding-inline) + 1.5rem);border-radius:var(--l-menu-item-border-radius);color:var(--l-color-text-primary);cursor:pointer;display:flex;position:relative}.option[aria-selected=true]{background-color:var(--l-color-bg-state-hover)}.option[data-current]:after{content:"";background-color:var(--l-form-control-activated-color);block-size:1em;inline-size:1em;-webkit-mask:var(--_check-icon) center / contain no-repeat;mask:var(--_check-icon) center / contain no-repeat;position:absolute;inset-inline-end:.5rem}.option .l-select-item-media{flex:none;align-items:center;font-size:1.25em;display:inline-flex}.option .l-select-item-text{flex-direction:column;min-inline-size:0;display:flex}.option .l-select-item-title{text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.option .l-select-item-description{color:var(--l-color-text-tertiary);text-overflow:ellipsis;white-space:nowrap;font-size:.85em;overflow:hidden}`),w=(e,t)=>{if(!t)return!0;let n=m(e.label);return m(t).split(/\s+/).filter(Boolean).every(e=>n.includes(e))},T=class extends Event{constructor(e){super(`change`,{bubbles:!0,composed:!1,cancelable:!1}),this.value=e}},E=class extends Event{constructor(e){super(`input`,{bubbles:!0,composed:!1,cancelable:!1}),this.value=e}},D=class extends s{constructor(...e){super(...e),this._localize=new d(this),this._listId=g(`combobox-list`),this._richHighlighter=new f,this._floating=new c(this,{getTriggerElement:()=>this._controlEl,getFloatingElement:()=>this._panelEl,getArrowElement:()=>null}),this._nav=new l(this,{listboxId:this._listId,getCount:()=>this._filtered.length,isDisabled:e=>this._filtered[e]?.disabled??!1,isOpen:()=>this._open,open:()=>this.show(),getOptionElements:()=>this.shadowRoot?.querySelectorAll(`.option`)}),this._options=new u(this,()=>this._syncItems()),this.#e=``,this.#t=``,this.#n=``,this.#r=`md`,this.#i=!1,this.#a=!1,this.#o=!0,this.#s=`bottom-start`,this.filter=w,this.#c=!1,this.#l=``,this.#u=[],this._onKeyDown=e=>{if(!this._nav.onKeyDown(e))switch(e.key){case`Enter`:this._open&&(e.preventDefault(),this._commitActiveOrCustom());break;case`Escape`:this._open?(e.preventDefault(),this.hide()):(this.value||this._inputEl?.value)&&this._clear();break;case`Tab`:this._open&&this._nav.activeIndex>=0&&this._commitActiveOrCustom()}},this._onInput=e=>{this._query=e.target.value,this._nav.reset(),this._open||this.show(),this.dispatchEvent(new E(this._query))},this._onControlPointerDown=e=>{e.target.closest(`.clear-button`)||(e.target!==this._inputEl&&(e.preventDefault(),this._inputEl?.focus()),this._open?e.target.closest(`.chevron`)&&this.hide():this.show())},this._onFocusOut=e=>{let t=e.relatedTarget;t&&this.shadowRoot?.contains(t)||(this.hasInteracted=!0,this._updateValidity(),this.hide())}}static{this.styles=[y,b,x,S,C]}#e;get value(){return this.#e}set value(e){this.#e=e}#t;get placeholder(){return this.#t}set placeholder(e){this.#t=e}#n;get label(){return this.#n}set label(e){this.#n=e}#r;get size(){return this.#r}set size(e){this.#r=e}#i;get withClear(){return this.#i}set withClear(e){this.#i=e}#a;get allowCustom(){return this.#a}set allowCustom(e){this.#a=e}#o;get highlight(){return this.#o}set highlight(e){this.#o=e}#s;get placement(){return this.#s}set placement(e){this.#s=e}#c;get _open(){return this.#c}set _open(e){this.#c=e}#l;get _query(){return this.#l}set _query(e){this.#l=e}#u;get _items(){return this.#u}set _items(e){this.#u=e}get _controlEl(){return this.shadowRoot?.querySelector(`.control`)??null}get _panelEl(){return this.shadowRoot?.querySelector(`.panel`)??null}get _inputEl(){return this.shadowRoot?.querySelector(`.input`)??null}connectedCallback(){super.connectedCallback(),this._syncItems(),this._defaultFormValue=this.value,this._syncFormValue(this.value)}updated(e){e.has(`value`)&&(this._syncFormValue(this.value),this._updateValidity(),this._open||this._resetDisplay())}formResetCallback(){this.value=this._defaultFormValue,this._query=``,this._nav.reset(),super.formResetCallback(),this._resetDisplay()}formStateRestoreCallback(e){this.value=e,this._syncFormValue(e)}_readItems(){let e=this.querySelector(`datalist`),t=e?Array.from(e.options):[];this._items=t.map(e=>{let t=e.childElementCount>0,n=v(e);return{value:e.value,label:n,disabled:e.disabled,html:t?e.innerHTML:void 0}}),_(this.shadowRoot,this._items)}_syncItems(){let e=this._open?this._filtered[this._nav.activeIndex]:void 0,t=this._inputEl?.value,n=t===void 0||t===this._labelForValue(this.value);this._readItems(),this._open?this._nav.setActive(e?this._filtered.findIndex(t=>t.value===e.value):-1):n&&this._resetDisplay()}_labelForValue(e){return this._items.find(t=>t.value===e)?.label??(this.allowCustom?e:``)}get _filtered(){return this._items.filter(e=>this.filter(e,this._query))}_resetDisplay(){let e=this._inputEl;e&&(e.value=this._labelForValue(this.value))}_updateValidity(){this.required&&!this.value?this.setValidity({valueMissing:!0},this._localize.term(`selectOption`),this._inputEl??void 0):this.setValidity({})}show(){this._open||this.disabled||(this._readItems(),this.dispatchEvent(new Event(`show`,{cancelable:!0}))&&(this._open=!0,this.value&&!this._query&&this._nav.setActive(this._filtered.findIndex(e=>e.value===this.value)),this.updateComplete.then(()=>{this._panelEl?.showPopover?.(),this._floating.startPositioning({placement:this.placement,distance:4,minWidth:`trigger`})})))}hide(){if(!this._open||!this.dispatchEvent(new Event(`hide`,{cancelable:!0})))return;this._open=!1,this._nav.reset();let e=this._panelEl;e?.matches?.(`:popover-open`)&&e.hidePopover?.(),this._floating.stopPositioning(),this._resetDisplay()}_commit(e){if(e.disabled)return;this.value=e.value,this._query=``,this.hasInteracted=!0;let t=this._inputEl;t&&(t.value=e.label),this._syncFormValue(this.value),this._updateValidity(),this.dispatchEvent(new T(this.value)),this.hide(),t?.focus()}_commitActiveOrCustom(){let e=this._filtered,t=this._nav.activeIndex;if(t>=0&&e[t]){this._commit(e[t]);return}let n=this._inputEl;this.allowCustom&&n&&(this.value=n.value,this._syncFormValue(this.value),this._updateValidity(),this.dispatchEvent(new T(this.value)),this.hide())}_clear(){this.value=``,this._query=``,this._nav.reset(),this._inputEl&&(this._inputEl.value=``),this._syncFormValue(``),this._updateValidity(),this.dispatchEvent(new T(``)),this._inputEl?.focus()}_highlight(e){return this.highlight?p(e,this._query):e}_highlightRich(e){return this.highlight?this._richHighlighter.highlight(e,this._query):e}render(){let e=this._filtered,t=this._nav.activeDescendant,n=this._nav.activeIndex,r=this.required&&!this.value&&this.hasInteracted,s=this._open?e.length===0?this._localize.term(`noResults`):`${e.length} ${this._localize.term(`suggestions`)}`:``;return a`
|
|
2
2
|
<div
|
|
3
3
|
class="base"
|
|
4
4
|
part="base"
|
|
@@ -30,17 +30,19 @@ import{i as e}from"../../chunks/lit.js";import{n as t,r as n,t as r}from"../../c
|
|
|
30
30
|
@input=${this._onInput}
|
|
31
31
|
@keydown=${this._onKeyDown}
|
|
32
32
|
/>
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
33
|
+
<span class="actions">
|
|
34
|
+
${this.withClear&&(this.value||this._query)?a`<button
|
|
35
|
+
class="clear-button"
|
|
36
|
+
type="button"
|
|
37
|
+
tabindex="-1"
|
|
38
|
+
aria-label=${this._localize.term(`clear`)}
|
|
39
|
+
@click=${this._clear}
|
|
40
|
+
></button>`:o}
|
|
41
|
+
<span
|
|
42
|
+
class="chevron"
|
|
43
|
+
aria-hidden="true"
|
|
44
|
+
></span>
|
|
45
|
+
</span>
|
|
44
46
|
</div>
|
|
45
47
|
|
|
46
48
|
<div
|
|
@@ -54,6 +56,8 @@ import{i as e}from"../../chunks/lit.js";import{n as t,r as n,t as r}from"../../c
|
|
|
54
56
|
role="listbox"
|
|
55
57
|
id=${this._listId}
|
|
56
58
|
aria-label=${this.label||this._localize.term(`suggestions`)}
|
|
59
|
+
@pointermove=${this._nav.onPointerMove}
|
|
60
|
+
@pointerleave=${this._nav.onPointerLeave}
|
|
57
61
|
>
|
|
58
62
|
${e.map((e,t)=>a`<li
|
|
59
63
|
class="option"
|
|
@@ -66,9 +70,7 @@ import{i as e}from"../../chunks/lit.js";import{n as t,r as n,t as r}from"../../c
|
|
|
66
70
|
@pointerdown=${e=>e.preventDefault()}
|
|
67
71
|
@click=${()=>this._commit(e)}
|
|
68
72
|
>
|
|
69
|
-
${e.html?a`<span class="option-
|
|
70
|
-
>${i(this._highlightRich(e.html))}</span
|
|
71
|
-
>`:a`<span class="option-label">${this._highlight(e.label)}</span>`}
|
|
73
|
+
${e.html?i(this._highlightRich(e.html)):a`<span class="option-label">${this._highlight(e.label)}</span>`}
|
|
72
74
|
</li>`)}
|
|
73
75
|
</ul>
|
|
74
76
|
${e.length===0?a`<div
|
|
@@ -80,11 +82,11 @@ import{i as e}from"../../chunks/lit.js";import{n as t,r as n,t as r}from"../../c
|
|
|
80
82
|
</div>
|
|
81
83
|
|
|
82
84
|
<div
|
|
83
|
-
class
|
|
85
|
+
class=${h(`visually-hidden`)}
|
|
84
86
|
aria-live="polite"
|
|
85
87
|
>
|
|
86
88
|
${s}
|
|
87
89
|
</div>
|
|
88
90
|
</div>
|
|
89
|
-
`}};r([n({reflect:!0})],
|
|
91
|
+
`}};r([n({reflect:!0})],D.prototype,`value`,null),r([n()],D.prototype,`placeholder`,null),r([n()],D.prototype,`label`,null),r([n({reflect:!0})],D.prototype,`size`,null),r([n({type:Boolean,reflect:!0,attribute:`with-clear`})],D.prototype,`withClear`,null),r([n({type:Boolean,reflect:!0,attribute:`allow-custom`})],D.prototype,`allowCustom`,null),r([n({type:Boolean})],D.prototype,`highlight`,null),r([n()],D.prototype,`placement`,null),r([t()],D.prototype,`_open`,null),r([t()],D.prototype,`_query`,null),r([t()],D.prototype,`_items`,null);export{D as Combobox,T as ComboboxChangeEvent,E as ComboboxInputEvent};
|
|
90
92
|
//# sourceMappingURL=combobox.js.map
|