@mhmo91/schmancy 0.9.14 → 0.9.16

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 (61) hide show
  1. package/custom-elements.json +57 -30
  2. package/dist/agent/schmancy.agent.js +178 -25
  3. package/dist/agent/schmancy.agent.js.map +1 -1
  4. package/dist/agent/schmancy.manifest.json +208 -12
  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/checkbox-Br84TiCs.js.map +1 -1
  10. package/dist/checkbox-DtcFMgZL.cjs.map +1 -1
  11. package/dist/chips-BNYOweGm.js.map +1 -1
  12. package/dist/chips-DoCu5YQb.cjs.map +1 -1
  13. package/dist/extra-BUgyMgjl.cjs.map +1 -1
  14. package/dist/extra-HwbaUnCD.js.map +1 -1
  15. package/dist/form-rCZqoAoK.js.map +1 -1
  16. package/dist/form-wI58M85H.cjs.map +1 -1
  17. package/dist/handover/agent-runtime-followups.md +247 -0
  18. package/dist/handover/agent-runtime-v1.md +109 -0
  19. package/dist/input-BGNZlfL8.cjs.map +1 -1
  20. package/dist/input-Bc3bVISm.js.map +1 -1
  21. package/dist/input-chip-CiG61y-N.js.map +1 -1
  22. package/dist/input-chip-p24lkYtY.cjs.map +1 -1
  23. package/dist/radio-group-B72sYGnS.js.map +1 -1
  24. package/dist/radio-group-B7DuNxUq.cjs.map +1 -1
  25. package/dist/select-DFxoBgEf.cjs.map +1 -1
  26. package/dist/select-wFDKDLQI.js.map +1 -1
  27. package/dist/switch.cjs.map +1 -1
  28. package/dist/switch.js.map +1 -1
  29. package/dist/textarea-B2544vx9.cjs.map +1 -1
  30. package/dist/textarea-CS-KdSLz.js.map +1 -1
  31. package/package.json +3 -2
  32. package/src/autocomplete/autocomplete.ts +12 -1
  33. package/src/button/button.ts +6 -1
  34. package/src/button/icon-button.ts +7 -1
  35. package/src/checkbox/checkbox.ts +7 -1
  36. package/src/chips/chips.ts +14 -0
  37. package/src/chips/input-chip.ts +6 -6
  38. package/src/extra/countries/countries.ts +10 -0
  39. package/src/extra/timezone/timezone.ts +8 -1
  40. package/src/form/form.ts +9 -2
  41. package/src/input/input.ts +11 -4
  42. package/src/radio-group/radio-button.ts +10 -1
  43. package/src/radio-group/radio-group.ts +18 -0
  44. package/src/select/select.ts +12 -1
  45. package/src/switch/switch.ts +7 -4
  46. package/src/textarea/textarea.ts +9 -1
  47. package/types/src/autocomplete/autocomplete.d.ts +12 -1
  48. package/types/src/button/button.d.ts +6 -1
  49. package/types/src/button/icon-button.d.ts +7 -1
  50. package/types/src/checkbox/checkbox.d.ts +7 -1
  51. package/types/src/chips/chips.d.ts +14 -0
  52. package/types/src/chips/input-chip.d.ts +6 -6
  53. package/types/src/extra/countries/countries.d.ts +10 -0
  54. package/types/src/extra/timezone/timezone.d.ts +8 -1
  55. package/types/src/form/form.d.ts +9 -2
  56. package/types/src/input/input.d.ts +11 -4
  57. package/types/src/radio-group/radio-button.d.ts +10 -1
  58. package/types/src/radio-group/radio-group.d.ts +18 -0
  59. package/types/src/select/select.d.ts +12 -1
  60. package/types/src/switch/switch.d.ts +7 -4
  61. package/types/src/textarea/textarea.d.ts +9 -1
@@ -217,7 +217,13 @@
217
217
  "kind": "class",
218
218
  "name": "SchmancyAutocomplete",
219
219
  "tagName": "schmancy-autocomplete",
220
- "description": "Autocomplete input component with filtering and multi-select support.",
220
+ "description": "Combobox with type-ahead filtering over a list of `<schmancy-option>` children. Single or multi-select. Form-associated.",
221
+ "summary": "Use when users need to pick from a known list of options but the list is too long for a plain select dropdown. Prefer schmancy-select for short static lists.",
222
+ "platformPrimitive": {
223
+ "tag": "combobox",
224
+ "mode": "change",
225
+ "note": "Composed of a schmancy-input + a floating listbox populated from `<schmancy-option>` children. Multi-select renders selections as schmancy-input-chip chips. Degrades to a datalist-backed native input if the tag never registers."
226
+ },
221
227
  "attributes": [
222
228
  {
223
229
  "name": "required",
@@ -317,6 +323,15 @@
317
323
  },
318
324
  "default": "''"
319
325
  }
326
+ ],
327
+ "events": [
328
+ {
329
+ "name": "change",
330
+ "description": "`SchmancyAutocompleteChangeEvent` with `{ value }` (single) or `{ value, values }` (multi)."
331
+ }
332
+ ],
333
+ "examples": [
334
+ "<schmancy-autocomplete name=\"country\" label=\"Country\" placeholder=\"Start typing…\">\n <schmancy-option value=\"US\">United States</schmancy-option>\n <schmancy-option value=\"CA\">Canada</schmancy-option>\n <schmancy-option value=\"GB\">United Kingdom</schmancy-option>\n</schmancy-autocomplete>"
320
335
  ]
321
336
  }
322
337
  ]
@@ -631,7 +646,13 @@
631
646
  "kind": "class",
632
647
  "name": "SchmancyButton",
633
648
  "tagName": "schmancy-button",
634
- "description": "A button component.",
649
+ "description": "Material Design button — primary interactive surface for triggering actions or navigation.",
650
+ "summary": "Trigger actions or navigate. Form-associated; participates in native form submission.",
651
+ "platformPrimitive": {
652
+ "tag": "button",
653
+ "mode": "click",
654
+ "note": "Schmancy-skinned native `<button type=\"submit\">`. When `href` is set, degrades to `<a href=\"…\">`. Falls back to plain `<button>` styled with Tailwind if the tag never registers."
655
+ },
635
656
  "attributes": [
636
657
  {
637
658
  "name": "variant",
@@ -741,6 +762,9 @@
741
762
  "description": "The underlying native `<button>` (or `<a>` when `href` is set)."
742
763
  }
743
764
  ],
765
+ "examples": [
766
+ "<schmancy-button variant=\"filled\" @click=${() => save()}>Save</schmancy-button>\n<schmancy-button variant=\"outlined\" href=\"/next\">Continue</schmancy-button>"
767
+ ],
744
768
  "contexts": [
745
769
  {
746
770
  "name": "SchmancyButtonSizeContext",
@@ -758,7 +782,13 @@
758
782
  "kind": "class",
759
783
  "name": "SchmnacyIconButton",
760
784
  "tagName": "schmancy-icon-button",
761
- "description": "An icon button component.",
785
+ "description": "Icon-only button for toolbar actions, close affordances, or overflow menus.",
786
+ "summary": "Compact round/square button wrapping a single icon glyph. Form-associated like schmancy-button.",
787
+ "platformPrimitive": {
788
+ "tag": "button",
789
+ "mode": "click",
790
+ "note": "Schmancy-skinned native `<button>` (or `<a>` when `href` is set). aria-label is required for a11y because there's no text content."
791
+ },
762
792
  "attributes": [
763
793
  {
764
794
  "name": "size",
@@ -859,6 +889,9 @@
859
889
  "name": "base",
860
890
  "description": "The underlying native `<button>` (or `<a>` when `href` is set)."
861
891
  }
892
+ ],
893
+ "examples": [
894
+ "<schmancy-icon-button aria-label=\"Close\" @click=${() => close()}>\n <schmancy-icon>close</schmancy-icon>\n</schmancy-icon-button>"
862
895
  ]
863
896
  }
864
897
  ]
@@ -1222,6 +1255,13 @@
1222
1255
  "kind": "class",
1223
1256
  "name": "SchmancyCheckboxElement",
1224
1257
  "tagName": "schmancy-checkbox",
1258
+ "description": "Binary checkbox for multi-select or boolean form fields. Wraps Material Web's `<md-checkbox>`; form-associated.",
1259
+ "summary": "Use for \"select many from a list\" or any boolean that's part of a form submission. Prefer schmancy-switch for immediate-effect toggles.",
1260
+ "platformPrimitive": {
1261
+ "tag": "checkbox",
1262
+ "mode": "change",
1263
+ "note": "Wraps `<md-checkbox>` from `@material/web`. Degrades to styled native `<input type=\"checkbox\">` if the tag never registers."
1264
+ },
1225
1265
  "attributes": [
1226
1266
  {
1227
1267
  "name": "value",
@@ -1282,7 +1322,7 @@
1282
1322
  "events": [
1283
1323
  {
1284
1324
  "name": "valueChange",
1285
- "description": "Event fired when the checkbox value changes."
1325
+ "description": "`CustomEvent<{ value: boolean }>` when the checkbox is toggled."
1286
1326
  }
1287
1327
  ],
1288
1328
  "slots": [
@@ -1290,6 +1330,9 @@
1290
1330
  "name": "",
1291
1331
  "description": "The label for the checkbox."
1292
1332
  }
1333
+ ],
1334
+ "examples": [
1335
+ "<schmancy-checkbox name=\"tos\" required>I accept the terms</schmancy-checkbox>"
1293
1336
  ]
1294
1337
  }
1295
1338
  ]
@@ -1364,6 +1407,13 @@
1364
1407
  "kind": "class",
1365
1408
  "name": "SchmancyChips",
1366
1409
  "tagName": "schmancy-chips",
1410
+ "description": "Filter-chip group — container for selectable `<schmancy-chip>` children. Single or multi-select.",
1411
+ "summary": "Use for filtering or choosing from 2–8 mutually-visible options (\"Status: active / paused / archived\"). Prefer schmancy-select when the list gets long or vertical.",
1412
+ "platformPrimitive": {
1413
+ "tag": "chip-group",
1414
+ "mode": "change",
1415
+ "note": "No direct native equivalent. Degrades to a styled schmancy-select with similar semantics if the tag never registers."
1416
+ },
1367
1417
  "attributes": [
1368
1418
  {
1369
1419
  "name": "wrap",
@@ -1391,6 +1441,15 @@
1391
1441
  ],
1392
1442
  "default": "'start'"
1393
1443
  }
1444
+ ],
1445
+ "events": [
1446
+ {
1447
+ "name": "change",
1448
+ "description": "`CustomEvent<{ value: string }>` (single) or `{ values: string[] }` (multi)."
1449
+ }
1450
+ ],
1451
+ "examples": [
1452
+ "<schmancy-chips multi @change=${(e) => this.filters = e.detail.values}>\n <schmancy-chip value=\"active\">Active</schmancy-chip>\n <schmancy-chip value=\"paused\">Paused</schmancy-chip>\n <schmancy-chip value=\"archived\">Archived</schmancy-chip>\n</schmancy-chips>"
1394
1453
  ]
1395
1454
  }
1396
1455
  ]
@@ -1403,7 +1462,13 @@
1403
1462
  "kind": "class",
1404
1463
  "name": "SchmancyInputChip",
1405
1464
  "tagName": "schmancy-input-chip",
1406
- "description": "Input chip component - represents user-provided information that can be removed. IMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state. They represent discrete pieces of user input (like entered tags, selections from lists, etc.) that can only be removed, not toggled on/off. Use cases: - Displaying selected recipients in an email - Showing applied filters that can be removed - Tags or keywords entered by the user - Selected items from a multi-select dropdown",
1465
+ "description": "Input chip displays user-provided information (tags, recipients, filters) that can be removed but not toggled. IMPORTANT: Per Material Design 3 specification, input chips do NOT have selected state. They represent discrete pieces of user input (like entered tags, selections from lists, etc.) that can only be removed, not toggled on/off. Use cases: - Displaying selected recipients in an email - Showing applied filters that can be removed - Tags or keywords entered by the user - Selected items from a multi-select dropdown",
1466
+ "summary": "Removable pill that represents a single user input value. No selected state — use schmancy-chip (filter chip) for toggleable options.",
1467
+ "platformPrimitive": {
1468
+ "tag": "chip",
1469
+ "mode": "remove",
1470
+ "note": "No native equivalent. Composed of a labeled pill + close button. Degrades to a styled `<span>` with a trailing close `<button>` if the tag never registers."
1471
+ },
1407
1472
  "attributes": [
1408
1473
  {
1409
1474
  "name": "value",
@@ -2635,7 +2700,13 @@
2635
2700
  "kind": "class",
2636
2701
  "name": "SchmancyForm",
2637
2702
  "tagName": "schmancy-form",
2638
- "description": "A thin ergonomic wrapper around a native `<form>` element. Its children are reparented into a `<form>` element in light DOM on connection, so: - Form-associated custom elements (FACE) resolve their `internals.form` correctly via native DOM ancestry. - `new FormData(form)` collects values from every FACE + native control without any manual walking. - `form.reset()` triggers `formResetCallback()` on every FACE. - `form.reportValidity()` runs native validation UI. - `<button type=\"submit\">` and `<schmancy-button type=\"submit\">` both submit the form via the native submitter pipeline. This component exists only to translate the native `submit` / `reset` events into the Schmancy event shape (`detail: FormData`). All heavy lifting is the platform's.",
2703
+ "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. - Form-associated custom elements (FACE) resolve their `internals.form` correctly via native DOM ancestry. - `new FormData(form)` collects values from every FACE + native control without any manual walking. - `form.reset()` triggers `formResetCallback()` on every FACE. - `form.reportValidity()` runs native validation UI. - `<button type=\"submit\">` and `<schmancy-button type=\"submit\">` both submit the form via the native submitter pipeline. This component exists only to translate the native `submit` / `reset` events into the Schmancy event shape (`detail: FormData`). All heavy lifting is the platform's.",
2704
+ "summary": "Always wrap form-associated schmancy components in schmancy-form (or a native `<form>`) so `new FormData(form)` just works.",
2705
+ "platformPrimitive": {
2706
+ "tag": "form",
2707
+ "mode": "submit",
2708
+ "note": "Light-DOM native `<form>` element. Degrades to a `<form>` if the tag never registers — same semantics, just no CustomEvent translation."
2709
+ },
2639
2710
  "events": [
2640
2711
  {
2641
2712
  "name": "submit",
@@ -2645,6 +2716,9 @@
2645
2716
  "name": "reset",
2646
2717
  "description": "Emitted after the underlying form resets."
2647
2718
  }
2719
+ ],
2720
+ "examples": [
2721
+ "<schmancy-form @submit=${(e) => console.log(Object.fromEntries(e.detail))}>\n <schmancy-input name=\"email\" type=\"email\" required></schmancy-input>\n <schmancy-input name=\"password\" type=\"password\" required></schmancy-input>\n <schmancy-button type=\"submit\" variant=\"filled\">Sign in</schmancy-button>\n</schmancy-form>"
2648
2722
  ]
2649
2723
  }
2650
2724
  ]
@@ -2825,7 +2899,13 @@
2825
2899
  "kind": "class",
2826
2900
  "name": "SchmancyInput",
2827
2901
  "tagName": "schmancy-input",
2828
- "description": "Enhanced version of the SchmancyInput component with improved form integration and compatibility with legacy API. This component uses the native form association API and maintains parity with native input behaviors while providing a stylish, accessible interface.",
2902
+ "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.",
2903
+ "summary": "Text input with Material Design styling, native form integration, and RxJS-debounced input/change/enter events.",
2904
+ "platformPrimitive": {
2905
+ "tag": "input",
2906
+ "mode": "change",
2907
+ "note": "Schmancy-skinned native `<input>`. Degrades to `<input class=\"…\">` styled via Tailwind if the tag never registers."
2908
+ },
2829
2909
  "attributes": [
2830
2910
  {
2831
2911
  "name": "value",
@@ -2994,6 +3074,23 @@
2994
3074
  },
2995
3075
  "description": "For datalist support"
2996
3076
  }
3077
+ ],
3078
+ "events": [
3079
+ {
3080
+ "name": "input",
3081
+ "description": "`CustomEvent<{value: string}>` on every keystroke."
3082
+ },
3083
+ {
3084
+ "name": "change",
3085
+ "description": "`CustomEvent<{value: string}>` on blur/change."
3086
+ },
3087
+ {
3088
+ "name": "enter",
3089
+ "description": "`CustomEvent<{value: string}>` when user presses Enter."
3090
+ }
3091
+ ],
3092
+ "examples": [
3093
+ "<schmancy-form @submit=${onSubmit}>\n <schmancy-input name=\"email\" type=\"email\" label=\"Email\" required></schmancy-input>\n</schmancy-form>"
2997
3094
  ]
2998
3095
  },
2999
3096
  {
@@ -4716,7 +4813,13 @@
4716
4813
  "kind": "class",
4717
4814
  "name": "RadioButton",
4718
4815
  "tagName": "schmancy-radio-button",
4719
- "description": "Radio button component for use within radio groups.",
4816
+ "description": "Single radio button always rendered as a child of `<schmancy-radio-group>`, never standalone.",
4817
+ "summary": "Low-level primitive. Use schmancy-radio-group and pass `.options` for the common path; only instantiate schmancy-radio-button directly when you need per-button custom rendering.",
4818
+ "platformPrimitive": {
4819
+ "tag": "radio",
4820
+ "mode": "change",
4821
+ "note": "Schmancy-skinned `<input type=\"radio\">` semantics. Degrades to native radio if the tag never registers."
4822
+ },
4720
4823
  "attributes": [
4721
4824
  {
4722
4825
  "name": "value",
@@ -4746,6 +4849,9 @@
4746
4849
  },
4747
4850
  "default": "''"
4748
4851
  }
4852
+ ],
4853
+ "examples": [
4854
+ "<schmancy-radio-group name=\"plan\">\n <schmancy-radio-button value=\"free\">Free</schmancy-radio-button>\n <schmancy-radio-button value=\"pro\" checked>Pro</schmancy-radio-button>\n</schmancy-radio-group>"
4749
4855
  ]
4750
4856
  }
4751
4857
  ]
@@ -4758,6 +4864,13 @@
4758
4864
  "kind": "class",
4759
4865
  "name": "RadioGroup",
4760
4866
  "tagName": "schmancy-radio-group",
4867
+ "description": "Radio-button group — single-select from a static list of mutually-exclusive options. Form-associated.",
4868
+ "summary": "Use for 2–5 mutually-exclusive options where all should stay visible (\"Shipping: standard / express / overnight\"). Prefer schmancy-select when the list grows.",
4869
+ "platformPrimitive": {
4870
+ "tag": "radiogroup",
4871
+ "mode": "change",
4872
+ "note": "Renders schmancy-radio-button children. Degrades to a fieldset with native `<input type=\"radio\" name=\"…\">` siblings if the tag never registers."
4873
+ },
4761
4874
  "attributes": [
4762
4875
  {
4763
4876
  "name": "label",
@@ -4794,6 +4907,15 @@
4794
4907
  },
4795
4908
  "default": "false"
4796
4909
  }
4910
+ ],
4911
+ "events": [
4912
+ {
4913
+ "name": "change",
4914
+ "description": "`SchmancyRadioGroupChangeEvent` with the selected `value`."
4915
+ }
4916
+ ],
4917
+ "examples": [
4918
+ "<schmancy-radio-group\n name=\"shipping\"\n label=\"Shipping\"\n .options=${[\n { label: 'Standard (5 days)', value: 'standard' },\n { label: 'Express (2 days)', value: 'express' },\n { label: 'Overnight', value: 'overnight' },\n ]}\n></schmancy-radio-group>"
4797
4919
  ]
4798
4920
  }
4799
4921
  ]
@@ -4866,7 +4988,13 @@
4866
4988
  "kind": "class",
4867
4989
  "name": "SchmancySelect",
4868
4990
  "tagName": "schmancy-select",
4869
- "description": "Select dropdown component with single and multi-select support.",
4991
+ "description": "Dropdown selector single or multi-select from a list of `<schmancy-option>` children. Form-associated.",
4992
+ "summary": "Material Design dropdown with type-to-filter, keyboard nav, single or multi-select. Options are declared as `<schmancy-option>` children; value / values props sync with selection.",
4993
+ "platformPrimitive": {
4994
+ "tag": "select",
4995
+ "mode": "change",
4996
+ "note": "Floating-UI-positioned listbox. Degrades to native `<select>` styled via Tailwind if the tag never registers, though multi-select UX is lost."
4997
+ },
4870
4998
  "attributes": [
4871
4999
  {
4872
5000
  "name": "name",
@@ -4950,6 +5078,15 @@
4950
5078
  },
4951
5079
  "default": "''"
4952
5080
  }
5081
+ ],
5082
+ "events": [
5083
+ {
5084
+ "name": "change",
5085
+ "description": "`SchmancySelectChangeEvent` with `{ value }` (single) or `{ value: string[] }` (multi)."
5086
+ }
5087
+ ],
5088
+ "examples": [
5089
+ "<schmancy-select name=\"priority\" label=\"Priority\" value=\"medium\">\n <schmancy-option value=\"low\">Low</schmancy-option>\n <schmancy-option value=\"medium\">Medium</schmancy-option>\n <schmancy-option value=\"high\">High</schmancy-option>\n</schmancy-select>"
4953
5090
  ]
4954
5091
  }
4955
5092
  ]
@@ -5401,7 +5538,13 @@
5401
5538
  "kind": "class",
5402
5539
  "name": "SchmancySwitch",
5403
5540
  "tagName": "schmancy-switch",
5404
- "description": "Binary on/off control. 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.",
5541
+ "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.",
5542
+ "summary": "Use when flipping the control takes effect right away (e.g. \"Dark mode\", \"Enable notifications\"). Prefer schmancy-checkbox for form submissions.",
5543
+ "platformPrimitive": {
5544
+ "tag": "switch",
5545
+ "mode": "change",
5546
+ "note": "Accessible native `<button role=\"switch\" aria-checked>` under the hood. No native HTML element exists; falls back to a styled checkbox if the tag never registers."
5547
+ },
5405
5548
  "attributes": [
5406
5549
  {
5407
5550
  "name": "checked",
@@ -5461,6 +5604,9 @@
5461
5604
  "name": "thumb",
5462
5605
  "description": "The moving thumb."
5463
5606
  }
5607
+ ],
5608
+ "examples": [
5609
+ "<schmancy-switch ?checked=${this.darkMode} @change=${(e) => this.darkMode = e.detail.value}>\n Dark mode\n</schmancy-switch>"
5464
5610
  ]
5465
5611
  }
5466
5612
  ]
@@ -5653,7 +5799,13 @@
5653
5799
  "kind": "class",
5654
5800
  "name": "SchmancyTextarea",
5655
5801
  "tagName": "schmancy-textarea",
5656
- "description": "Textarea component with auto-resize and form integration.",
5802
+ "description": "Multi-line text input with auto-resize and form integration. Form-associated.",
5803
+ "summary": "Textarea for freeform text — notes, descriptions, messages. Auto-grows with content up to a maxlength.",
5804
+ "platformPrimitive": {
5805
+ "tag": "textarea",
5806
+ "mode": "change",
5807
+ "note": "Schmancy-skinned native `<textarea>`. Degrades to styled native `<textarea>` if the tag never registers."
5808
+ },
5657
5809
  "attributes": [
5658
5810
  {
5659
5811
  "name": "label",
@@ -5832,6 +5984,19 @@
5832
5984
  },
5833
5985
  "default": "false"
5834
5986
  }
5987
+ ],
5988
+ "events": [
5989
+ {
5990
+ "name": "input",
5991
+ "description": "On every keystroke."
5992
+ },
5993
+ {
5994
+ "name": "change",
5995
+ "description": "On blur."
5996
+ }
5997
+ ],
5998
+ "examples": [
5999
+ "<schmancy-textarea name=\"description\" label=\"Description\" rows=\"4\" maxlength=\"500\"></schmancy-textarea>"
5835
6000
  ]
5836
6001
  }
5837
6002
  ]
@@ -6393,6 +6558,13 @@
6393
6558
  "kind": "class",
6394
6559
  "name": "SchmancyCountriesSelect",
6395
6560
  "tagName": "schmancy-select-countries",
6561
+ "description": "Country picker — type-ahead autocomplete over the ISO 3166-1 country list. Form-associated.",
6562
+ "summary": "Drop-in replacement for schmancy-autocomplete when the options are specifically \"every country\". Pre-seeds the list from countries.data.",
6563
+ "platformPrimitive": {
6564
+ "tag": "combobox",
6565
+ "mode": "change",
6566
+ "note": "Composes schmancy-autocomplete with a static options list. Value is the 2-letter ISO code."
6567
+ },
6396
6568
  "attributes": [
6397
6569
  {
6398
6570
  "name": "value",
@@ -6435,6 +6607,15 @@
6435
6607
  },
6436
6608
  "default": "''"
6437
6609
  }
6610
+ ],
6611
+ "events": [
6612
+ {
6613
+ "name": "change",
6614
+ "description": "`SchmancyAutocompleteChangeEvent` with `{ value: string }` (the ISO code)."
6615
+ }
6616
+ ],
6617
+ "examples": [
6618
+ "<schmancy-select-countries name=\"country\" label=\"Shipping country\" required></schmancy-select-countries>"
6438
6619
  ]
6439
6620
  }
6440
6621
  ]
@@ -6447,7 +6628,13 @@
6447
6628
  "kind": "class",
6448
6629
  "name": "SchmancyTimezonesSelect",
6449
6630
  "tagName": "schmancy-select-timezones",
6450
- "description": "Timezone selector component with autocomplete filtering.",
6631
+ "description": "Timezone picker type-ahead autocomplete over the IANA tz database. Form-associated.",
6632
+ "summary": "Drop-in replacement for schmancy-autocomplete when the options are IANA timezone names. Value is the IANA identifier (\"America/Los_Angeles\").",
6633
+ "platformPrimitive": {
6634
+ "tag": "combobox",
6635
+ "mode": "change",
6636
+ "note": "Composes schmancy-autocomplete with a static IANA timezones list."
6637
+ },
6451
6638
  "attributes": [
6452
6639
  {
6453
6640
  "name": "value",
@@ -6490,6 +6677,15 @@
6490
6677
  },
6491
6678
  "default": "''"
6492
6679
  }
6680
+ ],
6681
+ "events": [
6682
+ {
6683
+ "name": "change",
6684
+ "description": "`SchmancyAutocompleteChangeEvent` with `{ value: string }` (the IANA tz name)."
6685
+ }
6686
+ ],
6687
+ "examples": [
6688
+ "<schmancy-select-timezones name=\"tz\" label=\"Timezone\" value=\"America/New_York\"></schmancy-select-timezones>"
6493
6689
  ]
6494
6690
  }
6495
6691
  ]