@nysds/components 1.16.0-alpha3 → 1.16.0-alpha5

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 (31) hide show
  1. package/custom-elements.json +721 -43
  2. package/dist/.vscode/vscode.html-custom-data.json +56 -0
  3. package/dist/custom-elements.json +721 -43
  4. package/dist/nysds.es.js +1805 -1582
  5. package/dist/nysds.es.js.map +1 -1
  6. package/dist/nysds.js +204 -132
  7. package/dist/nysds.js.map +1 -1
  8. package/dist/packages/mcp-server/src/lib/cem-parser.d.ts +6 -0
  9. package/dist/packages/mcp-server/src/lib/format.d.ts +21 -0
  10. package/dist/packages/mcp-server/src/tools/component-tools.d.ts +3 -5
  11. package/dist/packages/mcp-server/src/tools/guide-tools.d.ts +8 -0
  12. package/dist/packages/mcp-server/src/tools/token-tools.d.ts +2 -5
  13. package/dist/packages/mcp-server/src/tools/utility-tools.d.ts +7 -0
  14. package/dist/packages/mcp-server/src/tools/validation-tools.d.ts +1 -2
  15. package/dist/packages/nys-button/src/nys-button.d.ts +8 -5
  16. package/dist/packages/nys-checkbox/src/nys-checkboxgroup.d.ts +1 -0
  17. package/dist/packages/nys-radiobutton/src/nys-radiobutton.d.ts +1 -0
  18. package/dist/packages/nys-radiobutton/src/nys-radiogroup.d.ts +2 -0
  19. package/dist/packages/nys-stepper/src/nys-step.d.ts +35 -0
  20. package/dist/packages/nys-stepper/src/nys-stepper.d.ts +38 -0
  21. package/dist/packages/nys-video/src/index.d.ts +1 -0
  22. package/dist/packages/nys-video/src/nys-video.d.ts +71 -0
  23. package/dist/packages/nys-video/src/nys-video.figma.d.ts +1 -0
  24. package/dist/src/index.d.ts +1 -0
  25. package/package.json +7 -5
  26. package/packages/react/NysVideo.d.ts +77 -0
  27. package/packages/react/NysVideo.js +40 -0
  28. package/packages/react/index.d.ts +1 -0
  29. package/packages/react/index.js +1 -0
  30. package/dist/packages/react/nysds-jsx.d.ts +0 -1411
  31. package/packages/react/nysds-jsx.d.ts +0 -1428
@@ -155,7 +155,19 @@
155
155
  },
156
156
  "tagName": "nys-accordion",
157
157
  "customElement": true,
158
- "summary": "Container for accordion items with optional single-select and bordered styling."
158
+ "summary": "Container for accordion items with optional single-select and bordered styling.",
159
+ "examples": [
160
+ {
161
+ "title": "Basic accordion",
162
+ "code": "<nys-accordion>\n<nys-accordionitem heading=\"Section 1\">Content for section 1</nys-accordionitem>\n<nys-accordionitem heading=\"Section 2\">Content for section 2</nys-accordionitem>\n</nys-accordion>",
163
+ "lang": "html"
164
+ },
165
+ {
166
+ "title": "Single-select accordion",
167
+ "code": "<nys-accordion singleSelect bordered>\n<nys-accordionitem heading=\"FAQ 1\" expanded>Answer 1</nys-accordionitem>\n<nys-accordionitem heading=\"FAQ 2\">Answer 2</nys-accordionitem>\n</nys-accordion>",
168
+ "lang": "html"
169
+ }
170
+ ]
159
171
  }
160
172
  ],
161
173
  "exports": [
@@ -335,7 +347,14 @@
335
347
  },
336
348
  "tagName": "nys-accordionitem",
337
349
  "customElement": true,
338
- "summary": "Collapsible panel for use within nys-accordion with keyboard support."
350
+ "summary": "Collapsible panel for use within nys-accordion with keyboard support.",
351
+ "examples": [
352
+ {
353
+ "title": "Expanded item",
354
+ "code": "<nys-accordionitem heading=\"How do I apply?\" expanded>\n<p>Visit ny.gov and complete the online application.</p>\n</nys-accordionitem>",
355
+ "lang": "html"
356
+ }
357
+ ]
339
358
  }
340
359
  ],
341
360
  "exports": [
@@ -702,7 +721,19 @@
702
721
  },
703
722
  "tagName": "nys-alert",
704
723
  "customElement": true,
705
- "summary": "Alert for contextual feedback with semantic types and live region support."
724
+ "summary": "Alert for contextual feedback with semantic types and live region support.",
725
+ "examples": [
726
+ {
727
+ "title": "Info alert",
728
+ "code": "<nys-alert type=\"info\" heading=\"Update available\" text=\"A new version is ready to install.\"></nys-alert>",
729
+ "lang": "html"
730
+ },
731
+ {
732
+ "title": "Dismissible success alert",
733
+ "code": "<nys-alert type=\"success\" heading=\"Application submitted\" dismissible></nys-alert>",
734
+ "lang": "html"
735
+ }
736
+ ]
706
737
  }
707
738
  ],
708
739
  "exports": [
@@ -972,7 +1003,19 @@
972
1003
  },
973
1004
  "tagName": "nys-avatar",
974
1005
  "customElement": true,
975
- "summary": "User avatar with image, initials, or icon fallback and contrast-aware colors."
1006
+ "summary": "User avatar with image, initials, or icon fallback and contrast-aware colors.",
1007
+ "examples": [
1008
+ {
1009
+ "title": "Image avatar",
1010
+ "code": "<nys-avatar image=\"/path/to/photo.jpg\" ariaLabel=\"Jane Smith\"></nys-avatar>",
1011
+ "lang": "html"
1012
+ },
1013
+ {
1014
+ "title": "Initials avatar with custom color",
1015
+ "code": "<nys-avatar initials=\"JS\" color=\"var(--nys-color-theme)\" ariaLabel=\"Jane Smith\"></nys-avatar>",
1016
+ "lang": "html"
1017
+ }
1018
+ ]
976
1019
  }
977
1020
  ],
978
1021
  "exports": [
@@ -1110,7 +1153,19 @@
1110
1153
  },
1111
1154
  "tagName": "nys-backtotop",
1112
1155
  "customElement": true,
1113
- "summary": "Floating back-to-top button with auto-show behavior and smooth scroll."
1156
+ "summary": "Floating back-to-top button with auto-show behavior and smooth scroll.",
1157
+ "examples": [
1158
+ {
1159
+ "title": "Auto-appearing button",
1160
+ "code": "<nys-backtotop></nys-backtotop>",
1161
+ "lang": "html"
1162
+ },
1163
+ {
1164
+ "title": "Always visible, left position",
1165
+ "code": "<nys-backtotop visible position=\"left\"></nys-backtotop>",
1166
+ "lang": "html"
1167
+ }
1168
+ ]
1114
1169
  }
1115
1170
  ],
1116
1171
  "exports": [
@@ -1390,7 +1445,19 @@
1390
1445
  },
1391
1446
  "tagName": "nys-badge",
1392
1447
  "customElement": true,
1393
- "summary": "Compact label for status, counts, or categorization with semantic styling."
1448
+ "summary": "Compact label for status, counts, or categorization with semantic styling.",
1449
+ "examples": [
1450
+ {
1451
+ "title": "Status badge",
1452
+ "code": "<nys-badge intent=\"success\" label=\"Approved\" prefixIcon></nys-badge>",
1453
+ "lang": "html"
1454
+ },
1455
+ {
1456
+ "title": "Count badge",
1457
+ "code": "<nys-badge prefixLabel=\"Messages\" label=\"12\"></nys-badge>",
1458
+ "lang": "html"
1459
+ }
1460
+ ]
1394
1461
  }
1395
1462
  ],
1396
1463
  "exports": [
@@ -1717,16 +1784,6 @@
1717
1784
  "attribute": "target",
1718
1785
  "reflects": true
1719
1786
  },
1720
- {
1721
- "kind": "method",
1722
- "name": "getButtonElement",
1723
- "privacy": "public",
1724
- "return": {
1725
- "type": {
1726
- "text": "Promise<HTMLElement | null>"
1727
- }
1728
- }
1729
- },
1730
1787
  {
1731
1788
  "kind": "field",
1732
1789
  "name": "_internals",
@@ -1797,7 +1854,7 @@
1797
1854
  "kind": "method",
1798
1855
  "name": "_handleAnyAttributeFunction",
1799
1856
  "privacy": "private",
1800
- "description": "Vanilla JS & Native HTML keydown solution:\nThe <nys-button onClick=\"doFunction();\"></nys-button> onClick is an attribute here.\nThus, we call it here. Otherwise, at this point, this.onClick is null as it isn't props, but a string attribute\nIn vanilla HTML/JS, clicking with execute the attribute function, BUT now with keydown, hence this solution."
1857
+ "description": "A Solution to the Vanilla JS & Native HTML keydown:\n\nHandles inline onClick attributes set as strings in vanilla HTML\n(e.g. <nys-button onClick=\"doSomething()\">).\n\nWhen onClick is set this way, it is a DOM attribute (not a property)\nso this.onClick remains null. Native clicks execute the attribute\nautomatically, but keydown events do not, so we invoke it manually here."
1801
1858
  },
1802
1859
  {
1803
1860
  "kind": "method",
@@ -2045,7 +2102,39 @@
2045
2102
  },
2046
2103
  "tagName": "nys-button",
2047
2104
  "customElement": true,
2048
- "summary": "Button for actions and CTAs with variants, sizes, and icon support."
2105
+ "summary": "Button for actions and CTAs with variants, sizes, and icon support.",
2106
+ "examples": [
2107
+ {
2108
+ "title": "Basic filled button",
2109
+ "code": "<nys-button label=\"Submit\" variant=\"filled\"></nys-button>",
2110
+ "lang": "html"
2111
+ },
2112
+ {
2113
+ "title": "Secondary outline button",
2114
+ "code": "<nys-button label=\"Cancel\" variant=\"outline\"></nys-button>",
2115
+ "lang": "html"
2116
+ },
2117
+ {
2118
+ "title": "Button with icons",
2119
+ "code": "<nys-button label=\"Previous\" prefixIcon=\"chevron_left\"></nys-button>\n<nys-button label=\"Next\" suffixIcon=\"chevron_right\"></nys-button>",
2120
+ "lang": "html"
2121
+ },
2122
+ {
2123
+ "title": "Circle icon button",
2124
+ "code": "<nys-button circle icon=\"close\" label=\"Close dialog\"></nys-button>",
2125
+ "lang": "html"
2126
+ },
2127
+ {
2128
+ "title": "Link-style button for navigation",
2129
+ "code": "<nys-button label=\"Visit NY.gov\" href=\"https://www.ny.gov/\" target=\"_blank\" suffixIcon=\"open_in_new\"></nys-button>",
2130
+ "lang": "html"
2131
+ },
2132
+ {
2133
+ "title": "Form submit button",
2134
+ "code": "<nys-button type=\"submit\" label=\"Save Changes\" variant=\"filled\"></nys-button>",
2135
+ "lang": "html"
2136
+ }
2137
+ ]
2049
2138
  }
2050
2139
  ],
2051
2140
  "exports": [
@@ -2722,7 +2811,19 @@
2722
2811
  },
2723
2812
  "tagName": "nys-checkbox",
2724
2813
  "customElement": true,
2725
- "summary": "Checkbox for binary choices or multi-select options."
2814
+ "summary": "Checkbox for binary choices or multi-select options.",
2815
+ "examples": [
2816
+ {
2817
+ "title": "Single checkbox",
2818
+ "code": "<nys-checkbox label=\"I agree to the terms\" name=\"terms\" required></nys-checkbox>",
2819
+ "lang": "html"
2820
+ },
2821
+ {
2822
+ "title": "Checkbox group",
2823
+ "code": "<nys-checkboxgroup label=\"Select landmarks\">\n<nys-checkbox name=\"landmarks\" value=\"adirondacks\" label=\"Adirondacks\"></nys-checkbox>\n<nys-checkbox name=\"landmarks\" value=\"niagara\" label=\"Niagara Falls\"></nys-checkbox>\n</nys-checkboxgroup>",
2824
+ "lang": "html"
2825
+ }
2826
+ ]
2726
2827
  }
2727
2828
  ],
2728
2829
  "exports": [
@@ -3070,6 +3171,11 @@
3070
3171
  }
3071
3172
  ]
3072
3173
  },
3174
+ {
3175
+ "kind": "method",
3176
+ "name": "_handleOtherInput",
3177
+ "privacy": "private"
3178
+ },
3073
3179
  {
3074
3180
  "kind": "method",
3075
3181
  "name": "_checkOtherInputs",
@@ -3222,7 +3328,14 @@
3222
3328
  },
3223
3329
  "tagName": "nys-checkboxgroup",
3224
3330
  "customElement": true,
3225
- "summary": "Container for grouping checkboxes as a single form control."
3331
+ "summary": "Container for grouping checkboxes as a single form control.",
3332
+ "examples": [
3333
+ {
3334
+ "title": "Basic checkbox group",
3335
+ "code": "<nys-checkboxgroup label=\"Select landmarks\" required>\n<nys-checkbox name=\"landmarks\" value=\"adirondacks\" label=\"Adirondacks\"></nys-checkbox>\n<nys-checkbox name=\"landmarks\" value=\"niagara\" label=\"Niagara Falls\"></nys-checkbox>\n</nys-checkboxgroup>",
3336
+ "lang": "html"
3337
+ }
3338
+ ]
3226
3339
  }
3227
3340
  ],
3228
3341
  "exports": [
@@ -4678,7 +4791,29 @@
4678
4791
  },
4679
4792
  "tagName": "nys-datepicker",
4680
4793
  "customElement": true,
4681
- "summary": "Date picker with calendar popup and native fallback."
4794
+ "summary": "Date picker with calendar popup and native fallback.",
4795
+ "examples": [
4796
+ {
4797
+ "title": "Basic date picker",
4798
+ "code": "<nys-datepicker label=\"Birth Date\" required></nys-datepicker>",
4799
+ "lang": "html"
4800
+ },
4801
+ {
4802
+ "title": "With width and description",
4803
+ "code": "<nys-datepicker\nlabel=\"Event Date\"\ndescription=\"Select the date of your event\"\nwidth=\"lg\">\n</nys-datepicker>",
4804
+ "lang": "html"
4805
+ },
4806
+ {
4807
+ "title": "Hide buttons, set start date",
4808
+ "code": "<nys-datepicker\nlabel=\"Appointment\"\nhideTodayButton\nhideClearButton\nstartDate=\"2024-01-01\">\n</nys-datepicker>",
4809
+ "lang": "html"
4810
+ },
4811
+ {
4812
+ "title": "With validation error message",
4813
+ "code": "<nys-datepicker\nlabel=\"Start Date\"\nrequired\nerrorMessage=\"Please select a valid start date\">\n</nys-datepicker>",
4814
+ "lang": "html"
4815
+ }
4816
+ ]
4682
4817
  }
4683
4818
  ],
4684
4819
  "exports": [
@@ -4768,7 +4903,14 @@
4768
4903
  },
4769
4904
  "tagName": "nys-divider",
4770
4905
  "customElement": true,
4771
- "summary": "Horizontal divider for visual separation of content sections."
4906
+ "summary": "Horizontal divider for visual separation of content sections.",
4907
+ "examples": [
4908
+ {
4909
+ "title": "Basic divider",
4910
+ "code": "<p>Section one content</p>\n<nys-divider></nys-divider>\n<p>Section two content</p>",
4911
+ "lang": "html"
4912
+ }
4913
+ ]
4772
4914
  }
4773
4915
  ],
4774
4916
  "exports": [
@@ -5328,7 +5470,19 @@
5328
5470
  },
5329
5471
  "tagName": "nys-dropdownmenuitem",
5330
5472
  "customElement": true,
5331
- "summary": "Dropdown item to display label and provide href link."
5473
+ "summary": "Dropdown item to display label and provide href link.",
5474
+ "examples": [
5475
+ {
5476
+ "title": "Basic item",
5477
+ "code": "<nys-dropdownmenuitem label=\"Edit\" link=\"/edit\"></nys-dropdownmenuitem>",
5478
+ "lang": "html"
5479
+ },
5480
+ {
5481
+ "title": "Disabled item",
5482
+ "code": "<nys-dropdownmenuitem label=\"Delete\" link=\"/delete\" disabled></nys-dropdownmenuitem>",
5483
+ "lang": "html"
5484
+ }
5485
+ ]
5332
5486
  }
5333
5487
  ],
5334
5488
  "exports": [
@@ -6112,7 +6266,19 @@
6112
6266
  },
6113
6267
  "tagName": "nys-fileinput",
6114
6268
  "customElement": true,
6115
- "summary": "File input with drag-and-drop, validation, and progress tracking."
6269
+ "summary": "File input with drag-and-drop, validation, and progress tracking.",
6270
+ "examples": [
6271
+ {
6272
+ "title": "Single file upload",
6273
+ "code": "<nys-fileinput label=\"Upload document\" accept=\".pdf,.doc\" required></nys-fileinput>",
6274
+ "lang": "html"
6275
+ },
6276
+ {
6277
+ "title": "Multiple files with dropzone",
6278
+ "code": "<nys-fileinput label=\"Upload images\" accept=\"image/*\" multiple dropzone></nys-fileinput>",
6279
+ "lang": "html"
6280
+ }
6281
+ ]
6116
6282
  }
6117
6283
  ],
6118
6284
  "exports": [
@@ -6423,7 +6589,14 @@
6423
6589
  },
6424
6590
  "tagName": "nys-globalfooter",
6425
6591
  "customElement": true,
6426
- "summary": "Agency footer with auto-layout for contact info and link sections."
6592
+ "summary": "Agency footer with auto-layout for contact info and link sections.",
6593
+ "examples": [
6594
+ {
6595
+ "title": "Simple footer",
6596
+ "code": "<nys-globalfooter agencyName=\"Department of Health\" homepageLink=\"/\">\n<span>123 Main St, Albany NY</span>\n<span>info@health.ny.gov</span>\n</nys-globalfooter>",
6597
+ "lang": "html"
6598
+ }
6599
+ ]
6427
6600
  }
6428
6601
  ],
6429
6602
  "exports": [
@@ -6611,7 +6784,14 @@
6611
6784
  },
6612
6785
  "tagName": "nys-globalheader",
6613
6786
  "customElement": true,
6614
- "summary": "Agency header with navigation, mobile menu, and active link highlighting."
6787
+ "summary": "Agency header with navigation, mobile menu, and active link highlighting.",
6788
+ "examples": [
6789
+ {
6790
+ "title": "Basic header",
6791
+ "code": "<nys-globalheader appName=\"My App\" agencyName=\"Department of Health\" homepageLink=\"/\">\n<ul><li><a href=\"/about\">About</a></li><li><a href=\"/contact\">Contact</a></li></ul>\n</nys-globalheader>",
6792
+ "lang": "html"
6793
+ }
6794
+ ]
6615
6795
  }
6616
6796
  ],
6617
6797
  "exports": [
@@ -6798,7 +6978,19 @@
6798
6978
  },
6799
6979
  "tagName": "nys-icon",
6800
6980
  "customElement": true,
6801
- "summary": "SVG icon from Material Symbols library with size, rotation, and color options."
6981
+ "summary": "SVG icon from Material Symbols library with size, rotation, and color options.",
6982
+ "examples": [
6983
+ {
6984
+ "title": "Basic icon",
6985
+ "code": "<nys-icon name=\"check_circle\" size=\"lg\"></nys-icon>",
6986
+ "lang": "html"
6987
+ },
6988
+ {
6989
+ "title": "Accessible icon with label",
6990
+ "code": "<nys-icon name=\"warning\" ariaLabel=\"Warning\" color=\"var(--nys-color-warning)\"></nys-icon>",
6991
+ "lang": "html"
6992
+ }
6993
+ ]
6802
6994
  }
6803
6995
  ],
6804
6996
  "exports": [
@@ -7326,7 +7518,14 @@
7326
7518
  },
7327
7519
  "tagName": "nys-modal",
7328
7520
  "customElement": true,
7329
- "summary": "Accessible modal dialog with focus trap, keyboard support, and action slots."
7521
+ "summary": "Accessible modal dialog with focus trap, keyboard support, and action slots.",
7522
+ "examples": [
7523
+ {
7524
+ "title": "Basic modal",
7525
+ "code": "<nys-modal id=\"confirm-modal\" heading=\"Confirm action\" open>\n<p>Are you sure you want to proceed?</p>\n<div slot=\"actions\">\n<nys-button label=\"Cancel\" variant=\"outline\"></nys-button>\n<nys-button label=\"Confirm\" variant=\"filled\"></nys-button>\n</div>\n</nys-modal>",
7526
+ "lang": "html"
7527
+ }
7528
+ ]
7330
7529
  }
7331
7530
  ],
7332
7531
  "exports": [
@@ -7533,7 +7732,14 @@
7533
7732
  },
7534
7733
  "tagName": "nys-pagination",
7535
7734
  "customElement": true,
7536
- "summary": "Page navigation with numbered links, prev/next buttons, and responsive layout."
7735
+ "summary": "Page navigation with numbered links, prev/next buttons, and responsive layout.",
7736
+ "examples": [
7737
+ {
7738
+ "title": "Basic pagination",
7739
+ "code": "<nys-pagination currentPage=\"1\" totalPages=\"10\"></nys-pagination>",
7740
+ "lang": "html"
7741
+ }
7742
+ ]
7537
7743
  }
7538
7744
  ],
7539
7745
  "exports": [
@@ -7799,6 +8005,11 @@
7799
8005
  "name": "_clearOtherState",
7800
8006
  "privacy": "private"
7801
8007
  },
8008
+ {
8009
+ "kind": "method",
8010
+ "name": "_dispatchClearErrorEvent",
8011
+ "privacy": "private"
8012
+ },
7802
8013
  {
7803
8014
  "kind": "method",
7804
8015
  "name": "_emitChangeEvent",
@@ -8055,7 +8266,14 @@
8055
8266
  },
8056
8267
  "tagName": "nys-radiobutton",
8057
8268
  "customElement": true,
8058
- "summary": "Radio button for single selection from mutually exclusive options."
8269
+ "summary": "Radio button for single selection from mutually exclusive options.",
8270
+ "examples": [
8271
+ {
8272
+ "title": "Radio group",
8273
+ "code": "<nys-radiogroup label=\"Select borough\" required>\n<nys-radiobutton name=\"borough\" value=\"bronx\" label=\"The Bronx\"></nys-radiobutton>\n<nys-radiobutton name=\"borough\" value=\"brooklyn\" label=\"Brooklyn\"></nys-radiobutton>\n</nys-radiogroup>",
8274
+ "lang": "html"
8275
+ }
8276
+ ]
8059
8277
  }
8060
8278
  ],
8061
8279
  "exports": [
@@ -8408,6 +8626,24 @@
8408
8626
  }
8409
8627
  }
8410
8628
  ]
8629
+ },
8630
+ {
8631
+ "kind": "method",
8632
+ "name": "_handleChildErrorClear",
8633
+ "privacy": "private"
8634
+ },
8635
+ {
8636
+ "kind": "method",
8637
+ "name": "_handleOtherInput",
8638
+ "privacy": "private",
8639
+ "parameters": [
8640
+ {
8641
+ "name": "event",
8642
+ "type": {
8643
+ "text": "Event"
8644
+ }
8645
+ }
8646
+ ]
8411
8647
  }
8412
8648
  ],
8413
8649
  "attributes": [
@@ -8548,7 +8784,14 @@
8548
8784
  },
8549
8785
  "tagName": "nys-radiogroup",
8550
8786
  "customElement": true,
8551
- "summary": "Container for grouping radio buttons as a single form control."
8787
+ "summary": "Container for grouping radio buttons as a single form control.",
8788
+ "examples": [
8789
+ {
8790
+ "title": "Basic radio group",
8791
+ "code": "<nys-radiogroup label=\"Select borough\" required>\n<nys-radiobutton name=\"borough\" value=\"bronx\" label=\"The Bronx\"></nys-radiobutton>\n<nys-radiobutton name=\"borough\" value=\"brooklyn\" label=\"Brooklyn\"></nys-radiobutton>\n<nys-radiobutton name=\"borough\" value=\"manhattan\" label=\"Manhattan\"></nys-radiobutton>\n</nys-radiogroup>",
8792
+ "lang": "html"
8793
+ }
8794
+ ]
8552
8795
  }
8553
8796
  ],
8554
8797
  "exports": [
@@ -8720,7 +8963,14 @@
8720
8963
  },
8721
8964
  "tagName": "nys-option",
8722
8965
  "customElement": true,
8723
- "summary": "Option item for nys-select dropdown."
8966
+ "summary": "Option item for nys-select dropdown.",
8967
+ "examples": [
8968
+ {
8969
+ "title": "Basic options",
8970
+ "code": "<nys-select>\n<nys-option value=\"ny\">New York</nys-option>\n<nys-option value=\"ca\" disabled>California</nys-option>\n</nys-select>",
8971
+ "lang": "html"
8972
+ }
8973
+ ]
8724
8974
  }
8725
8975
  ],
8726
8976
  "exports": [
@@ -9214,7 +9464,19 @@
9214
9464
  },
9215
9465
  "tagName": "nys-select",
9216
9466
  "customElement": true,
9217
- "summary": "Dropdown select for choosing one option from a list."
9467
+ "summary": "Dropdown select for choosing one option from a list.",
9468
+ "examples": [
9469
+ {
9470
+ "title": "Basic select",
9471
+ "code": "<nys-select label=\"Select borough\">\n<option value=\"bronx\">The Bronx</option>\n<option value=\"brooklyn\">Brooklyn</option>\n<option value=\"manhattan\">Manhattan</option>\n</nys-select>",
9472
+ "lang": "html"
9473
+ },
9474
+ {
9475
+ "title": "With option groups",
9476
+ "code": "<nys-select label=\"Select service\">\n<optgroup label=\"Transportation\">\n<option value=\"mta\">MTA</option>\n<option value=\"dmv\">DMV</option>\n</optgroup>\n</nys-select>",
9477
+ "lang": "html"
9478
+ }
9479
+ ]
9218
9480
  }
9219
9481
  ],
9220
9482
  "exports": [
@@ -9326,7 +9588,19 @@
9326
9588
  },
9327
9589
  "tagName": "nys-skipnav",
9328
9590
  "customElement": true,
9329
- "summary": "Skip navigation link for keyboard accessibility. Hidden until focused."
9591
+ "summary": "Skip navigation link for keyboard accessibility. Hidden until focused.",
9592
+ "examples": [
9593
+ {
9594
+ "title": "Default skip link",
9595
+ "code": "<nys-skipnav></nys-skipnav>\n<main id=\"main-content\">...</main>",
9596
+ "lang": "html"
9597
+ },
9598
+ {
9599
+ "title": "Custom target",
9600
+ "code": "<nys-skipnav href=\"#content-area\"></nys-skipnav>",
9601
+ "lang": "html"
9602
+ }
9603
+ ]
9330
9604
  }
9331
9605
  ],
9332
9606
  "exports": [
@@ -9377,7 +9651,7 @@
9377
9651
  "declarations": [
9378
9652
  {
9379
9653
  "kind": "class",
9380
- "description": "A single step within `nys-stepper`. Represents one stage in a multi-step process.\n\nMark as `current` to indicate active progress point. Previous steps become clickable for navigation.\nSet `href` for page-based navigation or listen to `nys-step-click` for SPA routing.",
9654
+ "description": "A single step within `nys-stepper`. Represents one stage in a multi-step process.\n\nMark as `current` to indicate active progress point. Previous steps become clickable for navigation.\nSet `href` for page-based navigation or listen to `nys-step-click` for SPA routing.\n\n## Step States\n\nUnderstanding the three step states is critical for proper stepper usage:\n\n- **`selected`** - Which step is currently being displayed/viewed. This controls which step's\n content is shown. Defaults to `current` if not set. Cannot be set on a step after `current`.\n Users can click previous steps to change `selected` without changing `current`.\n\n- **`current`** - The furthest step the user has reached. This is the progress boundary.\n Update this as the user completes steps and advances. Steps after `current` are not navigable.\n Only one step should have `current` at a time.\n\n- **`previous`** - Auto-applied by the stepper to all steps before `current`. Do not set manually.\n Steps with `previous` are clickable and allow the user to navigate back.\n\n## Common Patterns\n\n**Initial state:** Set `current` on the first step. `selected` will default to it.\n```html\n<nys-step label=\"Step 1\" current></nys-step>\n<nys-step label=\"Step 2\"></nys-step>\n```\n\n**User completed step 1, now on step 2:**\n```html\n<nys-step label=\"Step 1\"></nys-step>\n<nys-step label=\"Step 2\" current></nys-step>\n```\n\n**User went back to review step 1 (but progress is still at step 2):**\n```html\n<nys-step label=\"Step 1\" selected></nys-step>\n<nys-step label=\"Step 2\" current></nys-step>\n```",
9381
9655
  "name": "NysStep",
9382
9656
  "members": [
9383
9657
  {
@@ -9551,7 +9825,14 @@
9551
9825
  },
9552
9826
  "tagName": "nys-step",
9553
9827
  "customElement": true,
9554
- "summary": "Individual step for use within nys-stepper with navigation support."
9828
+ "summary": "Individual step for use within nys-stepper with navigation support.",
9829
+ "examples": [
9830
+ {
9831
+ "title": "Step with navigation",
9832
+ "code": "<nys-step label=\"Personal Info\" href=\"/step-1\"></nys-step>",
9833
+ "lang": "html"
9834
+ }
9835
+ ]
9555
9836
  }
9556
9837
  ],
9557
9838
  "exports": [
@@ -9579,7 +9860,7 @@
9579
9860
  "declarations": [
9580
9861
  {
9581
9862
  "kind": "class",
9582
- "description": "A multi-step progress indicator for forms or wizards. Manages `nys-step` children with selection and navigation.\n\nAdd `nys-step` elements as children. Mark one step as `current` to indicate progress; previous steps become\nnavigable. Compact view on mobile expands to show all steps. Use `actions` slot for navigation buttons.",
9863
+ "description": "A multi-step progress indicator for forms or wizards. Manages `nys-step` children with selection and navigation.\n\nAdd `nys-step` elements as children. Mark one step as `current` to indicate progress; previous steps become\nnavigable. Compact view on mobile expands to show all steps. Use `actions` slot for navigation buttons.\nDo not place the stepper inside a form element.",
9583
9864
  "name": "NysStepper",
9584
9865
  "slots": [
9585
9866
  {
@@ -9759,7 +10040,24 @@
9759
10040
  },
9760
10041
  "tagName": "nys-stepper",
9761
10042
  "customElement": true,
9762
- "summary": "Multi-step progress indicator with navigation and mobile-friendly compact view."
10043
+ "summary": "Multi-step progress indicator with navigation and mobile-friendly compact view.",
10044
+ "examples": [
10045
+ {
10046
+ "title": "Basic stepper",
10047
+ "code": "<nys-stepper label=\"Application Progress\">\n<nys-step label=\"Personal Info\" current></nys-step>\n<nys-step label=\"Contact Details\"></nys-step>\n<nys-step label=\"Review\"></nys-step>\n</nys-stepper>",
10048
+ "lang": "html"
10049
+ },
10050
+ {
10051
+ "title": "Grid layout with sidebar placement",
10052
+ "code": "<div class=\"nys-grid-container\">\n<div class=\"nys-grid-row\">\n<nys-stepper label=\"Application\" class=\"nys-grid-col-12 nys-desktop:nys-grid-col-3\">\n<nys-step label=\"Personal Info\"></nys-step>\n<nys-step label=\"Contact\" current></nys-step>\n<nys-step label=\"Review\"></nys-step>\n</nys-stepper>\n<main class=\"nys-grid-col-12 nys-desktop:nys-grid-col-9\" id=\"main-content\">\n<!-- Form content for current step -->\n<nys-textinput label=\"Email\" required></nys-textinput>\n<nys-textinput label=\"Phone\"></nys-textinput>\n</main>\n</div>\n</div>",
10053
+ "lang": "html"
10054
+ },
10055
+ {
10056
+ "title": "Navigation buttons in actions slot",
10057
+ "code": "<nys-stepper label=\"Application\">\n<nys-step label=\"Step 1\"></nys-step>\n<nys-step label=\"Step 2\" current></nys-step>\n<nys-step label=\"Step 3\"></nys-step>\n<div slot=\"actions\">\n<nys-button label=\"Save and Exit\" variant=\"outline\" size=\"sm\" fullWidth></nys-button>\n</div>\n</nys-stepper>",
10058
+ "lang": "html"
10059
+ }
10060
+ ]
9763
10061
  }
9764
10062
  ],
9765
10063
  "exports": [
@@ -10735,7 +11033,19 @@
10735
11033
  },
10736
11034
  "tagName": "nys-textarea",
10737
11035
  "customElement": true,
10738
- "summary": "Multi-line text input for comments, descriptions, and feedback."
11036
+ "summary": "Multi-line text input for comments, descriptions, and feedback.",
11037
+ "examples": [
11038
+ {
11039
+ "title": "Basic textarea",
11040
+ "code": "<nys-textarea label=\"Comments\" rows=\"4\"></nys-textarea>",
11041
+ "lang": "html"
11042
+ },
11043
+ {
11044
+ "title": "Required with description",
11045
+ "code": "<nys-textarea label=\"Describe the incident\" description=\"Please provide details\" required></nys-textarea>",
11046
+ "lang": "html"
11047
+ }
11048
+ ]
10739
11049
  }
10740
11050
  ],
10741
11051
  "exports": [
@@ -11504,7 +11814,29 @@
11504
11814
  },
11505
11815
  "tagName": "nys-textinput",
11506
11816
  "customElement": true,
11507
- "summary": "Text input for short single-line data with validation and masking support."
11817
+ "summary": "Text input for short single-line data with validation and masking support.",
11818
+ "examples": [
11819
+ {
11820
+ "title": "Basic text input",
11821
+ "code": "<nys-textinput label=\"Full Name\" required></nys-textinput>",
11822
+ "lang": "html"
11823
+ },
11824
+ {
11825
+ "title": "Required Email",
11826
+ "code": "<nys-textinput type=\"email\" label=\"Email Address\" required></nys-textinput>",
11827
+ "lang": "html"
11828
+ },
11829
+ {
11830
+ "title": "Phone with masking",
11831
+ "code": "<nys-textinput type=\"tel\" label=\"Phone Number\"></nys-textinput>",
11832
+ "lang": "html"
11833
+ },
11834
+ {
11835
+ "title": "Search with button",
11836
+ "code": "<nys-textinput type=\"search\" placeholder=\"Search\">\n<nys-button slot=\"endButton\" label=\"Search\" prefixIcon=\"search\"></nys-button>\n</nys-textinput>",
11837
+ "lang": "html"
11838
+ }
11839
+ ]
11508
11840
  }
11509
11841
  ],
11510
11842
  "exports": [
@@ -11894,7 +12226,19 @@
11894
12226
  },
11895
12227
  "tagName": "nys-toggle",
11896
12228
  "customElement": true,
11897
- "summary": "Toggle switch for binary settings with immediate effect."
12229
+ "summary": "Toggle switch for binary settings with immediate effect.",
12230
+ "examples": [
12231
+ {
12232
+ "title": "Basic toggle",
12233
+ "code": "<nys-toggle label=\"Enable notifications\" name=\"notifications\"></nys-toggle>",
12234
+ "lang": "html"
12235
+ },
12236
+ {
12237
+ "title": "Dark mode toggle",
12238
+ "code": "<nys-toggle label=\"Dark mode\" description=\"Adjust display for low light\" checked></nys-toggle>",
12239
+ "lang": "html"
12240
+ }
12241
+ ]
11898
12242
  }
11899
12243
  ],
11900
12244
  "exports": [
@@ -12293,7 +12637,19 @@
12293
12637
  },
12294
12638
  "tagName": "nys-tooltip",
12295
12639
  "customElement": true,
12296
- "summary": "Contextual tooltip with auto-positioning, keyboard support, and screen reader integration."
12640
+ "summary": "Contextual tooltip with auto-positioning, keyboard support, and screen reader integration.",
12641
+ "examples": [
12642
+ {
12643
+ "title": "Tooltip for button",
12644
+ "code": "<nys-button id=\"help-btn\" label=\"Help\" circle icon=\"help\"></nys-button>\n<nys-tooltip for=\"help-btn\" text=\"Click for assistance\"></nys-tooltip>",
12645
+ "lang": "html"
12646
+ },
12647
+ {
12648
+ "title": "Positioned tooltip",
12649
+ "code": "<nys-icon id=\"info-icon\" name=\"info\"></nys-icon>\n<nys-tooltip for=\"info-icon\" text=\"Additional details\" position=\"right\"></nys-tooltip>",
12650
+ "lang": "html"
12651
+ }
12652
+ ]
12297
12653
  }
12298
12654
  ],
12299
12655
  "exports": [
@@ -12352,7 +12708,14 @@
12352
12708
  },
12353
12709
  "tagName": "nys-unavfooter",
12354
12710
  "customElement": true,
12355
- "summary": "Universal NYS footer with logo and statewide links. Required site-wide."
12711
+ "summary": "Universal NYS footer with logo and statewide links. Required site-wide.",
12712
+ "examples": [
12713
+ {
12714
+ "title": "Standard usage",
12715
+ "code": "<nys-globalfooter>...</nys-globalfooter>\n<nys-unavfooter></nys-unavfooter>",
12716
+ "lang": "html"
12717
+ }
12718
+ ]
12356
12719
  }
12357
12720
  ],
12358
12721
  "exports": [
@@ -12679,6 +13042,321 @@
12679
13042
  }
12680
13043
  }
12681
13044
  ]
13045
+ },
13046
+ {
13047
+ "kind": "javascript-module",
13048
+ "path": "packages/nys-video/src/index.ts",
13049
+ "declarations": [],
13050
+ "exports": [
13051
+ {
13052
+ "kind": "js",
13053
+ "name": "*",
13054
+ "declaration": {
13055
+ "name": "*",
13056
+ "module": "packages/nys-video/src/nys-video"
13057
+ }
13058
+ }
13059
+ ]
13060
+ },
13061
+ {
13062
+ "kind": "javascript-module",
13063
+ "path": "packages/nys-video/src/nys-video.ts",
13064
+ "declarations": [
13065
+ {
13066
+ "kind": "class",
13067
+ "description": "",
13068
+ "name": "NysVideo",
13069
+ "members": [
13070
+ {
13071
+ "kind": "field",
13072
+ "name": "id",
13073
+ "type": {
13074
+ "text": "string"
13075
+ },
13076
+ "default": "\"\"",
13077
+ "description": "Full YouTube URL — required. Component will not render if invalid.",
13078
+ "attribute": "id",
13079
+ "reflects": true
13080
+ },
13081
+ {
13082
+ "kind": "field",
13083
+ "name": "titleText",
13084
+ "type": {
13085
+ "text": "string"
13086
+ },
13087
+ "default": "\"\"",
13088
+ "description": "Title text for the thumbnail of the video",
13089
+ "attribute": "titleText",
13090
+ "reflects": true
13091
+ },
13092
+ {
13093
+ "kind": "field",
13094
+ "name": "videourl",
13095
+ "type": {
13096
+ "text": "string"
13097
+ },
13098
+ "default": "\"\"",
13099
+ "description": "Full YouTube URL — required. Component will not render if invalid.",
13100
+ "attribute": "videourl"
13101
+ },
13102
+ {
13103
+ "kind": "field",
13104
+ "name": "size",
13105
+ "type": {
13106
+ "text": "\"full\" | \"md\" | \"sm\" | \"\""
13107
+ },
13108
+ "default": "\"\"",
13109
+ "description": "Largest size for the video player.\nIf not set, size is determined automatically by viewport width.",
13110
+ "attribute": "size",
13111
+ "reflects": true
13112
+ },
13113
+ {
13114
+ "kind": "field",
13115
+ "name": "loading",
13116
+ "type": {
13117
+ "text": "\"lazy\" | \"eager\""
13118
+ },
13119
+ "default": "\"lazy\"",
13120
+ "attribute": "loading"
13121
+ },
13122
+ {
13123
+ "kind": "field",
13124
+ "name": "starttime",
13125
+ "type": {
13126
+ "text": "number"
13127
+ },
13128
+ "default": "0",
13129
+ "description": "Time in seconds where playback begins. *",
13130
+ "attribute": "starttime"
13131
+ },
13132
+ {
13133
+ "kind": "field",
13134
+ "name": "thumbnail",
13135
+ "type": {
13136
+ "text": "string | null"
13137
+ },
13138
+ "default": "null",
13139
+ "description": "Custom thumbnail image path.\nFalls back to YouTube's auto-generated thumbnail if not provided.",
13140
+ "attribute": "thumbnail"
13141
+ },
13142
+ {
13143
+ "kind": "field",
13144
+ "name": "autoplay",
13145
+ "type": {
13146
+ "text": "boolean"
13147
+ },
13148
+ "default": "false",
13149
+ "description": "Triggers autoplay when the iframe loads",
13150
+ "attribute": "autoplay"
13151
+ },
13152
+ {
13153
+ "kind": "field",
13154
+ "name": "disabled",
13155
+ "type": {
13156
+ "text": "boolean"
13157
+ },
13158
+ "default": "false",
13159
+ "description": "Prevents the video from being played",
13160
+ "attribute": "disabled",
13161
+ "reflects": true
13162
+ },
13163
+ {
13164
+ "kind": "field",
13165
+ "name": "_playerActive",
13166
+ "type": {
13167
+ "text": "boolean"
13168
+ },
13169
+ "privacy": "private",
13170
+ "default": "false",
13171
+ "description": "Tracks whether the user has clicked to load the player"
13172
+ },
13173
+ {
13174
+ "kind": "field",
13175
+ "name": "_announcement",
13176
+ "type": {
13177
+ "text": "string"
13178
+ },
13179
+ "privacy": "private",
13180
+ "default": "\"\"",
13181
+ "description": "Screen reader announcement text"
13182
+ },
13183
+ {
13184
+ "kind": "field",
13185
+ "name": "_adPlaying",
13186
+ "type": {
13187
+ "text": "boolean"
13188
+ },
13189
+ "privacy": "private",
13190
+ "default": "false",
13191
+ "description": "Tracks whether an ad is currently playing to suppress false \"Video is playing\" announcements"
13192
+ },
13193
+ {
13194
+ "kind": "method",
13195
+ "name": "_isValidYouTubeUrl",
13196
+ "privacy": "private",
13197
+ "return": {
13198
+ "type": {
13199
+ "text": "boolean"
13200
+ }
13201
+ },
13202
+ "description": "Functions\n--------------------------------------------------------------------------"
13203
+ },
13204
+ {
13205
+ "kind": "method",
13206
+ "name": "_getVideoId",
13207
+ "privacy": "private"
13208
+ },
13209
+ {
13210
+ "kind": "method",
13211
+ "name": "_getThumbnailUrl",
13212
+ "privacy": "private"
13213
+ },
13214
+ {
13215
+ "kind": "method",
13216
+ "name": "_getEmbedUrl",
13217
+ "privacy": "private"
13218
+ },
13219
+ {
13220
+ "kind": "method",
13221
+ "name": "_announceVideoVO",
13222
+ "privacy": "private",
13223
+ "description": "Because I need to know if Youtube ADs are playing, I need to call YT's API.\nHence, the YT API setup below. The VO has 2 types of announcements:\n- \"Advertisement is playing\"\n- \"Video is playing\"\n\nYT IFrame Player API: https://developers.google.com/youtube/iframe_api_reference"
13224
+ },
13225
+ {
13226
+ "kind": "method",
13227
+ "name": "_handleThumbnailClick",
13228
+ "privacy": "private",
13229
+ "description": "Event Handlers\n--------------------------------------------------------------------------"
13230
+ },
13231
+ {
13232
+ "kind": "method",
13233
+ "name": "_renderAnnouncer",
13234
+ "privacy": "private",
13235
+ "description": "Render Helpers\n--------------------------------------------------------------------------"
13236
+ },
13237
+ {
13238
+ "kind": "method",
13239
+ "name": "_renderPlayIcon",
13240
+ "privacy": "private"
13241
+ }
13242
+ ],
13243
+ "attributes": [
13244
+ {
13245
+ "name": "id",
13246
+ "type": {
13247
+ "text": "string"
13248
+ },
13249
+ "default": "\"\"",
13250
+ "description": "Full YouTube URL — required. Component will not render if invalid.",
13251
+ "fieldName": "id",
13252
+ "propName": "id"
13253
+ },
13254
+ {
13255
+ "name": "titleText",
13256
+ "type": {
13257
+ "text": "string"
13258
+ },
13259
+ "default": "\"\"",
13260
+ "description": "Title text for the thumbnail of the video",
13261
+ "fieldName": "titleText",
13262
+ "propName": "titletext"
13263
+ },
13264
+ {
13265
+ "name": "videourl",
13266
+ "type": {
13267
+ "text": "string"
13268
+ },
13269
+ "default": "\"\"",
13270
+ "description": "Full YouTube URL — required. Component will not render if invalid.",
13271
+ "fieldName": "videourl",
13272
+ "propName": "videourl"
13273
+ },
13274
+ {
13275
+ "name": "size",
13276
+ "type": {
13277
+ "text": "\"full\" | \"md\" | \"sm\" | \"\""
13278
+ },
13279
+ "default": "\"\"",
13280
+ "description": "Largest size for the video player.\nIf not set, size is determined automatically by viewport width.",
13281
+ "fieldName": "size",
13282
+ "propName": "size"
13283
+ },
13284
+ {
13285
+ "name": "loading",
13286
+ "type": {
13287
+ "text": "\"lazy\" | \"eager\""
13288
+ },
13289
+ "default": "\"lazy\"",
13290
+ "fieldName": "loading",
13291
+ "propName": "loading"
13292
+ },
13293
+ {
13294
+ "name": "starttime",
13295
+ "type": {
13296
+ "text": "number"
13297
+ },
13298
+ "default": "0",
13299
+ "description": "Time in seconds where playback begins. *",
13300
+ "fieldName": "starttime",
13301
+ "propName": "starttime"
13302
+ },
13303
+ {
13304
+ "name": "thumbnail",
13305
+ "type": {
13306
+ "text": "string | null"
13307
+ },
13308
+ "default": "null",
13309
+ "description": "Custom thumbnail image path.\nFalls back to YouTube's auto-generated thumbnail if not provided.",
13310
+ "fieldName": "thumbnail",
13311
+ "propName": "thumbnail"
13312
+ },
13313
+ {
13314
+ "name": "autoplay",
13315
+ "type": {
13316
+ "text": "boolean"
13317
+ },
13318
+ "default": "false",
13319
+ "description": "Triggers autoplay when the iframe loads",
13320
+ "fieldName": "autoplay",
13321
+ "propName": "autoplay"
13322
+ },
13323
+ {
13324
+ "name": "disabled",
13325
+ "type": {
13326
+ "text": "boolean"
13327
+ },
13328
+ "default": "false",
13329
+ "description": "Prevents the video from being played",
13330
+ "fieldName": "disabled",
13331
+ "propName": "disabled"
13332
+ }
13333
+ ],
13334
+ "superclass": {
13335
+ "name": "LitElement",
13336
+ "package": "lit"
13337
+ },
13338
+ "tagName": "nys-video",
13339
+ "customElement": true
13340
+ }
13341
+ ],
13342
+ "exports": [
13343
+ {
13344
+ "kind": "custom-element-definition",
13345
+ "name": "nys-video",
13346
+ "declaration": {
13347
+ "name": "NysVideo",
13348
+ "module": "packages/nys-video/src/nys-video.ts"
13349
+ }
13350
+ },
13351
+ {
13352
+ "kind": "js",
13353
+ "name": "NysVideo",
13354
+ "declaration": {
13355
+ "name": "NysVideo",
13356
+ "module": "packages/nys-video/src/nys-video.ts"
13357
+ }
13358
+ }
13359
+ ]
12682
13360
  }
12683
13361
  ]
12684
13362
  }