luxen-ui 0.24.0 → 0.25.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.
Files changed (89) hide show
  1. package/cdn/custom-elements.json +359 -359
  2. package/cdn/elements/avatar/avatar.js +1 -1
  3. package/cdn/elements/avatar/avatar.js.map +1 -1
  4. package/cdn/elements/dropdown-item/dropdown-item.js +1 -1
  5. package/cdn/elements/dropdown-item/dropdown-item.js.map +1 -1
  6. package/cdn/elements/prose-editor/prose-editor.js +1 -1
  7. package/cdn/elements/prose-editor/prose-editor.js.map +1 -1
  8. package/cdn/elements/select/select.js +1 -1
  9. package/cdn/elements/select/select.js.map +1 -1
  10. package/cdn/elements/tag/tag.js +1 -1
  11. package/cdn/elements/tag/tag.js.map +1 -1
  12. package/cdn/elements/tree/tree.js +1 -1
  13. package/cdn/elements/tree/tree.js.map +1 -1
  14. package/cdn/elements/tree-item/tree-item.js +1 -1
  15. package/cdn/elements/tree-item/tree-item.js.map +1 -1
  16. package/cdn/shared/styles/button-core.styles.js +1 -1
  17. package/cdn/shared/styles/button-core.styles.js.map +1 -1
  18. package/cdn/shared/styles/checkbox-appearance.styles.js +1 -1
  19. package/cdn/shared/styles/checkbox-appearance.styles.js.map +1 -1
  20. package/cdn/shared/styles/picker-core.styles.js +1 -1
  21. package/cdn/shared/styles/picker-core.styles.js.map +1 -1
  22. package/cdn/standalone.css +153 -64
  23. package/cdn/standalone.js +10 -10
  24. package/cdn/standalone.js.map +1 -1
  25. package/cdn/styles/elements/breadcrumb.css +1 -1
  26. package/cdn/styles/elements/button.css +1 -1
  27. package/cdn/styles/elements/checkbox.css +1 -1
  28. package/cdn/styles/elements/close-button/circle.css +1 -1
  29. package/cdn/styles/elements/close-button/ring.css +1 -1
  30. package/cdn/styles/elements/close-button/square.css +1 -1
  31. package/cdn/styles/elements/disclosure.css +2 -2
  32. package/cdn/styles/elements/input-otp.css +2 -2
  33. package/cdn/styles/elements/input-stepper/default.css +2 -2
  34. package/cdn/styles/elements/input-stepper/pill.css +2 -2
  35. package/cdn/styles/elements/input-stepper/rounded.css +2 -2
  36. package/cdn/styles/elements/input.css +48 -15
  37. package/cdn/styles/elements/prose-editor.css +23 -8
  38. package/cdn/styles/elements/radio-group.css +1 -1
  39. package/cdn/styles/elements/radio.css +1 -1
  40. package/cdn/styles/elements/segmented-control.css +2 -2
  41. package/cdn/styles/elements/select.css +25 -4
  42. package/cdn/styles/elements/story.css +1 -1
  43. package/cdn/styles/elements/switch.css +1 -1
  44. package/cdn/styles/elements/tabs/enclosed.css +3 -3
  45. package/cdn/styles/elements/tabs/line.css +3 -3
  46. package/cdn/styles/elements/textarea.css +22 -8
  47. package/cdn/styles/preset.css +7 -1
  48. package/cdn/styles/tokens/aliases.css +3 -1
  49. package/cdn/styles/tokens/forms.css +4 -0
  50. package/cdn/styles/tokens.css +7 -1
  51. package/dist/css/elements/breadcrumb.css +1 -1
  52. package/dist/css/elements/button.css +1 -1
  53. package/dist/css/elements/checkbox.css +1 -1
  54. package/dist/css/elements/close-button/circle.css +1 -1
  55. package/dist/css/elements/close-button/ring.css +1 -1
  56. package/dist/css/elements/close-button/square.css +1 -1
  57. package/dist/css/elements/disclosure.css +2 -2
  58. package/dist/css/elements/input-otp.css +2 -2
  59. package/dist/css/elements/input-stepper/default.css +2 -2
  60. package/dist/css/elements/input-stepper/pill.css +2 -2
  61. package/dist/css/elements/input-stepper/rounded.css +2 -2
  62. package/dist/css/elements/input.css +48 -15
  63. package/dist/css/elements/prose-editor.css +23 -8
  64. package/dist/css/elements/radio-group.css +1 -1
  65. package/dist/css/elements/radio.css +1 -1
  66. package/dist/css/elements/segmented-control.css +2 -2
  67. package/dist/css/elements/select.css +25 -4
  68. package/dist/css/elements/story.css +1 -1
  69. package/dist/css/elements/switch.css +1 -1
  70. package/dist/css/elements/tabs/enclosed.css +3 -3
  71. package/dist/css/elements/tabs/line.css +3 -3
  72. package/dist/css/elements/textarea.css +22 -8
  73. package/dist/css/preset.css +7 -1
  74. package/dist/css/tokens/aliases.css +3 -1
  75. package/dist/css/tokens/forms.css +4 -0
  76. package/dist/css/tokens.css +7 -1
  77. package/dist/custom-elements.json +359 -359
  78. package/dist/elements/avatar/avatar.css +1 -1
  79. package/dist/elements/dropdown-item/dropdown-item.css +5 -4
  80. package/dist/elements/prose-editor/prose-editor.css +1 -1
  81. package/dist/elements/select/select.css +0 -4
  82. package/dist/elements/tag/tag.css +3 -3
  83. package/dist/elements/tree/tree.css +1 -1
  84. package/dist/elements/tree-item/tree-item.css +1 -1
  85. package/dist/metadata/index.json +1 -1
  86. package/dist/shared/styles/button-core.css +1 -1
  87. package/dist/shared/styles/checkbox-appearance.css +1 -1
  88. package/dist/shared/styles/picker-core.css +25 -4
  89. package/package.json +1 -1
@@ -172,181 +172,6 @@
172
172
  }
173
173
  ]
174
174
  },
175
- {
176
- "kind": "javascript-module",
177
- "path": "src/html/elements/avatar/avatar.ts",
178
- "declarations": [
179
- {
180
- "kind": "class",
181
- "description": "",
182
- "name": "Avatar",
183
- "cssProperties": [
184
- {
185
- "description": "Box size (any length). Set it inline (e.g. `style=\"--size: 20px\"`) for an arbitrary size beyond the `size` token scale; the font then follows proportionally. The `size` attribute sets it to the matching token.",
186
- "name": "--size",
187
- "default": "40px"
188
- },
189
- {
190
- "description": "Background fill color for initials and the default icon.",
191
- "name": "--color"
192
- },
193
- {
194
- "description": "Initials/icon color over `--color`. Defaults to an auto-derived readable color; set it to enforce a specific brand color (overrides the automatic choice).",
195
- "name": "--text-color"
196
- },
197
- {
198
- "description": "Set to `circle` for a fully circular avatar (default is a rounded square).",
199
- "name": "--appearance"
200
- }
201
- ],
202
- "cssParts": [
203
- {
204
- "description": "The avatar container that paints `--color`; style it (e.g. `color`) to override the auto-derived text color.",
205
- "name": "base"
206
- }
207
- ],
208
- "members": [
209
- {
210
- "kind": "field",
211
- "name": "src",
212
- "type": {
213
- "text": "string"
214
- },
215
- "default": "''",
216
- "description": "Image URL. Falls back to initials (then the default icon) if it fails to load.",
217
- "attribute": "src"
218
- },
219
- {
220
- "kind": "field",
221
- "name": "name",
222
- "type": {
223
- "text": "string"
224
- },
225
- "default": "''",
226
- "description": "Name used as the accessible label and to derive the initials fallback.",
227
- "attribute": "name"
228
- },
229
- {
230
- "kind": "field",
231
- "name": "size",
232
- "type": {
233
- "text": "string"
234
- },
235
- "default": "'md'",
236
- "description": "Avatar size: `xs`, `sm`, `md` (default), `lg`, or `xl`.",
237
- "attribute": "size",
238
- "reflects": true
239
- },
240
- {
241
- "kind": "field",
242
- "name": "badge",
243
- "type": {
244
- "text": "number"
245
- },
246
- "default": "0",
247
- "description": "Count shown in the corner badge. `0` hides the badge.",
248
- "attribute": "badge"
249
- },
250
- {
251
- "kind": "field",
252
- "name": "interactive",
253
- "type": {
254
- "text": "boolean"
255
- },
256
- "default": "false",
257
- "description": "Render as a `<button>` with focus ring and hover states.",
258
- "attribute": "interactive",
259
- "reflects": true
260
- }
261
- ],
262
- "attributes": [
263
- {
264
- "name": "src",
265
- "type": {
266
- "text": "string"
267
- },
268
- "default": "''",
269
- "description": "Image URL. Falls back to initials (then the default icon) if it fails to load.",
270
- "fieldName": "src"
271
- },
272
- {
273
- "name": "name",
274
- "type": {
275
- "text": "string"
276
- },
277
- "default": "''",
278
- "description": "Name used as the accessible label and to derive the initials fallback.",
279
- "fieldName": "name"
280
- },
281
- {
282
- "name": "size",
283
- "type": {
284
- "text": "string"
285
- },
286
- "default": "'md'",
287
- "description": "Avatar size: `xs`, `sm`, `md` (default), `lg`, or `xl`.",
288
- "fieldName": "size"
289
- },
290
- {
291
- "name": "badge",
292
- "type": {
293
- "text": "number"
294
- },
295
- "default": "0",
296
- "description": "Count shown in the corner badge. `0` hides the badge.",
297
- "fieldName": "badge"
298
- },
299
- {
300
- "name": "interactive",
301
- "type": {
302
- "text": "boolean"
303
- },
304
- "default": "false",
305
- "description": "Render as a `<button>` with focus ring and hover states.",
306
- "fieldName": "interactive"
307
- }
308
- ],
309
- "superclass": {
310
- "name": "LuxenElement",
311
- "module": "/src/html/shared/luxen-element.js"
312
- },
313
- "tagName": "l-avatar",
314
- "customElement": true,
315
- "summary": "An avatar component for displaying user images, initials, or a default icon.",
316
- "_cssClasses": [
317
- {
318
- "name": ".l-avatar-group",
319
- "description": "Flex wrapper that overlaps a row of stacked avatars."
320
- }
321
- ]
322
- }
323
- ],
324
- "exports": [
325
- {
326
- "kind": "js",
327
- "name": "Avatar",
328
- "declaration": {
329
- "name": "Avatar",
330
- "module": "src/html/elements/avatar/avatar.ts"
331
- }
332
- }
333
- ]
334
- },
335
- {
336
- "kind": "javascript-module",
337
- "path": "src/html/elements/avatar/index.ts",
338
- "declarations": [],
339
- "exports": [
340
- {
341
- "kind": "js",
342
- "name": "*",
343
- "declaration": {
344
- "name": "*",
345
- "module": "src/html/elements/avatar/avatar.js"
346
- }
347
- }
348
- ]
349
- },
350
175
  {
351
176
  "kind": "javascript-module",
352
177
  "path": "src/html/elements/alert-dialog/alert-dialog.ts",
@@ -836,6 +661,181 @@
836
661
  }
837
662
  ]
838
663
  },
664
+ {
665
+ "kind": "javascript-module",
666
+ "path": "src/html/elements/avatar/avatar.ts",
667
+ "declarations": [
668
+ {
669
+ "kind": "class",
670
+ "description": "",
671
+ "name": "Avatar",
672
+ "cssProperties": [
673
+ {
674
+ "description": "Box size (any length). Set it inline (e.g. `style=\"--size: 20px\"`) for an arbitrary size beyond the `size` token scale; the font then follows proportionally. The `size` attribute sets it to the matching token.",
675
+ "name": "--size",
676
+ "default": "40px"
677
+ },
678
+ {
679
+ "description": "Background fill color for initials and the default icon.",
680
+ "name": "--color"
681
+ },
682
+ {
683
+ "description": "Initials/icon color over `--color`. Defaults to an auto-derived readable color; set it to enforce a specific brand color (overrides the automatic choice).",
684
+ "name": "--text-color"
685
+ },
686
+ {
687
+ "description": "Set to `circle` for a fully circular avatar (default is a rounded square).",
688
+ "name": "--appearance"
689
+ }
690
+ ],
691
+ "cssParts": [
692
+ {
693
+ "description": "The avatar container that paints `--color`; style it (e.g. `color`) to override the auto-derived text color.",
694
+ "name": "base"
695
+ }
696
+ ],
697
+ "members": [
698
+ {
699
+ "kind": "field",
700
+ "name": "src",
701
+ "type": {
702
+ "text": "string"
703
+ },
704
+ "default": "''",
705
+ "description": "Image URL. Falls back to initials (then the default icon) if it fails to load.",
706
+ "attribute": "src"
707
+ },
708
+ {
709
+ "kind": "field",
710
+ "name": "name",
711
+ "type": {
712
+ "text": "string"
713
+ },
714
+ "default": "''",
715
+ "description": "Name used as the accessible label and to derive the initials fallback.",
716
+ "attribute": "name"
717
+ },
718
+ {
719
+ "kind": "field",
720
+ "name": "size",
721
+ "type": {
722
+ "text": "string"
723
+ },
724
+ "default": "'md'",
725
+ "description": "Avatar size: `xs`, `sm`, `md` (default), `lg`, or `xl`.",
726
+ "attribute": "size",
727
+ "reflects": true
728
+ },
729
+ {
730
+ "kind": "field",
731
+ "name": "badge",
732
+ "type": {
733
+ "text": "number"
734
+ },
735
+ "default": "0",
736
+ "description": "Count shown in the corner badge. `0` hides the badge.",
737
+ "attribute": "badge"
738
+ },
739
+ {
740
+ "kind": "field",
741
+ "name": "interactive",
742
+ "type": {
743
+ "text": "boolean"
744
+ },
745
+ "default": "false",
746
+ "description": "Render as a `<button>` with focus ring and hover states.",
747
+ "attribute": "interactive",
748
+ "reflects": true
749
+ }
750
+ ],
751
+ "attributes": [
752
+ {
753
+ "name": "src",
754
+ "type": {
755
+ "text": "string"
756
+ },
757
+ "default": "''",
758
+ "description": "Image URL. Falls back to initials (then the default icon) if it fails to load.",
759
+ "fieldName": "src"
760
+ },
761
+ {
762
+ "name": "name",
763
+ "type": {
764
+ "text": "string"
765
+ },
766
+ "default": "''",
767
+ "description": "Name used as the accessible label and to derive the initials fallback.",
768
+ "fieldName": "name"
769
+ },
770
+ {
771
+ "name": "size",
772
+ "type": {
773
+ "text": "string"
774
+ },
775
+ "default": "'md'",
776
+ "description": "Avatar size: `xs`, `sm`, `md` (default), `lg`, or `xl`.",
777
+ "fieldName": "size"
778
+ },
779
+ {
780
+ "name": "badge",
781
+ "type": {
782
+ "text": "number"
783
+ },
784
+ "default": "0",
785
+ "description": "Count shown in the corner badge. `0` hides the badge.",
786
+ "fieldName": "badge"
787
+ },
788
+ {
789
+ "name": "interactive",
790
+ "type": {
791
+ "text": "boolean"
792
+ },
793
+ "default": "false",
794
+ "description": "Render as a `<button>` with focus ring and hover states.",
795
+ "fieldName": "interactive"
796
+ }
797
+ ],
798
+ "superclass": {
799
+ "name": "LuxenElement",
800
+ "module": "/src/html/shared/luxen-element.js"
801
+ },
802
+ "tagName": "l-avatar",
803
+ "customElement": true,
804
+ "summary": "An avatar component for displaying user images, initials, or a default icon.",
805
+ "_cssClasses": [
806
+ {
807
+ "name": ".l-avatar-group",
808
+ "description": "Flex wrapper that overlaps a row of stacked avatars."
809
+ }
810
+ ]
811
+ }
812
+ ],
813
+ "exports": [
814
+ {
815
+ "kind": "js",
816
+ "name": "Avatar",
817
+ "declaration": {
818
+ "name": "Avatar",
819
+ "module": "src/html/elements/avatar/avatar.ts"
820
+ }
821
+ }
822
+ ]
823
+ },
824
+ {
825
+ "kind": "javascript-module",
826
+ "path": "src/html/elements/avatar/index.ts",
827
+ "declarations": [],
828
+ "exports": [
829
+ {
830
+ "kind": "js",
831
+ "name": "*",
832
+ "declaration": {
833
+ "name": "*",
834
+ "module": "src/html/elements/avatar/avatar.js"
835
+ }
836
+ }
837
+ ]
838
+ },
839
839
  {
840
840
  "kind": "javascript-module",
841
841
  "path": "src/html/elements/badge/badge.ts",
@@ -991,65 +991,218 @@
991
991
  "name": "BreadcrumbMeta",
992
992
  "cssProperties": [
993
993
  {
994
- "description": "Space between crumbs and around the separator.",
995
- "name": "--gap",
996
- "default": "0.5rem"
994
+ "description": "Space between crumbs and around the separator.",
995
+ "name": "--gap",
996
+ "default": "0.5rem"
997
+ },
998
+ {
999
+ "description": "Separator glyph color.",
1000
+ "name": "--separator-color",
1001
+ "default": "var(--l-color-text-tertiary)"
1002
+ },
1003
+ {
1004
+ "description": "Divider glyph; any character (e.g. `'›'`) or a `url()` image.",
1005
+ "name": "--separator",
1006
+ "default": "'/'"
1007
+ }
1008
+ ],
1009
+ "attributes": [
1010
+ {
1011
+ "description": "Names the navigation landmark (use `\"Breadcrumb\"`).",
1012
+ "name": "aria-label"
1013
+ },
1014
+ {
1015
+ "description": "Set to `page` on the current crumb's `<a>`.",
1016
+ "name": "aria-current"
1017
+ },
1018
+ {
1019
+ "description": "Opt out of Luxen's link theming (color, underline, hover) so you can apply your own link class. Layout, separators, scroll, and current-page behavior stay.",
1020
+ "name": "data-unstyled-links"
1021
+ }
1022
+ ],
1023
+ "summary": "A navigation trail showing the current page's position in the site hierarchy. Built on a native `<nav><ol>` per the WAI-ARIA APG pattern.",
1024
+ "examples": [
1025
+ {
1026
+ "title": "Basic",
1027
+ "language": "html",
1028
+ "code": "<nav class=\"l-breadcrumb\" aria-label=\"Breadcrumb\">\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/products\">Products</a></li>\n<li><a href=\"/products/bags\" aria-current=\"page\">Bags</a></li>\n</ol>\n</nav>"
1029
+ }
1030
+ ],
1031
+ "_cssClasses": [
1032
+ {
1033
+ "name": ".l-breadcrumb",
1034
+ "description": "Breadcrumb navigation on a `<nav>` wrapping an `<ol>` of `<li><a>` crumbs."
1035
+ }
1036
+ ],
1037
+ "customElement": false,
1038
+ "_native": true,
1039
+ "_nativeTag": "nav",
1040
+ "selector": ".l-breadcrumb",
1041
+ "_attributes": [
1042
+ {
1043
+ "name": "aria-label",
1044
+ "description": "Names the navigation landmark (use `\"Breadcrumb\"`)."
1045
+ },
1046
+ {
1047
+ "name": "aria-current",
1048
+ "description": "Set to `page` on the current crumb's `<a>`."
1049
+ },
1050
+ {
1051
+ "name": "data-unstyled-links",
1052
+ "description": "Opt out of Luxen's link theming (color, underline, hover) so you can apply your own link class. Layout, separators, scroll, and current-page behavior stay."
1053
+ }
1054
+ ]
1055
+ }
1056
+ ],
1057
+ "exports": [
1058
+ {
1059
+ "kind": "js",
1060
+ "name": "BreadcrumbMeta",
1061
+ "declaration": {
1062
+ "name": "BreadcrumbMeta",
1063
+ "module": "src/html/elements/breadcrumb/breadcrumb.meta.ts"
1064
+ }
1065
+ }
1066
+ ]
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"
997
1110
  },
998
1111
  {
999
- "description": "Separator glyph color.",
1000
- "name": "--separator-color",
1001
- "default": "var(--l-color-text-tertiary)"
1112
+ "description": "Border color on hover.",
1113
+ "name": "--border-color-hover"
1002
1114
  },
1003
1115
  {
1004
- "description": "Divider glyph; any character (e.g. `'›'`) or a `url()` image.",
1005
- "name": "--separator",
1006
- "default": "'/'"
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"
1007
1119
  }
1008
1120
  ],
1009
1121
  "attributes": [
1010
1122
  {
1011
- "description": "Names the navigation landmark (use `\"Breadcrumb\"`).",
1012
- "name": "aria-label"
1123
+ "description": "Disables the button.",
1124
+ "name": "disabled"
1013
1125
  },
1014
1126
  {
1015
- "description": "Set to `page` on the current crumb's `<a>`.",
1016
- "name": "aria-current"
1127
+ "description": "Invoker command (`show-modal`, `close`, `show-popover`, etc.).",
1128
+ "name": "command"
1017
1129
  },
1018
1130
  {
1019
- "description": "Opt out of Luxen's link theming (color, underline, hover) so you can apply your own link class. Layout, separators, scroll, and current-page behavior stay.",
1020
- "name": "data-unstyled-links"
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"
1021
1149
  }
1022
1150
  ],
1023
- "summary": "A navigation trail showing the current page's position in the site hierarchy. Built on a native `<nav><ol>` per the WAI-ARIA APG pattern.",
1151
+ "summary": "Buttons trigger actions such as submitting forms, confirming dialogs, or navigating.",
1024
1152
  "examples": [
1025
1153
  {
1026
- "title": "Basic",
1154
+ "title": "Primary",
1027
1155
  "language": "html",
1028
- "code": "<nav class=\"l-breadcrumb\" aria-label=\"Breadcrumb\">\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/products\">Products</a></li>\n<li><a href=\"/products/bags\" aria-current=\"page\">Bags</a></li>\n</ol>\n</nav>"
1156
+ "code": "<button class=\"l-button\" data-variant=\"primary\">Save</button>"
1029
1157
  }
1030
1158
  ],
1031
1159
  "_cssClasses": [
1032
1160
  {
1033
- "name": ".l-breadcrumb",
1034
- "description": "Breadcrumb navigation on a `<nav>` wrapping an `<ol>` of `<li><a>` crumbs."
1161
+ "name": ".l-button",
1162
+ "description": "Base button style."
1035
1163
  }
1036
1164
  ],
1037
1165
  "customElement": false,
1038
1166
  "_native": true,
1039
- "_nativeTag": "nav",
1040
- "selector": ".l-breadcrumb",
1167
+ "_nativeTag": "button",
1168
+ "selector": ".l-button",
1041
1169
  "_attributes": [
1042
1170
  {
1043
- "name": "aria-label",
1044
- "description": "Names the navigation landmark (use `\"Breadcrumb\"`)."
1171
+ "name": "disabled",
1172
+ "description": "Disables the button."
1045
1173
  },
1046
1174
  {
1047
- "name": "aria-current",
1048
- "description": "Set to `page` on the current crumb's `<a>`."
1175
+ "name": "command",
1176
+ "description": "Invoker command (`show-modal`, `close`, `show-popover`, etc.)."
1049
1177
  },
1050
1178
  {
1051
- "name": "data-unstyled-links",
1052
- "description": "Opt out of Luxen's link theming (color, underline, hover) so you can apply your own link class. Layout, separators, scroll, and current-page behavior stay."
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)."
1053
1206
  }
1054
1207
  ]
1055
1208
  }
@@ -1057,10 +1210,10 @@
1057
1210
  "exports": [
1058
1211
  {
1059
1212
  "kind": "js",
1060
- "name": "BreadcrumbMeta",
1213
+ "name": "ButtonMeta",
1061
1214
  "declaration": {
1062
- "name": "BreadcrumbMeta",
1063
- "module": "src/html/elements/breadcrumb/breadcrumb.meta.ts"
1215
+ "name": "ButtonMeta",
1216
+ "module": "src/html/elements/button/button.meta.ts"
1064
1217
  }
1065
1218
  }
1066
1219
  ]
@@ -1836,159 +1989,6 @@
1836
1989
  }
1837
1990
  ]
1838
1991
  },
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",