@mhmo91/schmancy 0.9.15 → 0.9.17

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 (105) hide show
  1. package/custom-elements.json +83 -35
  2. package/dist/agent/schmancy.agent.js +297 -40
  3. package/dist/agent/schmancy.agent.js.map +1 -1
  4. package/dist/agent/schmancy.manifest.json +342 -19
  5. package/dist/autocomplete-CgWUCUU-.js.map +1 -1
  6. package/dist/autocomplete-EM0jE7X2.cjs.map +1 -1
  7. package/dist/button.cjs.map +1 -1
  8. package/dist/button.js.map +1 -1
  9. package/dist/card-BslSqOsf.cjs.map +1 -1
  10. package/dist/card-CEdgK9nb.js.map +1 -1
  11. package/dist/checkbox-Br84TiCs.js.map +1 -1
  12. package/dist/checkbox-DtcFMgZL.cjs.map +1 -1
  13. package/dist/chips-BNYOweGm.js.map +1 -1
  14. package/dist/chips-DoCu5YQb.cjs.map +1 -1
  15. package/dist/details-B8p62xmR.cjs.map +1 -1
  16. package/dist/details-CCW52lzz.js.map +1 -1
  17. package/dist/divider-CbEWg3G_.js.map +1 -1
  18. package/dist/divider-JyyFw_3J.cjs.map +1 -1
  19. package/dist/expand-BmwIPNjq.cjs.map +1 -1
  20. package/dist/expand-bFa_qVDT.js.map +1 -1
  21. package/dist/extra-BUgyMgjl.cjs.map +1 -1
  22. package/dist/extra-HwbaUnCD.js.map +1 -1
  23. package/dist/form-rCZqoAoK.js.map +1 -1
  24. package/dist/form-wI58M85H.cjs.map +1 -1
  25. package/dist/handover/agent-runtime-followups.md +1 -1
  26. package/dist/handover/agent-runtime-v1.md +3 -3
  27. package/dist/input-BGNZlfL8.cjs.map +1 -1
  28. package/dist/input-Bc3bVISm.js.map +1 -1
  29. package/dist/input-chip-CiG61y-N.js.map +1 -1
  30. package/dist/input-chip-p24lkYtY.cjs.map +1 -1
  31. package/dist/page.cjs.map +1 -1
  32. package/dist/page.js.map +1 -1
  33. package/dist/radio-group-B72sYGnS.js.map +1 -1
  34. package/dist/radio-group-B7DuNxUq.cjs.map +1 -1
  35. package/dist/scroll-CdmXRXh2.js.map +1 -1
  36. package/dist/scroll-V1rAZ9fK.cjs.map +1 -1
  37. package/dist/select-DFxoBgEf.cjs.map +1 -1
  38. package/dist/select-wFDKDLQI.js.map +1 -1
  39. package/dist/surface-0XM4DBaT.js.map +1 -1
  40. package/dist/surface-B6DA01kL.cjs.map +1 -1
  41. package/dist/switch.cjs.map +1 -1
  42. package/dist/switch.js.map +1 -1
  43. package/dist/textarea-B2544vx9.cjs.map +1 -1
  44. package/dist/textarea-CS-KdSLz.js.map +1 -1
  45. package/dist/theme-Cq_c9IO3.js.map +1 -1
  46. package/dist/theme-DU5yXaV-.cjs.map +1 -1
  47. package/dist/tree.cjs.map +1 -1
  48. package/dist/tree.js.map +1 -1
  49. package/package.json +1 -1
  50. package/src/autocomplete/autocomplete.ts +12 -1
  51. package/src/button/button.ts +6 -1
  52. package/src/button/icon-button.ts +7 -1
  53. package/src/card/actions.ts +9 -0
  54. package/src/card/card.ts +18 -0
  55. package/src/card/content.ts +9 -0
  56. package/src/card/media.ts +6 -0
  57. package/src/checkbox/checkbox.ts +7 -1
  58. package/src/chips/chips.ts +14 -0
  59. package/src/chips/input-chip.ts +6 -6
  60. package/src/details/details.ts +12 -0
  61. package/src/divider/divider.ts +11 -0
  62. package/src/expand/expand-root.component.ts +12 -0
  63. package/src/expand/expand.component.ts +14 -0
  64. package/src/extra/countries/countries.ts +10 -0
  65. package/src/extra/timezone/timezone.ts +8 -1
  66. package/src/form/form.ts +9 -2
  67. package/src/input/input.ts +11 -4
  68. package/src/layout/scroll/scroll.ts +5 -1
  69. package/src/page/page.ts +8 -11
  70. package/src/radio-group/radio-button.ts +10 -1
  71. package/src/radio-group/radio-group.ts +18 -0
  72. package/src/select/select.ts +12 -1
  73. package/src/surface/surface.ts +4 -10
  74. package/src/switch/switch.ts +7 -4
  75. package/src/textarea/textarea.ts +9 -1
  76. package/src/theme/theme.component.ts +10 -15
  77. package/src/tree/tree.ts +12 -0
  78. package/types/src/autocomplete/autocomplete.d.ts +12 -1
  79. package/types/src/button/button.d.ts +6 -1
  80. package/types/src/button/icon-button.d.ts +7 -1
  81. package/types/src/card/actions.d.ts +9 -0
  82. package/types/src/card/card.d.ts +18 -0
  83. package/types/src/card/content.d.ts +9 -0
  84. package/types/src/card/media.d.ts +6 -0
  85. package/types/src/checkbox/checkbox.d.ts +7 -1
  86. package/types/src/chips/chips.d.ts +14 -0
  87. package/types/src/chips/input-chip.d.ts +6 -6
  88. package/types/src/details/details.d.ts +12 -0
  89. package/types/src/divider/divider.d.ts +11 -0
  90. package/types/src/expand/expand-root.component.d.ts +12 -0
  91. package/types/src/expand/expand.component.d.ts +14 -0
  92. package/types/src/extra/countries/countries.d.ts +10 -0
  93. package/types/src/extra/timezone/timezone.d.ts +8 -1
  94. package/types/src/form/form.d.ts +9 -2
  95. package/types/src/input/input.d.ts +11 -4
  96. package/types/src/layout/scroll/scroll.d.ts +5 -1
  97. package/types/src/page/page.d.ts +8 -11
  98. package/types/src/radio-group/radio-button.d.ts +10 -1
  99. package/types/src/radio-group/radio-group.d.ts +18 -0
  100. package/types/src/select/select.d.ts +12 -1
  101. package/types/src/surface/surface.d.ts +4 -10
  102. package/types/src/switch/switch.d.ts +7 -4
  103. package/types/src/textarea/textarea.d.ts +9 -1
  104. package/types/src/theme/theme.component.d.ts +10 -15
  105. package/types/src/tree/tree.d.ts +12 -0
@@ -126,7 +126,7 @@
126
126
  {
127
127
  "name": "schmancy-autocomplete",
128
128
  "path": "./src/autocomplete/autocomplete.ts",
129
- "description": "Autocomplete input component with filtering and multi-select support.",
129
+ "description": "Combobox with type-ahead filtering over a list of `<schmancy-option>` children. Single or multi-select. Form-associated.",
130
130
  "attributes": [
131
131
  {
132
132
  "name": "maxHeight",
@@ -321,7 +321,8 @@
321
321
  ],
322
322
  "events": [
323
323
  {
324
- "name": "change"
324
+ "name": "change",
325
+ "description": "`SchmancyAutocompleteChangeEvent` with `{ value }` (single) or `{ value, values }` (multi)."
325
326
  }
326
327
  ]
327
328
  },
@@ -873,7 +874,7 @@
873
874
  {
874
875
  "name": "schmancy-button",
875
876
  "path": "./src/button/button.ts",
876
- "description": "A button component.",
877
+ "description": "Material Design button — primary interactive surface for triggering actions or navigation.",
877
878
  "attributes": [
878
879
  {
879
880
  "name": "variant",
@@ -1015,7 +1016,7 @@
1015
1016
  {
1016
1017
  "name": "schmancy-icon-button",
1017
1018
  "path": "./src/button/icon-button.ts",
1018
- "description": "An icon button component.",
1019
+ "description": "Icon-only button for toolbar actions, close affordances, or overflow menus.",
1019
1020
  "attributes": [
1020
1021
  {
1021
1022
  "name": "size",
@@ -1150,6 +1151,7 @@
1150
1151
  {
1151
1152
  "name": "schmancy-card-action",
1152
1153
  "path": "./src/card/actions.ts",
1154
+ "description": "Action row of a schmancy-card — holds the card's buttons / links (typically aligned bottom-right).",
1153
1155
  "slots": [
1154
1156
  {
1155
1157
  "name": "",
@@ -1160,6 +1162,7 @@
1160
1162
  {
1161
1163
  "name": "schmancy-card",
1162
1164
  "path": "./src/card/card.ts",
1165
+ "description": "Material Design card — a surface-level container for grouping related content with media / content / actions slots.",
1163
1166
  "attributes": [
1164
1167
  {
1165
1168
  "name": "type",
@@ -1277,11 +1280,13 @@
1277
1280
  },
1278
1281
  {
1279
1282
  "name": "schmancy-card-content",
1280
- "path": "./src/card/content.ts"
1283
+ "path": "./src/card/content.ts",
1284
+ "description": "Content region of a schmancy-card — holds the card's headline, supporting text, and inline controls."
1281
1285
  },
1282
1286
  {
1283
1287
  "name": "schmancy-card-media",
1284
1288
  "path": "./src/card/media.ts",
1289
+ "description": "Media region of a schmancy-card — the image / thumbnail at the top of the card.",
1285
1290
  "attributes": [
1286
1291
  {
1287
1292
  "name": "src",
@@ -1625,6 +1630,7 @@
1625
1630
  {
1626
1631
  "name": "schmancy-checkbox",
1627
1632
  "path": "./src/checkbox/checkbox.ts",
1633
+ "description": "Binary checkbox for multi-select or boolean form fields. Wraps Material Web's `<md-checkbox>`; form-associated.",
1628
1634
  "attributes": [
1629
1635
  {
1630
1636
  "name": "value",
@@ -1729,7 +1735,7 @@
1729
1735
  "events": [
1730
1736
  {
1731
1737
  "name": "valueChange",
1732
- "description": "Event fired when the checkbox value changes."
1738
+ "description": "`CustomEvent<{ value: boolean }>` when the checkbox is toggled."
1733
1739
  },
1734
1740
  {
1735
1741
  "name": "change"
@@ -1840,6 +1846,7 @@
1840
1846
  {
1841
1847
  "name": "schmancy-chips",
1842
1848
  "path": "./src/chips/chips.ts",
1849
+ "description": "Filter-chip group — container for selectable `<schmancy-chip>` children. Single or multi-select.",
1843
1850
  "attributes": [
1844
1851
  {
1845
1852
  "name": "multi",
@@ -1912,7 +1919,8 @@
1912
1919
  ],
1913
1920
  "events": [
1914
1921
  {
1915
- "name": "change"
1922
+ "name": "change",
1923
+ "description": "`CustomEvent<{ value: string }>` (single) or `{ values: string[] }` (multi)."
1916
1924
  }
1917
1925
  ]
1918
1926
  },
@@ -2104,7 +2112,7 @@
2104
2112
  {
2105
2113
  "name": "schmancy-input-chip",
2106
2114
  "path": "./src/chips/input-chip.ts",
2107
- "description": "Input chip component - represents user-provided information that can be removed.\n\nIMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state.\nThey represent discrete pieces of user input (like entered tags, selections from lists, etc.)\nthat can only be removed, not toggled on/off.\n\nUse cases:\n- Displaying selected recipients in an email\n- Showing applied filters that can be removed\n- Tags or keywords entered by the user\n- Selected items from a multi-select dropdown",
2115
+ "description": "Input chip displays user-provided information (tags, recipients, filters) that can be removed but not toggled.\n\nIMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state.\nThey represent discrete pieces of user input (like entered tags, selections from lists, etc.)\nthat can only be removed, not toggled on/off.\n\nUse cases:\n- Displaying selected recipients in an email\n- Showing applied filters that can be removed\n- Tags or keywords entered by the user\n- Selected items from a multi-select dropdown",
2108
2116
  "attributes": [
2109
2117
  {
2110
2118
  "name": "value",
@@ -3147,6 +3155,7 @@
3147
3155
  {
3148
3156
  "name": "schmancy-details",
3149
3157
  "path": "./src/details/details.ts",
3158
+ "description": "Expandable disclosure panel — a styled `<details>` / `<summary>` pair with animated expand + overlay options.",
3150
3159
  "attributes": [
3151
3160
  {
3152
3161
  "name": "summary",
@@ -3257,6 +3266,12 @@
3257
3266
  "type": "string",
3258
3267
  "default": "\"all\""
3259
3268
  }
3269
+ ],
3270
+ "events": [
3271
+ {
3272
+ "name": "toggle",
3273
+ "description": "When the open state changes (bubbles from the native `<details>`)."
3274
+ }
3260
3275
  ]
3261
3276
  },
3262
3277
  {
@@ -3406,6 +3421,7 @@
3406
3421
  {
3407
3422
  "name": "schmancy-divider",
3408
3423
  "path": "./src/divider/divider.ts",
3424
+ "description": "Thin horizontal (or vertical) separator rule between sections of content.",
3409
3425
  "attributes": [
3410
3426
  {
3411
3427
  "name": "outline",
@@ -3605,6 +3621,7 @@
3605
3621
  {
3606
3622
  "name": "schmancy-expand-root",
3607
3623
  "path": "./src/expand/expand-root.component.ts",
3624
+ "description": "Container for schmancy-expand children — coordinates mutual-exclusion so only one child is open at a time. Also renders the portal panel that the active child expands into.",
3608
3625
  "attributes": [
3609
3626
  {
3610
3627
  "name": "type",
@@ -3629,6 +3646,7 @@
3629
3646
  {
3630
3647
  "name": "schmancy-expand",
3631
3648
  "path": "./src/expand/expand.component.ts",
3649
+ "description": "Accordion-style section — expands on click, coordinates with siblings via schmancy-expand-root to close any sibling when a new one opens. Only one schmancy-expand can be open at a time within the same root.",
3632
3650
  "attributes": [
3633
3651
  {
3634
3652
  "name": "summary",
@@ -3720,11 +3738,18 @@
3720
3738
  "type": "boolean",
3721
3739
  "default": "false"
3722
3740
  }
3741
+ ],
3742
+ "events": [
3743
+ {
3744
+ "name": "toggle",
3745
+ "description": "When the open state changes."
3746
+ }
3723
3747
  ]
3724
3748
  },
3725
3749
  {
3726
3750
  "name": "schmancy-select-countries",
3727
3751
  "path": "./src/extra/countries/countries.ts",
3752
+ "description": "Country picker — type-ahead autocomplete over the ISO 3166-1 country list. Form-associated.",
3728
3753
  "attributes": [
3729
3754
  {
3730
3755
  "name": "value",
@@ -3809,14 +3834,15 @@
3809
3834
  ],
3810
3835
  "events": [
3811
3836
  {
3812
- "name": "change"
3837
+ "name": "change",
3838
+ "description": "`SchmancyAutocompleteChangeEvent` with `{ value: string }` (the ISO code)."
3813
3839
  }
3814
3840
  ]
3815
3841
  },
3816
3842
  {
3817
3843
  "name": "schmancy-select-timezones",
3818
3844
  "path": "./src/extra/timezone/timezone.ts",
3819
- "description": "Timezone selector component with autocomplete filtering.",
3845
+ "description": "Timezone picker type-ahead autocomplete over the IANA tz database. Form-associated.",
3820
3846
  "attributes": [
3821
3847
  {
3822
3848
  "name": "hint",
@@ -3909,7 +3935,8 @@
3909
3935
  ],
3910
3936
  "events": [
3911
3937
  {
3912
- "name": "change"
3938
+ "name": "change",
3939
+ "description": "`SchmancyAutocompleteChangeEvent` with `{ value: string }` (the IANA tz name)."
3913
3940
  }
3914
3941
  ]
3915
3942
  },
@@ -4061,7 +4088,7 @@
4061
4088
  {
4062
4089
  "name": "schmancy-form",
4063
4090
  "path": "./src/form/form.ts",
4064
- "description": "A thin ergonomic wrapper around a native `<form>` element. Its children are\nreparented into a `<form>` element in light DOM on connection, so:\n\n- Form-associated custom elements (FACE) resolve their `internals.form`\n correctly via native DOM ancestry.\n- `new FormData(form)` collects values from every FACE + native control\n without any manual walking.\n- `form.reset()` triggers `formResetCallback()` on every FACE.\n- `form.reportValidity()` runs native validation UI.\n- `<button type=\"submit\">` and `<schmancy-button type=\"submit\">` both\n submit the form via the native submitter pipeline.\n\nThis component exists only to translate the native `submit` / `reset`\nevents into the Schmancy event shape (`detail: FormData`). All heavy\nlifting is the platform's.",
4091
+ "description": "Ergonomic wrapper around a native `<form>`. Children are reparented into a light-DOM `<form>` on connection so form-associated custom elements resolve `internals.form` via native DOM ancestry.\n\n- Form-associated custom elements (FACE) resolve their `internals.form`\n correctly via native DOM ancestry.\n- `new FormData(form)` collects values from every FACE + native control\n without any manual walking.\n- `form.reset()` triggers `formResetCallback()` on every FACE.\n- `form.reportValidity()` runs native validation UI.\n- `<button type=\"submit\">` and `<schmancy-button type=\"submit\">` both\n submit the form via the native submitter pipeline.\n\nThis component exists only to translate the native `submit` / `reset`\nevents into the Schmancy event shape (`detail: FormData`). All heavy\nlifting is the platform's.",
4065
4092
  "properties": [
4066
4093
  {
4067
4094
  "name": "tagName",
@@ -4291,7 +4318,7 @@
4291
4318
  {
4292
4319
  "name": "schmancy-input",
4293
4320
  "path": "./src/input/input.ts",
4294
- "description": "Enhanced version of the SchmancyInput component with improved form integration\nand compatibility with legacy API.\n\nThis component uses the native form association API and maintains parity with\nnative input behaviors while providing a stylish, accessible interface.",
4321
+ "description": "Single-line text input the primary form-text primitive. Form-associated via ElementInternals, so it participates in native `<form>` submission, validation, and reset without additional wiring.",
4295
4322
  "attributes": [
4296
4323
  {
4297
4324
  "name": "value",
@@ -4574,10 +4601,19 @@
4574
4601
  ],
4575
4602
  "events": [
4576
4603
  {
4577
- "name": "reset"
4604
+ "name": "input",
4605
+ "description": "`CustomEvent<{value: string}>` on every keystroke."
4606
+ },
4607
+ {
4608
+ "name": "change",
4609
+ "description": "`CustomEvent<{value: string}>` on blur/change."
4610
+ },
4611
+ {
4612
+ "name": "enter",
4613
+ "description": "`CustomEvent<{value: string}>` when user presses Enter."
4578
4614
  },
4579
4615
  {
4580
- "name": "input"
4616
+ "name": "reset"
4581
4617
  },
4582
4618
  {
4583
4619
  "name": "focus"
@@ -4588,9 +4624,6 @@
4588
4624
  {
4589
4625
  "name": "autofill"
4590
4626
  },
4591
- {
4592
- "name": "enter"
4593
- },
4594
4627
  {
4595
4628
  "name": "click"
4596
4629
  }
@@ -4599,7 +4632,7 @@
4599
4632
  {
4600
4633
  "name": "sch-input",
4601
4634
  "path": "./src/input/input.ts",
4602
- "description": "Enhanced version of the SchmancyInput component with improved form integration\nand compatibility with legacy API.\n\nThis component uses the native form association API and maintains parity with\nnative input behaviors while providing a stylish, accessible interface.",
4635
+ "description": "Single-line text input the primary form-text primitive. Form-associated via ElementInternals, so it participates in native `<form>` submission, validation, and reset without additional wiring.",
4603
4636
  "attributes": [
4604
4637
  {
4605
4638
  "name": "value",
@@ -4882,10 +4915,19 @@
4882
4915
  ],
4883
4916
  "events": [
4884
4917
  {
4885
- "name": "reset"
4918
+ "name": "input",
4919
+ "description": "`CustomEvent<{value: string}>` on every keystroke."
4886
4920
  },
4887
4921
  {
4888
- "name": "input"
4922
+ "name": "change",
4923
+ "description": "`CustomEvent<{value: string}>` on blur/change."
4924
+ },
4925
+ {
4926
+ "name": "enter",
4927
+ "description": "`CustomEvent<{value: string}>` when user presses Enter."
4928
+ },
4929
+ {
4930
+ "name": "reset"
4889
4931
  },
4890
4932
  {
4891
4933
  "name": "focus"
@@ -4896,9 +4938,6 @@
4896
4938
  {
4897
4939
  "name": "autofill"
4898
4940
  },
4899
- {
4900
- "name": "enter"
4901
- },
4902
4941
  {
4903
4942
  "name": "click"
4904
4943
  }
@@ -5954,7 +5993,7 @@
5954
5993
  {
5955
5994
  "name": "schmancy-scroll",
5956
5995
  "path": "./src/layout/scroll/scroll.ts",
5957
- "description": "A custom scrollable container with enhanced features.",
5996
+ "description": "Scrollable container with debounced scroll events, horizontal/vertical direction, optional hidden scrollbar, and programmatic scrollTo via command events or refs.",
5958
5997
  "attributes": [
5959
5998
  {
5960
5999
  "name": "hide",
@@ -8436,7 +8475,7 @@
8436
8475
  {
8437
8476
  "name": "schmancy-page",
8438
8477
  "path": "./src/page/page.ts",
8439
- "description": "Native mobile-like page container.\nPrevents double-tap zoom, pull-to-refresh, rubber-banding.\nAutomatically fills remaining viewport height.",
8478
+ "description": "Mobile-first page container — fills remaining viewport height, suppresses double-tap zoom / pull-to-refresh / rubber-banding. Lays children in a CSS grid whose row template is `rows`.",
8440
8479
  "attributes": [
8441
8480
  {
8442
8481
  "name": "rows",
@@ -8578,7 +8617,7 @@
8578
8617
  {
8579
8618
  "name": "schmancy-radio-button",
8580
8619
  "path": "./src/radio-group/radio-button.ts",
8581
- "description": "Radio button component for use within radio groups.",
8620
+ "description": "Single radio button always rendered as a child of `<schmancy-radio-group>`, never standalone.",
8582
8621
  "attributes": [
8583
8622
  {
8584
8623
  "name": "checked",
@@ -8736,6 +8775,7 @@
8736
8775
  {
8737
8776
  "name": "schmancy-radio-group",
8738
8777
  "path": "./src/radio-group/radio-group.ts",
8778
+ "description": "Radio-button group — single-select from a static list of mutually-exclusive options. Form-associated.",
8739
8779
  "attributes": [
8740
8780
  {
8741
8781
  "name": "options",
@@ -8875,7 +8915,8 @@
8875
8915
  ],
8876
8916
  "events": [
8877
8917
  {
8878
- "name": "change"
8918
+ "name": "change",
8919
+ "description": "`SchmancyRadioGroupChangeEvent` with the selected `value`."
8879
8920
  }
8880
8921
  ]
8881
8922
  },
@@ -8960,7 +9001,7 @@
8960
9001
  {
8961
9002
  "name": "schmancy-select",
8962
9003
  "path": "./src/select/select.ts",
8963
- "description": "Select dropdown component with single and multi-select support.",
9004
+ "description": "Dropdown selector single or multi-select from a list of `<schmancy-option>` children. Form-associated.",
8964
9005
  "attributes": [
8965
9006
  {
8966
9007
  "name": "disabled",
@@ -9116,7 +9157,8 @@
9116
9157
  ],
9117
9158
  "events": [
9118
9159
  {
9119
- "name": "change"
9160
+ "name": "change",
9161
+ "description": "`SchmancySelectChangeEvent` with `{ value }` (single) or `{ value: string[] }` (multi)."
9120
9162
  }
9121
9163
  ]
9122
9164
  },
@@ -9570,7 +9612,7 @@
9570
9612
  {
9571
9613
  "name": "schmancy-surface",
9572
9614
  "path": "./src/surface/surface.ts",
9573
- "description": "`<schmancy-surface>` component\n\nThis component renders a styled container that adapts its dimensions based on the `fill` property.\nIt supports various rounding options, elevation levels, and applies background and text color classes\nbased on the specified surface variant. Additionally, when the `scroller` property is true, the component\nenables internal scrolling by applying overflow and scroll-behavior styles.\n\nSurfaceMixin automatically provides surfaceStyles CSS.",
9615
+ "description": "Themed container the root surface primitive. Sets background, text color, rounding, elevation, and (optionally) internal scroll. Provides a `SchmancySurfaceTypeContext` so descendants can adapt to the enclosing surface variant.",
9574
9616
  "attributes": [
9575
9617
  {
9576
9618
  "name": "type",
@@ -9598,7 +9640,7 @@
9598
9640
  {
9599
9641
  "name": "schmancy-switch",
9600
9642
  "path": "./src/switch/switch.ts",
9601
- "description": "Binary on/off control. Form-associated, keyboard-accessible, semantically a\nswitch (ARIA role=\"switch\"). Distinct from `schmancy-checkbox`: a switch\nrepresents an immediate state change, a checkbox represents a selection in\na form to be submitted.",
9643
+ "description": "Binary on/off control with immediate effect. Form-associated, keyboard-accessible, semantically a switch (ARIA role=\"switch\"). Distinct from `schmancy-checkbox`: a switch represents an immediate state change, a checkbox represents a selection in a form to be submitted.",
9602
9644
  "attributes": [
9603
9645
  {
9604
9646
  "name": "value",
@@ -10003,7 +10045,7 @@
10003
10045
  {
10004
10046
  "name": "schmancy-textarea",
10005
10047
  "path": "./src/textarea/textarea.ts",
10006
- "description": "Textarea component with auto-resize and form integration.",
10048
+ "description": "Multi-line text input with auto-resize and form integration. Form-associated.",
10007
10049
  "attributes": [
10008
10050
  {
10009
10051
  "name": "label",
@@ -10315,7 +10357,12 @@
10315
10357
  ],
10316
10358
  "events": [
10317
10359
  {
10318
- "name": "change"
10360
+ "name": "input",
10361
+ "description": "On every keystroke."
10362
+ },
10363
+ {
10364
+ "name": "change",
10365
+ "description": "On blur."
10319
10366
  },
10320
10367
  {
10321
10368
  "name": "enter"
@@ -10389,7 +10436,7 @@
10389
10436
  {
10390
10437
  "name": "schmancy-theme",
10391
10438
  "path": "./src/theme/theme.component.ts",
10392
- "description": "SchmancyThemeComponent - Provides theming capabilities for Schmancy components.\n\nThis component manages color schemes, primary colors, and theme distribution\nthroughout the component tree. It can be used at the root level or nested\nto provide different themes to different parts of the application.",
10439
+ "description": "Theme provider generates a Material 3 palette from a seed color, resolves light/dark scheme, and publishes the token set to descendants as CSS custom properties (var(--schmancy-sys-color-…)).",
10393
10440
  "attributes": [
10394
10441
  {
10395
10442
  "name": "color",
@@ -10515,6 +10562,7 @@
10515
10562
  {
10516
10563
  "name": "schmancy-tree",
10517
10564
  "path": "./src/tree/tree.ts",
10565
+ "description": "Expandable tree node — a recursive disclosure widget. One root slot, one default slot for child nodes. Each node can itself contain schmancy-tree children.",
10518
10566
  "attributes": [
10519
10567
  {
10520
10568
  "name": "open",