@nysds/components 1.19.3 → 1.20.0-alpha-3

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 (62) hide show
  1. package/custom-elements.json +180 -1055
  2. package/dist/.vscode/vscode.html-custom-data.json +7 -7
  3. package/dist/custom-elements.json +180 -1055
  4. package/dist/nysds.es.js +724 -731
  5. package/dist/nysds.es.js.map +1 -1
  6. package/dist/nysds.js +136 -730
  7. package/dist/nysds.js.map +1 -1
  8. package/dist/packages/nys-accordion/src/nys-accordion.d.ts +6 -35
  9. package/dist/packages/nys-accordion/src/nys-accordionitem.d.ts +3 -8
  10. package/dist/packages/nys-alert/src/nys-alert.d.ts +4 -81
  11. package/dist/packages/nys-avatar/src/nys-avatar.d.ts +4 -44
  12. package/dist/packages/nys-backtotop/src/nys-backtotop.d.ts +3 -70
  13. package/dist/packages/nys-badge/src/nys-badge.d.ts +4 -54
  14. package/dist/packages/nys-breadcrumbs/src/nys-breadcrumbs.d.ts +7 -75
  15. package/dist/packages/nys-button/src/nys-button.d.ts +7 -60
  16. package/dist/packages/nys-checkbox/src/nys-checkbox.d.ts +7 -4
  17. package/dist/packages/nys-checkbox/src/nys-checkboxgroup.d.ts +1 -75
  18. package/dist/packages/nys-combobox/src/nys-combobox.d.ts +0 -164
  19. package/dist/packages/nys-datepicker/src/nys-datepicker.d.ts +8 -64
  20. package/dist/packages/nys-divider/src/nys-divider.d.ts +1 -24
  21. package/dist/packages/nys-dropdownmenu/src/nys-dropdownmenu.d.ts +12 -19
  22. package/dist/packages/nys-dropdownmenu/src/nys-dropdownmenuitem.d.ts +10 -0
  23. package/dist/packages/nys-errormessage/src/nys-errormessage.d.ts +0 -10
  24. package/dist/packages/nys-fileinput/src/nys-fileinput.d.ts +4 -66
  25. package/dist/packages/nys-globalfooter/src/nys-globalfooter.d.ts +7 -50
  26. package/dist/packages/nys-globalheader/src/nys-globalheader.d.ts +3 -57
  27. package/dist/packages/nys-icon/src/icon-cache.d.ts +4 -11
  28. package/dist/packages/nys-icon/src/icon-library-registry.d.ts +16 -33
  29. package/dist/packages/nys-icon/src/index.d.ts +2 -2
  30. package/dist/packages/nys-icon/src/nys-icon.d.ts +6 -83
  31. package/dist/packages/nys-label/src/nys-label.d.ts +2 -32
  32. package/dist/packages/nys-modal/src/nys-modal.d.ts +5 -130
  33. package/dist/packages/nys-pagination/src/nys-pagination.d.ts +1 -11
  34. package/dist/packages/nys-radiobutton/src/nys-radiobutton.d.ts +3 -4
  35. package/dist/packages/nys-radiobutton/src/nys-radiogroup.d.ts +1 -74
  36. package/dist/packages/nys-select/src/nys-option.d.ts +8 -0
  37. package/dist/packages/nys-select/src/nys-select.d.ts +10 -141
  38. package/dist/packages/nys-skipnav/src/nys-skipnav.d.ts +2 -2
  39. package/dist/packages/nys-stepper/src/nys-step.d.ts +13 -0
  40. package/dist/packages/nys-stepper/src/nys-stepper.d.ts +69 -119
  41. package/dist/packages/nys-tab/src/nys-tab.d.ts +8 -17
  42. package/dist/packages/nys-tab/src/nys-tabgroup.d.ts +15 -77
  43. package/dist/packages/nys-tab/src/nys-tabpanel.d.ts +17 -0
  44. package/dist/packages/nys-table/src/nys-table.d.ts +0 -71
  45. package/dist/packages/nys-textarea/src/nys-textarea.d.ts +5 -52
  46. package/dist/packages/nys-textinput/src/nys-textinput.d.ts +9 -63
  47. package/dist/packages/nys-toggle/src/nys-toggle.d.ts +4 -40
  48. package/dist/packages/nys-tooltip/src/nys-tooltip.d.ts +6 -38
  49. package/dist/packages/nys-unavfooter/src/nys-unavfooter.d.ts +2 -10
  50. package/dist/packages/nys-unavheader/src/nys-unavheader.d.ts +9 -51
  51. package/dist/packages/nys-video/src/nys-video.d.ts +3 -65
  52. package/package.json +4 -7
  53. package/packages/react/NysBreadcrumbs.d.ts +1 -1
  54. package/packages/react/NysButton.d.ts +1 -2
  55. package/packages/react/NysDropdownMenu.d.ts +1 -1
  56. package/packages/react/NysLabel.d.ts +1 -4
  57. package/packages/react/NysTextarea.d.ts +1 -1
  58. package/packages/react/NysUnavHeader.d.ts +1 -11
  59. package/packages/react/NysUnavHeader.js +1 -15
  60. package/packages/react/nysds-jsx.d.ts +7 -20
  61. package/dist/nys-icon.library-ChLRj3i-.js +0 -696
  62. package/dist/nys-icon.library-ChLRj3i-.js.map +0 -1
@@ -158,18 +158,13 @@
158
158
  "summary": "Container for accordion items with optional single-select and bordered styling.",
159
159
  "examples": [
160
160
  {
161
- "title": "Basic",
162
- "code": "<nys-accordion>\n<nys-accordionitem id=\"accordionId1\" heading=\"How do I renew my passport or apply for a new one?\">\n<p>\nYou can apply for or renew a U.S. passport through the U.S. Department\nof State. Some renewals can be done by mail.\n</p>\n<div style=\"display: flex; gap: 0.5rem; font-size: 1rem;\">\n<a href=\"https://www.ny.gov\" target=\"_blank\">Check your registration</a>\n<a href=\"https://www.ny.gov\" target=\"_blank\">Fill out application</a>\n</div>\n</nys-accordionitem>\n<nys-accordionitem id=\"accordionId2\" heading=\"How can I find out if I’m registered to vote?\">\n<p>You can check your registration status, update your information, or find out how to register through the National Association of Secretaries of State.</p>\n</nys-accordionitem>\n</nys-accordion>",
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
163
  "lang": "html"
164
164
  },
165
165
  {
166
- "title": "Single Select",
167
- "code": "<nys-accordion singleSelect>\n<nys-accordionitem heading=\"FAQ 1\">Answer 1</nys-accordionitem>\n<nys-accordionitem heading=\"FAQ 2\">Answer 2</nys-accordionitem>\n</nys-accordion>",
168
- "lang": "html"
169
- },
170
- {
171
- "title": "Bordered",
172
- "code": "<nys-accordion bordered>\n<nys-accordionitem heading=\"We are a group of accordions\">\n<p>Stronger together! Learn more at\n<a href=\"https://www.ny.gov\" target=\"_blank\">ny.gov</a>\n</p>\n</nys-accordionitem>\n<nys-accordionitem heading=\"Liberty Ipsum: Bridges & Boroughs\">\n<p>Empire ipsum dolor sit amet, across the Brooklyn Bridge to Central Park, consectetur adipiscing elit.</p>\n</nys-accordionitem>\n<nys-accordionitem heading=\"Hudson Ipsum: Riverfront Stories\">\n<p>From the banks of the Hudson to the peaks of the Adirondacks, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua.</p>\n</nys-accordionitem>\n</nys-accordion>",
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>",
173
168
  "lang": "html"
174
169
  }
175
170
  ]
@@ -356,7 +351,7 @@
356
351
  "examples": [
357
352
  {
358
353
  "title": "Expanded item",
359
- "code": "<nys-accordion>\n<nys-accordionitem heading=\"How do I apply?\" expanded>\n<p>Visit ny.gov and complete the online application.</p>\n</nys-accordionitem>\n<nys-accordionitem heading=\"What documents do I need?\">\n<p>You will need a valid ID and proof of residency.</p>\n</nys-accordionitem>\n</nys-accordion>",
354
+ "code": "<nys-accordionitem heading=\"How do I apply?\" expanded>\n<p>Visit ny.gov and complete the online application.</p>\n</nys-accordionitem>",
360
355
  "lang": "html"
361
356
  }
362
357
  ]
@@ -729,64 +724,13 @@
729
724
  "summary": "Alert for contextual feedback with semantic types and live region support.",
730
725
  "examples": [
731
726
  {
732
- "title": "Basic",
733
- "code": "<nys-alert heading=\"This is a heading\"></nys-alert>",
734
- "lang": "html"
735
- },
736
- {
737
- "title": "Text",
738
- "code": "<nys-alert\nheading=\"This is a heading\"\ntext=\"This is additional information passed in through the text property\"\n></nys-alert>",
739
- "lang": "html"
740
- },
741
- {
742
- "title": "Rich Text",
743
- "code": "<nys-alert heading=\"Rich Text\">\n<p>This is a custom alert with <strong>HTML content</strong> passed in through the slot.</p>\n<a href=\"https://www.ny.gov/\" target=\"_blank\">Learn more about our accessibility services</a>\n</nys-alert>",
744
- "lang": "html"
745
- },
746
- {
747
- "title": "Info Type",
748
- "code": "<nys-alert type=\"info\" heading=\"Info alert type\"></nys-alert>",
749
- "lang": "html"
750
- },
751
- {
752
- "title": "Success Type",
753
- "code": "<nys-alert type=\"success\" heading=\"Success alert type\"></nys-alert>",
754
- "lang": "html"
755
- },
756
- {
757
- "title": "Warning Type",
758
- "code": "<nys-alert type=\"warning\" heading=\"Warning alert type\"></nys-alert>",
759
- "lang": "html"
760
- },
761
- {
762
- "title": "Danger Type",
763
- "code": "<nys-alert type=\"danger\" heading=\"Danger alert type\"></nys-alert>",
764
- "lang": "html"
765
- },
766
- {
767
- "title": "Emergency Type",
768
- "code": "<nys-alert type=\"emergency\" heading=\"Emergency alert type\"></nys-alert>",
769
- "lang": "html"
770
- },
771
- {
772
- "title": "Dismissible",
773
- "code": "<nys-alert heading=\"This alert is dismisable\" text=\"Close it by clicking on the X in the corner.\" dismissible>\n</nys-alert>",
774
- "lang": "html"
775
- },
776
- {
777
- "title": "Duration",
778
- "code": "<nys-alert heading=\"Disappearing alert\" text=\"This alert will disappear after 3 seconds.\" duration=\"3000\"></nys-alert>",
779
- "lang": "html",
780
- "render": "<nys-button\nclass=\"nys-margin-b-100\"\nlabel=\"Show alert\"\nonclick=\"document.body.appendChild(Object.assign(document.createElement('nys-alert'), {heading: 'Disappearing alert', text: 'This alert will disappear after 3 seconds.', duration: 3000}))\"\n></nys-button>"
781
- },
782
- {
783
- "title": "Custom Icon",
784
- "code": "<nys-alert\ntype=\"emergency\"\nheading=\"Winter storm warning: Dec 10th, 2024.\"\ntext=\"A major snowfall is expected across the state of New York for the weekend of Dec 7th. Stay home if possible and use extreme caution when driving.\"\nicon=\"ac_unit\">\n</nys-alert>",
727
+ "title": "Info alert",
728
+ "code": "<nys-alert type=\"info\" heading=\"Update available\" text=\"A new version is ready to install.\"></nys-alert>",
785
729
  "lang": "html"
786
730
  },
787
731
  {
788
- "title": "Action Links",
789
- "code": "<nys-alert\nheading=\"Alert with links\"\nprimaryLabel=\"{primaryAction}\"\nsecondaryLabel=\"{secondaryAction}\"\nprimaryAction=\"https://www.ny.gov/\"\nsecondaryAction=\"https://www.ny.gov/\"\n></nys-alert>",
732
+ "title": "Dismissible success alert",
733
+ "code": "<nys-alert type=\"success\" heading=\"Application submitted\" dismissible></nys-alert>",
790
734
  "lang": "html"
791
735
  }
792
736
  ]
@@ -1082,44 +1026,13 @@
1082
1026
  "summary": "User avatar with image, initials, or icon fallback and contrast-aware colors.",
1083
1027
  "examples": [
1084
1028
  {
1085
- "title": "Basic",
1086
- "code": "<nys-avatar ariaLabel=\"User avatar\"></nys-avatar>",
1029
+ "title": "Image avatar",
1030
+ "code": "<nys-avatar image=\"/path/to/photo.jpg\" ariaLabel=\"Jane Smith\"></nys-avatar>",
1087
1031
  "lang": "html"
1088
1032
  },
1089
1033
  {
1090
- "title": "Image",
1091
- "code": "<nys-avatar\nimage=\"path/to/img.png\"\nariaLabel=\"Jane Smith\"\n></nys-avatar>",
1092
- "lang": "html",
1093
- "render": "<nys-avatar\nimage=\"https://images.unsplash.com/photo-1523712999610-f77fbcfc3843?q=80&w=2070&auto=format&fit=crop&ixlib=rb-4.0.3&ixid=M3wxMjA3fDB8MHxwaG90by1wYWdlfHx8fGVufDB8fHx8fA%3D%3D\"\nariaLabel=\"Jane Smith\"\n></nys-avatar>"
1094
- },
1095
- {
1096
- "title": "Initials",
1097
- "code": "<nys-avatar initials=\"JS\" ariaLabel=\"Jane Smith\"></nys-avatar>",
1098
- "lang": "html"
1099
- },
1100
- {
1101
- "title": "Icon",
1102
- "code": "<nys-avatar icon=\"account_circle\"></nys-avatar>",
1103
- "lang": "html"
1104
- },
1105
- {
1106
- "title": "Interactive",
1107
- "code": "<nys-avatar interactive></nys-avatar>",
1108
- "lang": "html"
1109
- },
1110
- {
1111
- "title": "Disabled",
1112
- "code": "<nys-avatar disabled></nys-avatar>",
1113
- "lang": "html"
1114
- },
1115
- {
1116
- "title": "Custom Background Color",
1117
- "code": "<nys-avatar color=\"var(--nys-color-red-500)\" interactive></nys-avatar>",
1118
- "lang": "html"
1119
- },
1120
- {
1121
- "title": "Lazy Loading",
1122
- "code": "<nys-avatar lazy></nys-avatar>",
1034
+ "title": "Initials avatar with custom color",
1035
+ "code": "<nys-avatar initials=\"JS\" color=\"var(--nys-color-theme)\" ariaLabel=\"Jane Smith\"></nys-avatar>",
1123
1036
  "lang": "html"
1124
1037
  }
1125
1038
  ]
@@ -1269,16 +1182,14 @@
1269
1182
  "summary": "Floating back-to-top button with auto-show behavior, smooth scroll, and focus management.",
1270
1183
  "examples": [
1271
1184
  {
1272
- "title": "Basic",
1185
+ "title": "Auto-appearing button in footer",
1273
1186
  "code": "<footer>\n<nys-backtotop></nys-backtotop>\n<!-- Other footer content -->\n</footer>",
1274
- "lang": "html",
1275
- "render": "<style>\ncode {\nwhite-space: nowrap;\npadding: var(--nys-space-1px) var(--nys-space-2px);\nborder-radius: var(--nys-radius-md);\ncolor: var(--nys-color-red-600);\nbackground: var(--nys-color-neutral-10);\nfont-size: var(--nys-font-size-sm);\n}\n</style>\n<nys-unavheader hideTranslate hideSearch></nys-unavheader>\n<nys-globalheader appName=\"Back to Top Example\"></nys-globalheader>\n<main style=\"padding: 0 2rem\">\n<h1>Sample Content on page</h1>\n<p>\nThis is a sample content area used to demonstrate the functionality of\nthe Back to Top button. In an actual application,\n<code>nys-backtotop</code> would not be visible until the user scrolls\ndown the page.\n</p>\n</main>\n<footer>\n<nys-backtotop visible></nys-backtotop>\n<nys-unavfooter></nys-unavfooter>\n</footer>"
1187
+ "lang": "html"
1276
1188
  },
1277
1189
  {
1278
- "title": "Left",
1279
- "code": "<footer>\n<nys-backtotop position=\"left\"></nys-backtotop>\n<!-- Other footer content -->\n</footer>",
1280
- "lang": "html",
1281
- "render": "<style>\ncode {\nwhite-space: nowrap;\npadding: var(--nys-space-1px) var(--nys-space-2px);\nborder-radius: var(--nys-radius-md);\ncolor: var(--nys-color-red-600);\nbackground: var(--nys-color-neutral-10);\nfont-size: var(--nys-font-size-sm);\n}\nnys-button {\nposition: fixed;\nbottom: 1rem;\nright: 1rem;\n--_nys-button-border-radius: var(--nys-radius-round);\n}\n</style>\n<nys-unavheader hideTranslate hideSearch></nys-unavheader>\n<nys-globalheader appName=\"Back to Top Example\"></nys-globalheader>\n<main style=\"padding: 0 2rem\">\n<h1>Sample Content on page</h1>\n<p>\nThis is a sample content area used to demonstrate the functionality of\nthe Back to Top button. In an actual application,\n<code>nys-backtotop</code> would not be visible until the user scrolls\ndown the page.\n</p>\n</main>\n<footer>\n<nys-backtotop visible position=\"left\"></nys-backtotop>\n<nys-button prefixIcon=\"sms\" variant=\"outline\" label=\"Chat with us\" size=\"sm\"></nys-button>\n<nys-unavfooter></nys-unavfooter>\n</footer>"
1190
+ "title": "Always visible, left position",
1191
+ "code": "<nys-backtotop visible position=\"left\"></nys-backtotop>",
1192
+ "lang": "html"
1282
1193
  }
1283
1194
  ]
1284
1195
  }
@@ -1583,63 +1494,13 @@
1583
1494
  "summary": "Compact label for status, counts, or categorization with semantic styling.",
1584
1495
  "examples": [
1585
1496
  {
1586
- "title": "Basic",
1587
- "code": "<nys-badge label=\"Basic badge\"></nys-badge>",
1588
- "lang": "html"
1589
- },
1590
- {
1591
- "title": "Error Intent",
1592
- "code": "<nys-badge label=\"Error\" intent=\"error\" prefixIcon></nys-badge>",
1593
- "lang": "html"
1594
- },
1595
- {
1596
- "title": "Warning Intent",
1597
- "code": "<nys-badge label=\"Warning\" intent=\"warning\" prefixIcon></nys-badge>",
1598
- "lang": "html"
1599
- },
1600
- {
1601
- "title": "Success Intent",
1602
- "code": "<nys-badge label=\"Success\" intent=\"success\" prefixIcon></nys-badge>",
1603
- "lang": "html"
1604
- },
1605
- {
1606
- "title": "Strong Neutral",
1607
- "code": "<nys-badge variant=\"strong\" label=\"Neutral\" prefixIcon></nys-badge>",
1608
- "lang": "html"
1609
- },
1610
- {
1611
- "title": "Strong Error",
1612
- "code": "<nys-badge variant=\"strong\" label=\"Error\" intent=\"error\" prefixIcon></nys-badge>",
1613
- "lang": "html"
1614
- },
1615
- {
1616
- "title": "Strong Warning",
1617
- "code": "<nys-badge variant=\"strong\" label=\"Warning\" intent=\"warning\" prefixIcon></nys-badge>",
1618
- "lang": "html"
1619
- },
1620
- {
1621
- "title": "Strong Success",
1622
- "code": "<nys-badge variant=\"strong\" label=\"Success\" intent=\"success\" prefixIcon></nys-badge>",
1623
- "lang": "html"
1624
- },
1625
- {
1626
- "title": "Custom Prefix Icon",
1627
- "code": "<nys-badge label=\"Custom prefixIcon\" prefixIcon=\"check\"></nys-badge>",
1628
- "lang": "html"
1629
- },
1630
- {
1631
- "title": "Custom Suffix Icon",
1632
- "code": "<nys-badge label=\"Custom suffixIcon\" suffixIcon=\"check\"></nys-badge>",
1633
- "lang": "html"
1634
- },
1635
- {
1636
- "title": "Size Small",
1637
- "code": "<nys-badge label=\"Small\" size=\"sm\"></nys-badge>",
1497
+ "title": "Status badge",
1498
+ "code": "<nys-badge intent=\"success\" label=\"Approved\" prefixIcon></nys-badge>",
1638
1499
  "lang": "html"
1639
1500
  },
1640
1501
  {
1641
- "title": "Screen reader text",
1642
- "code": "<nys-badge intent=\"warning\" label=\"Caution\" prefixIcon srText=\"concern\"></nys-badge>",
1502
+ "title": "Count badge",
1503
+ "code": "<nys-badge prefixLabel=\"Messages\" label=\"12\"></nys-badge>",
1643
1504
  "lang": "html"
1644
1505
  }
1645
1506
  ]
@@ -1685,11 +1546,11 @@
1685
1546
  "declarations": [
1686
1547
  {
1687
1548
  "kind": "class",
1688
- "description": "A breadcrumb navigation trail composed of `li` elements.\nCollapses when the trail exceeds 5 items on desktop or 3 items on mobile,\nshowing the first, last, and item before the current page, with an ellipsis to expand.\nA single item renders as a back-to-parent link instead of a trail.",
1549
+ "description": "A breadcrumb navigation trail composed of `nys-breadcrumbitem` elements.\nCollapses when the trail exceeds 5 items on desktop or 3 items on mobile,\nshowing the first, last, and item before the current page, with an ellipsis to expand.\nA single item renders as a back-to-parent link instead of a trail.",
1689
1550
  "name": "NysBreadcrumbs",
1690
1551
  "slots": [
1691
1552
  {
1692
- "description": "One or more `li` elements defining the trail.",
1553
+ "description": "One or more `nys-breadcrumbitem` elements defining the trail.",
1693
1554
  "name": ""
1694
1555
  }
1695
1556
  ],
@@ -1719,7 +1580,7 @@
1719
1580
  "kind": "field",
1720
1581
  "name": "size",
1721
1582
  "type": {
1722
- "text": "\"sm\" | \"md\""
1583
+ "text": "\"sm\" | \"md\" | \"\""
1723
1584
  },
1724
1585
  "default": "\"md\"",
1725
1586
  "description": "Controls the visual size of the breadcrumb text and spacing: `sm` for dense layouts, `md` (default) for standard use.",
@@ -1942,7 +1803,7 @@
1942
1803
  {
1943
1804
  "name": "size",
1944
1805
  "type": {
1945
- "text": "\"sm\" | \"md\""
1806
+ "text": "\"sm\" | \"md\" | \"\""
1946
1807
  },
1947
1808
  "default": "\"md\"",
1948
1809
  "description": "Controls the visual size of the breadcrumb text and spacing: `sm` for dense layouts, `md` (default) for standard use.",
@@ -1999,43 +1860,18 @@
1999
1860
  "summary": "Breadcrumb navigation trail with responsive collapse support.",
2000
1861
  "examples": [
2001
1862
  {
2002
- "title": "Basic",
2003
- "code": "<nys-breadcrumbs>\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/services\">Services</a></li>\n</ol>\n</nys-breadcrumbs>",
2004
- "lang": "html"
2005
- },
2006
- {
2007
- "title": "Current page",
1863
+ "title": "Full trail with current page",
2008
1864
  "code": "<nys-breadcrumbs>\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/services\">Services</a></li>\n<li>Current Page</li>\n</ol>\n</nys-breadcrumbs>",
2009
1865
  "lang": "html"
2010
1866
  },
2011
1867
  {
2012
- "title": "Single item list",
2013
- "code": "<nys-breadcrumbs>\n<ol>\n<li><a href=\"/services\">Services</a></li>\n</ol>\n</nys-breadcrumbs>",
2014
- "lang": "html"
2015
- },
2016
- {
2017
- "title": "Long list",
2018
- "code": "<nys-breadcrumbs>\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/government\">Government</a></li>\n<li><a href=\"/government/agencies\">Agencies</a></li>\n<li><a href=\"/government/agencies/parks\">Parks & Recreation</a></li>\n<li><a href=\"/parks/state-parks\">State Parks</a></li>\n<li><a href=\"/parks/state-parks/delaware\">Delaware Region</a></li>\n<li><a href=\"/parks/state-parks/delaware/water-gap\">Delaware Water Gap</a></li>\n<li>Trail Conditions</li>\n</ol>\n</nys-breadcrumbs>",
2019
- "lang": "html"
2020
- },
2021
- {
2022
- "title": "Size small",
2023
- "code": "<nys-breadcrumbs size=\"sm\">\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/government\">Government</a></li>\n<li><a href=\"/government/agencies\">Agencies</a></li>\n<li>Parks & Recreation</li>\n</ol>\n</nys-breadcrumbs>",
2024
- "lang": "html"
2025
- },
2026
- {
2027
- "title": "Back to parent (mobile)",
2028
- "code": "<nys-breadcrumbs backToParent>\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/government\">Government</a></li>\n<li><a href=\"/government/agencies\">Agencies</a></li>\n<li><a href=\"/government/agencies/parks\">Parks & Recreation</a></li>\n<li><a href=\"/parks/state-parks\">State Parks</a></li>\n<li><a href=\"/parks/state-parks/delaware\">Delaware Region</a></li>\n<li><a href=\"/parks/state-parks/delaware/water-gap\">Delaware Water Gap</a></li>\n<li>Trail Conditions</li>\n</ol>\n</nys-breadcrumbs>",
2029
- "lang": "html"
2030
- },
2031
- {
2032
- "title": "Background bar",
2033
- "code": "<nys-breadcrumbs backgroundBar>\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/services\">Services</a></li>\n<li><a href=\"/tickets\">Ticket System</a></li>\n<li>Del Water Gap</li>\n</ol>\n</nys-breadcrumbs>",
1868
+ "title": "Trail without current page",
1869
+ "code": "<nys-breadcrumbs>\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/services\">Services</a></li>\n</ol>\n</nys-breadcrumbs>",
2034
1870
  "lang": "html"
2035
1871
  },
2036
1872
  {
2037
- "title": "Disabled",
2038
- "code": "<nys-breadcrumbs disabled>\n<ol>\n<li><a href=\"/\">Home</a></li>\n<li><a href=\"/services\">Services</a></li>\n<li><a href=\"/tickets\">Ticket System</a></li>\n<li>Del Water Gap</li>\n</ol>\n</nys-breadcrumbs>",
1873
+ "title": "Single item renders as back-to-parent",
1874
+ "code": "<nys-breadcrumbs>\n<ol>\n<li><a href=\"/services\">Services</a></li>\n</ol>\n</nys-breadcrumbs>",
2039
1875
  "lang": "html"
2040
1876
  }
2041
1877
  ]
@@ -2122,10 +1958,6 @@
2122
1958
  }
2123
1959
  ],
2124
1960
  "slots": [
2125
- {
2126
- "description": "Button label text. Use as fallback when `label` prop is not provided.",
2127
- "name": ""
2128
- },
2129
1961
  {
2130
1962
  "description": "Icon before label. Not shown for `text` variant.",
2131
1963
  "name": "prefix-icon"
@@ -2769,38 +2601,18 @@
2769
2601
  "summary": "Button for actions and CTAs with variants, sizes, and icon support.",
2770
2602
  "examples": [
2771
2603
  {
2772
- "title": "Basic",
2773
- "code": "<nys-button label=\"Button\" variant=\"filled\"></nys-button>",
2774
- "lang": "html"
2775
- },
2776
- {
2777
- "title": "Variant Outline",
2778
- "code": "<nys-button label=\"Button\" variant=\"outline\"></nys-button>",
2779
- "lang": "html"
2780
- },
2781
- {
2782
- "title": "Variant Ghost",
2783
- "code": "<nys-button label=\"Button\" variant=\"ghost\"></nys-button>",
2784
- "lang": "html"
2785
- },
2786
- {
2787
- "title": "Variant Text",
2788
- "code": "<nys-button label=\"Button\" variant=\"text\"></nys-button>",
2789
- "lang": "html"
2790
- },
2791
- {
2792
- "title": "Prefix Icon",
2793
- "code": "<nys-button label=\"Previous\" prefixIcon=\"chevron_left\"></nys-button>",
2604
+ "title": "Basic filled button",
2605
+ "code": "<nys-button label=\"Submit\" variant=\"filled\"></nys-button>",
2794
2606
  "lang": "html"
2795
2607
  },
2796
2608
  {
2797
- "title": "Suffix Icon",
2798
- "code": "<nys-button label=\"Next\" suffixIcon=\"chevron_right\"></nys-button>",
2609
+ "title": "Secondary outline button",
2610
+ "code": "<nys-button label=\"Cancel\" variant=\"outline\"></nys-button>",
2799
2611
  "lang": "html"
2800
2612
  },
2801
2613
  {
2802
- "title": "Slotted Icons",
2803
- "code": "<nys-button label=\"Slotted icons\">\n<nys-icon color=\"#db117d\" slot=\"prefix-icon\" name=\"chevron_left\"></nys-icon>\n<nys-icon color=\"#db117d\" slot=\"suffix-icon\" name=\"chevron_right\"></nys-icon>\n</nys-button>",
2614
+ "title": "Button with icons",
2615
+ "code": "<nys-button label=\"Previous\" prefixIcon=\"chevron_left\"></nys-button>\n<nys-button label=\"Next\" suffixIcon=\"chevron_right\"></nys-button>",
2804
2616
  "lang": "html"
2805
2617
  },
2806
2618
  {
@@ -2809,38 +2621,12 @@
2809
2621
  "lang": "html"
2810
2622
  },
2811
2623
  {
2812
- "title": "Size Small",
2813
- "code": "<nys-button label=\"Small\" size=\"sm\"></nys-button>",
2814
- "lang": "html"
2815
- },
2816
- {
2817
- "title": "Size Large",
2818
- "code": "<nys-button label=\"Large\" size=\"lg\"></nys-button>",
2819
- "lang": "html"
2820
- },
2821
- {
2822
- "title": "Full width",
2823
- "code": "<nys-button label=\"Full width\" fullWidth></nys-button>",
2824
- "lang": "html"
2825
- },
2826
- {
2827
- "title": "Inverted",
2828
- "code": "<nys-button label=\"Inverted\" inverted></nys-button>",
2829
- "lang": "html",
2830
- "render": "<div style=\"background: #1b1b1b; padding: 1rem;\">\n<nys-button label=\"Inverted\" inverted></nys-button>\n</div>"
2831
- },
2832
- {
2833
- "title": "Disabled",
2834
- "code": "<nys-button label=\"Disabled\" disabled></nys-button>",
2835
- "lang": "html"
2836
- },
2837
- {
2838
- "title": "Href",
2624
+ "title": "Link-style button for navigation",
2839
2625
  "code": "<nys-button label=\"Visit NY.gov\" href=\"https://www.ny.gov/\" target=\"_blank\" suffixIcon=\"open_in_new\"></nys-button>",
2840
2626
  "lang": "html"
2841
2627
  },
2842
2628
  {
2843
- "title": "Type",
2629
+ "title": "Form submit button",
2844
2630
  "code": "<nys-button type=\"submit\" label=\"Save Changes\" variant=\"filled\"></nys-button>",
2845
2631
  "lang": "html"
2846
2632
  }
@@ -3513,13 +3299,13 @@
3513
3299
  "summary": "Checkbox for binary choices or multi-select options.",
3514
3300
  "examples": [
3515
3301
  {
3516
- "title": "Single",
3517
- "code": "<nys-checkbox label=\"I agree to the terms\" name=\"terms\"></nys-checkbox>",
3302
+ "title": "Single checkbox",
3303
+ "code": "<nys-checkbox label=\"I agree to the terms\" name=\"terms\" required></nys-checkbox>",
3518
3304
  "lang": "html"
3519
3305
  },
3520
3306
  {
3521
- "title": "Preselected",
3522
- "code": "<nys-checkbox label=\"I agree to the terms\" name=\"terms\" checked></nys-checkbox>",
3307
+ "title": "Checkbox group",
3308
+ "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>",
3523
3309
  "lang": "html"
3524
3310
  }
3525
3311
  ]
@@ -4032,54 +3818,9 @@
4032
3818
  "summary": "Container for grouping checkboxes as a single form control.",
4033
3819
  "examples": [
4034
3820
  {
4035
- "title": "Basic",
4036
- "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>",
4037
- "lang": "html"
4038
- },
4039
- {
4040
- "title": "Tile",
4041
- "code": "<nys-checkboxgroup label=\"Select landmarks\" tile>\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>",
4042
- "lang": "html"
4043
- },
4044
- {
4045
- "title": "Required",
3821
+ "title": "Basic checkbox group",
4046
3822
  "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>",
4047
3823
  "lang": "html"
4048
- },
4049
- {
4050
- "title": "Optional",
4051
- "code": "<nys-checkboxgroup label=\"Select landmarks\" optional>\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>",
4052
- "lang": "html"
4053
- },
4054
- {
4055
- "title": "Disabled",
4056
- "code": "<nys-checkboxgroup label=\"Select landmarks\">\n<nys-checkbox name=\"landmarks\" value=\"adirondacks\" label=\"Adirondacks\" disabled></nys-checkbox>\n<nys-checkbox name=\"landmarks\" value=\"niagara\" label=\"Niagara Falls\" disabled></nys-checkbox>\n</nys-checkboxgroup>",
4057
- "lang": "html"
4058
- },
4059
- {
4060
- "title": "Size Small",
4061
- "code": "<nys-checkboxgroup label=\"Select landmarks\" size=\"sm\">\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>",
4062
- "lang": "html"
4063
- },
4064
- {
4065
- "title": "Other Option",
4066
- "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-checkbox name=\"landmarks\" value=\"\" label=\"Other\" other></nys-checkbox>\n</nys-checkboxgroup>",
4067
- "lang": "html"
4068
- },
4069
- {
4070
- "title": "Error Message",
4071
- "code": "<nys-checkboxgroup label=\"Select landmarks\" showError errorMessage=\"Please select at least one landmark\">\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>",
4072
- "lang": "html"
4073
- },
4074
- {
4075
- "title": "Description",
4076
- "code": "<nys-checkboxgroup label=\"Select landmarks\" description=\"Choose wisely, you can only pick one.\">\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>",
4077
- "lang": "html"
4078
- },
4079
- {
4080
- "title": "Description Slot",
4081
- "code": "<nys-checkboxgroup label=\"Select landmarks\">\n<div slot=\"description\">Your <strong>ABSOLUTE</strong> favorite one.</div>\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>",
4082
- "lang": "html"
4083
3824
  }
4084
3825
  ]
4085
3826
  }
@@ -4806,67 +4547,6 @@
4806
4547
  "name": "LitElement",
4807
4548
  "package": "lit"
4808
4549
  },
4809
- "examples": [
4810
- {
4811
- "title": "Basic",
4812
- "code": "<nys-combobox label=\"Select your favorite fruit\">\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"cherry\">Cherry</option>\n<option value=\"date\">Date</option>\n<option value=\"elderberry\">Elderberry</option>\n<option value=\"fig\">Fig</option>\n<option value=\"grape\">Grape</option>\n<option value=\"honeydew\">Honeydew</option>\n<option value=\"kiwi\">Kiwi</option>\n<option value=\"lemon\">Lemon</option>\n<option value=\"mango\">Mango</option>\n<option value=\"nectarine\">Nectarine</option>\n<option value=\"orange\">Orange</option>\n<option value=\"papaya\">Papaya</option>\n<option value=\"quince\">Quince</option>\n<option value=\"raspberry\">Raspberry</option>\n<option value=\"strawberry\">Strawberry</option>\n<option value=\"tangerine\">Tangerine</option>\n<option value=\"watermelon\">Watermelon</option>\n</nys-combobox>",
4813
- "lang": "html"
4814
- },
4815
- {
4816
- "title": "Default Value",
4817
- "code": "<nys-combobox label=\"Select your favorite fruit\" value=\"mango\">\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"mango\" selected>Mango</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4818
- "lang": "html"
4819
- },
4820
- {
4821
- "title": "Option Group",
4822
- "code": "<nys-combobox label=\"Select a fruit\" description=\"Fruits organized by category\">\n<optgroup label=\"Citrus\">\n<option value=\"lemon\">Lemon</option>\n<option value=\"lime\">Lime</option>\n<option value=\"orange\">Orange</option>\n<option value=\"grapefruit\">Grapefruit</option>\n<option value=\"tangerine\">Tangerine</option>\n</optgroup>\n<optgroup label=\"Berries\">\n<option value=\"strawberry\">Strawberry</option>\n<option value=\"blueberry\">Blueberry</option>\n<option value=\"raspberry\">Raspberry</option>\n<option value=\"blackberry\">Blackberry</option>\n<option value=\"cranberry\">Cranberry</option>\n</optgroup>\n<optgroup label=\"Tropical\">\n<option value=\"mango\">Mango</option>\n<option value=\"pineapple\">Pineapple</option>\n<option value=\"papaya\">Papaya</option>\n<option value=\"coconut\">Coconut</option>\n<option value=\"passionfruit\">Passionfruit</option>\n</optgroup>\n<optgroup label=\"Stone Fruits\">\n<option value=\"peach\">Peach</option>\n<option value=\"plum\">Plum</option>\n<option value=\"cherry\">Cherry</option>\n<option value=\"apricot\">Apricot</option>\n<option value=\"nectarine\">Nectarine</option>\n</optgroup>\n</nys-combobox>",
4823
- "lang": "html"
4824
- },
4825
- {
4826
- "title": "Disabled",
4827
- "code": "<nys-combobox label=\"Select your favorite fruit\" disabled>\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4828
- "lang": "html"
4829
- },
4830
- {
4831
- "title": "Required",
4832
- "code": "<nys-combobox label=\"Select your favorite fruit\" required>\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4833
- "lang": "html"
4834
- },
4835
- {
4836
- "title": "Optional",
4837
- "code": "<nys-combobox label=\"Select your favorite fruit\" optional>\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4838
- "lang": "html"
4839
- },
4840
- {
4841
- "title": "Width Medium",
4842
- "code": "<nys-combobox label=\"Select your favorite fruit\" width=\"md\">\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4843
- "lang": "html"
4844
- },
4845
- {
4846
- "title": "Width Large",
4847
- "code": "<nys-combobox label=\"Select your favorite fruit\" width=\"lg\">\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4848
- "lang": "html"
4849
- },
4850
- {
4851
- "title": "Description",
4852
- "code": "```html\n<nys-combobox label=\"Select your favorite fruit\" description=\"Choose from the list of available fruits.\">\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>\n```d"
4853
- },
4854
- {
4855
- "title": "Description Slot",
4856
- "code": "<nys-combobox label=\"Select your favorite fruit\">\n<label slot=\"description\">This is a description slot</label>\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4857
- "lang": "html"
4858
- },
4859
- {
4860
- "title": "Error Message",
4861
- "code": "<nys-combobox label=\"Select your favorite fruit\" showError errorMessage=\"Please select a fruit\">\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"orange\">Orange</option>\n<option value=\"strawberry\">Strawberry</option>\n</nys-combobox>",
4862
- "lang": "html"
4863
- },
4864
- {
4865
- "title": "Disabled Options",
4866
- "code": "<nys-combobox label=\"Select your favorite fruit\" description=\"Some fruits are out of season\">\n<option value=\"apple\">Apple</option>\n<option value=\"banana\">Banana</option>\n<option value=\"cherry\" disabled>Cherry (Out of season)</option>\n<option value=\"mango\">Mango</option>\n<option value=\"strawberry\" disabled>Strawberry (Out of season)</option>\n<option value=\"orange\">Orange</option>\n</nys-combobox>",
4867
- "lang": "html"
4868
- }
4869
- ],
4870
4550
  "tagName": "nys-combobox",
4871
4551
  "customElement": true
4872
4552
  }
@@ -5673,53 +5353,23 @@
5673
5353
  "summary": "Date picker with calendar popup and native fallback.",
5674
5354
  "examples": [
5675
5355
  {
5676
- "title": "Basic",
5677
- "code": "<nys-datepicker\nid=\"my-datepicker\"\nname=\"my-datepicker\"\nlabel=\"Schedule an appointment\"\ndescription=\"Enter in MM/DD/YYYY format\"\n></nys-datepicker>",
5356
+ "title": "Basic date picker",
5357
+ "code": "<nys-datepicker label=\"Birth Date\" required></nys-datepicker>",
5678
5358
  "lang": "html"
5679
5359
  },
5680
5360
  {
5681
- "title": "Width Large",
5361
+ "title": "With width and description",
5682
5362
  "code": "<nys-datepicker\nlabel=\"Event Date\"\ndescription=\"Select the date of your event\"\nwidth=\"lg\">\n</nys-datepicker>",
5683
5363
  "lang": "html"
5684
5364
  },
5685
5365
  {
5686
- "title": "Width Full",
5687
- "code": "<nys-datepicker\nlabel=\"Event Date\"\ndescription=\"Select the date of your event\"\nwidth=\"full\">\n</nys-datepicker>",
5688
- "lang": "html"
5689
- },
5690
- {
5691
- "title": "Custom Start Date",
5692
- "code": "<nys-datepicker\nlabel=\"Appointment\"\nstartDate=\"2024-01-01\">\n</nys-datepicker>",
5693
- "lang": "html"
5694
- },
5695
- {
5696
- "title": "Without Buttons",
5697
- "code": "<nys-datepicker\nlabel=\"Appointment\"\nhideTodayButton\nhideClearButton>\n</nys-datepicker>",
5698
- "lang": "html"
5699
- },
5700
- {
5701
- "title": "Error Message",
5702
- "code": "<nys-datepicker\nlabel=\"Start Date\"\nshowError\nerrorMessage=\"Please select a valid start date\">\n</nys-datepicker>",
5703
- "lang": "html"
5704
- },
5705
- {
5706
- "title": "Date Range",
5707
- "code": "<nys-datepicker\nlabel=\"Select a date\"\ndescription=\"Only dates within April 4/5/2026 - 7/15/2026 are selectable\"\nminDate=\"2026-04-05\"\nmaxDate=\"2026-07-15\">\n</nys-datepicker>",
5366
+ "title": "Hide buttons, set start date",
5367
+ "code": "<nys-datepicker\nlabel=\"Appointment\"\nhideTodayButton\nhideClearButton\nstartDate=\"2024-01-01\">\n</nys-datepicker>",
5708
5368
  "lang": "html"
5709
5369
  },
5710
5370
  {
5711
- "title": "Disabled",
5712
- "code": "<nys-datepicker\nlabel=\"Disabled datepicker\"\ndisabled\nvalue=\"2025-01-15\">\n</nys-datepicker>",
5713
- "lang": "html"
5714
- },
5715
- {
5716
- "title": "Required",
5717
- "code": "<nys-datepicker\nlabel=\"Start Date\"\nrequired>\n</nys-datepicker>",
5718
- "lang": "html"
5719
- },
5720
- {
5721
- "title": "Optional",
5722
- "code": "<nys-datepicker\nlabel=\"Start Date\"\noptional>\n</nys-datepicker>",
5371
+ "title": "With validation error message",
5372
+ "code": "<nys-datepicker\nlabel=\"Start Date\"\nrequired\nerrorMessage=\"Please select a valid start date\">\n</nys-datepicker>",
5723
5373
  "lang": "html"
5724
5374
  }
5725
5375
  ]
@@ -5836,20 +5486,9 @@
5836
5486
  "summary": "Horizontal divider for visual separation of content sections.",
5837
5487
  "examples": [
5838
5488
  {
5839
- "title": "Basic",
5489
+ "title": "Basic divider",
5840
5490
  "code": "<p>Section one content</p>\n<nys-divider></nys-divider>\n<p>Section two content</p>",
5841
5491
  "lang": "html"
5842
- },
5843
- {
5844
- "title": "Inverted",
5845
- "code": "<p>Section one content</p>\n<nys-divider inverted></nys-divider>\n<p>Section two content</p>",
5846
- "lang": "html",
5847
- "render": "<div style=\"display: flex; flex-direction: column; background-color: var(--nys-color-ink, #1b1b1b); color: var(--nys-color-ink-reverse, #fff); padding: var(--nys-space-200, 16px);\">\n<p>Section one content</p>\n<nys-divider inverted></nys-divider>\n<p>Section two content</p>\n</div>"
5848
- },
5849
- {
5850
- "title": "Subtle",
5851
- "code": "<p>Section one content</p>\n<nys-divider subtle></nys-divider>\n<p>Section two content</p>",
5852
- "lang": "html"
5853
5492
  }
5854
5493
  ]
5855
5494
  }
@@ -5902,7 +5541,7 @@
5902
5541
  "declarations": [
5903
5542
  {
5904
5543
  "kind": "class",
5905
- "description": "Dropdown menus enable users to select an action from a list of options.\nThey’re commonly used to save space by grouping related actions, or to provide actions in a confined space.",
5544
+ "description": "",
5906
5545
  "name": "NysDropdownMenu",
5907
5546
  "members": [
5908
5547
  {
@@ -6279,16 +5918,7 @@
6279
5918
  "package": "lit"
6280
5919
  },
6281
5920
  "tagName": "nys-dropdownmenu",
6282
- "customElement": true,
6283
- "summary": "Action menu with auto-positioning, keyboard support, and screen reader integration.",
6284
- "examples": [
6285
- {
6286
- "title": "Basic",
6287
- "code": "<nys-button id=\"my-trigger-id\" label=\"Open Menu\"></nys-button>\n<nys-dropdownmenu id=\"my-dropdownmenu\" for=\"my-trigger-id\">\n<nys-dropdownmenuitem label=\"Profile\" href=\"/profile\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Repositories & Github Pages\" href=\"/repos\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Organizations\" href=\"/organizations\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Sign out\" href=\"/logout\"></nys-dropdownmenuitem>\n</nys-dropdownmenu>\n</div>",
6288
- "lang": "html",
6289
- "render": "<div style=\"margin: 200px; display: flex; justify-content: center; align-items: center;\">\n<nys-button id=\"my-trigger-id\" label=\"Open Menu\"></nys-button>\n<nys-dropdownmenu id=\"my-dropdownmenu\" for=\"my-trigger-id\">\n<nys-dropdownmenuitem label=\"Profile\" href=\"/profile\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Repositories & Github Pages\" href=\"/repos\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Organizations\" href=\"/organizations\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Sign out\" href=\"/logout\"></nys-dropdownmenuitem>\n</nys-dropdownmenu>\n</div>"
6290
- }
6291
- ]
5921
+ "customElement": true
6292
5922
  }
6293
5923
  ],
6294
5924
  "exports": [
@@ -6467,7 +6097,19 @@
6467
6097
  },
6468
6098
  "tagName": "nys-dropdownmenuitem",
6469
6099
  "customElement": true,
6470
- "summary": "Dropdown item to display label and provide href link."
6100
+ "summary": "Dropdown item to display label and provide href link.",
6101
+ "examples": [
6102
+ {
6103
+ "title": "Basic item",
6104
+ "code": "<nys-dropdownmenuitem label=\"Edit\" link=\"/edit\"></nys-dropdownmenuitem>",
6105
+ "lang": "html"
6106
+ },
6107
+ {
6108
+ "title": "Disabled item",
6109
+ "code": "<nys-dropdownmenuitem label=\"Delete\" link=\"/delete\" disabled></nys-dropdownmenuitem>",
6110
+ "lang": "html"
6111
+ }
6112
+ ]
6471
6113
  }
6472
6114
  ],
6473
6115
  "exports": [
@@ -6604,19 +6246,7 @@
6604
6246
  },
6605
6247
  "tagName": "nys-errormessage",
6606
6248
  "customElement": true,
6607
- "summary": "Internal error message display with icon and ARIA alert support.",
6608
- "examples": [
6609
- {
6610
- "title": "Basic",
6611
- "code": "<nys-errormessage showError errorMessage=\"This is an error message\"></nys-errormessage>",
6612
- "lang": "html"
6613
- },
6614
- {
6615
- "title": "Divider",
6616
- "code": "<nys-errormessage showError errorMessage=\"This is an error message\" showDivider></nys-errormessage>",
6617
- "lang": "html"
6618
- }
6619
- ]
6249
+ "summary": "Internal error message display with icon and ARIA alert support."
6620
6250
  }
6621
6251
  ],
6622
6252
  "exports": [
@@ -7324,48 +6954,13 @@
7324
6954
  "summary": "File input with drag-and-drop, validation, and progress tracking.",
7325
6955
  "examples": [
7326
6956
  {
7327
- "title": "Basic",
7328
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\n></nys-fileinput>",
7329
- "lang": "html"
7330
- },
7331
- {
7332
- "title": "Dropzone",
7333
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\ndropzone\n></nys-fileinput>",
7334
- "lang": "html"
7335
- },
7336
- {
7337
- "title": "Multiple",
7338
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\nmultiple\n></nys-fileinput>",
7339
- "lang": "html"
7340
- },
7341
- {
7342
- "title": "Accepted Filetypes",
7343
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\ndescription=\"Accepted file types: .jpg, .png, .pdf\"\naccept=\"image/png, image/jpeg, .pdf\"\n></nys-fileinput>",
7344
- "lang": "html"
7345
- },
7346
- {
7347
- "title": "Width Large",
7348
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\nwidth=\"lg\"\n></nys-fileinput>",
7349
- "lang": "html"
7350
- },
7351
- {
7352
- "title": "Width Large Dropzone",
7353
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\nwidth=\"lg\"\ndropzone\n></nys-fileinput>",
6957
+ "title": "Single file upload",
6958
+ "code": "<nys-fileinput label=\"Upload document\" accept=\".pdf,.doc\" required></nys-fileinput>",
7354
6959
  "lang": "html"
7355
6960
  },
7356
6961
  {
7357
- "title": "Disabled",
7358
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\ndisabled\n></nys-fileinput>",
7359
- "lang": "html"
7360
- },
7361
- {
7362
- "title": "Description",
7363
- "code": "<nys-fileinput\nlabel=\"Upload a file\"\ndescription=\"Make sure the file is not blurry and readable\"\n></nys-fileinput>",
7364
- "lang": "html"
7365
- },
7366
- {
7367
- "title": "Description Slot",
7368
- "code": "<nys-fileinput label=\"Upload a file\">\n<div slot=\"description\">Make sure the file is <strong>legible</strong></div>\n</nys-fileinput>",
6962
+ "title": "Multiple files with dropzone",
6963
+ "code": "<nys-fileinput label=\"Upload images\" accept=\"image/*\" multiple dropzone></nys-fileinput>",
7369
6964
  "lang": "html"
7370
6965
  }
7371
6966
  ]
@@ -7702,28 +7297,8 @@
7702
7297
  "summary": "Agency footer with auto-layout for contact info and link sections.",
7703
7298
  "examples": [
7704
7299
  {
7705
- "title": "Basic",
7706
- "code": "<nys-globalfooter agencyName=\"Office of Information Technology Services\"></nys-globalfooter>",
7707
- "lang": "html"
7708
- },
7709
- {
7710
- "title": "Homepage Link",
7711
- "code": "<nys-globalfooter\nagencyName=\"Office of Information Technology Services\"\nhomepageLink=\"https://its.ny.gov\"\n></nys-globalfooter>",
7712
- "lang": "html"
7713
- },
7714
- {
7715
- "title": "Menu Links",
7716
- "code": "<nys-globalfooter agencyName=\"Office of Information Technology Services\">\n<ul>\n<li><a href=\"https://its.ny.gov\">ITS Home</a></li>\n<li><a href=\"https://its.ny.gov/about-us\">About ITS</a></li>\n</ul>\n</nys-globalfooter>",
7717
- "lang": "html"
7718
- },
7719
- {
7720
- "title": "Column Links",
7721
- "code": "<nys-globalfooter agencyName=\"Office of Information Technology Services\">\n<ul>\n<li>\n<span>About</span>\n<ul>\n<li><a href=\"https://its.ny.gov/about-us\">About ITS</a></li>\n<li><a href=\"https://its.ny.gov/contact-us\">Contact</a></li>\n<li><a href=\"https://its.ny.gov/policies\">Policies</a></li>\n</ul>\n</li>\n<li>\n<span>Resources</span>\n<ul>\n<li><a href=\"https://its.ny.gov/resources\">Developer Tools</a></li>\n<li><a href=\"https://its.ny.gov/accessibility\">Accessibility</a></li>\n<li><a href=\"https://its.ny.gov/privacy\">Privacy</a></li>\n</ul>\n</li>\n</ul>\n</nys-globalfooter>",
7722
- "lang": "html"
7723
- },
7724
- {
7725
- "title": "Subheading",
7726
- "code": "<nys-globalfooter\nagencyName=\"Office of Information Technology Services\"\nagencySubheading=\"Innovating Technology for a Better New York\"\n></nys-globalfooter>",
7300
+ "title": "Simple footer",
7301
+ "code": "<nys-globalfooter\nagencyName=\"Department of Health\"\nhomepageLink=\"/\"\nagencySubheading=\"Protecting and Promoting the Health of New Yorkers\"\n>\n<span>123 Main St, Albany NY</span>\n<span>info@health.ny.gov</span>\n</nys-globalfooter>",
7727
7302
  "lang": "html"
7728
7303
  }
7729
7304
  ]
@@ -7961,38 +7536,8 @@
7961
7536
  "summary": "Agency header with navigation, mobile menu, and active link highlighting.",
7962
7537
  "examples": [
7963
7538
  {
7964
- "title": "Basic",
7965
- "code": "<nys-globalheader appName=\"User Registration Form\" agencyName=\"Office of Information Technology Services\"></nys-globalheader>",
7966
- "lang": "html"
7967
- },
7968
- {
7969
- "title": "Homepage Link",
7970
- "code": "<nys-globalheader\nagencyName=\"Office of Information Technology Services\"\nhomepageLink=\"https://its.ny.gov\"\n></nys-globalheader>",
7971
- "lang": "html"
7972
- },
7973
- {
7974
- "title": "Only Agency Name",
7975
- "code": "<nys-globalheader agencyName=\"Office of Information Technology Services\"></nys-globalheader>",
7976
- "lang": "html"
7977
- },
7978
- {
7979
- "title": "Only App Name",
7980
- "code": "<nys-globalheader appName=\"User Registration Form\"></nys-globalheader>",
7981
- "lang": "html"
7982
- },
7983
- {
7984
- "title": "With Links",
7985
- "code": "<nys-globalheader agencyName=\"Office of Information Technology Services\">\n<ul>\n<li><a href=\"https://its.ny.gov/services\">Services</a></li>\n<li><a href=\"https://its.ny.gov/get-help\">Help Center</a></li>\n<li><a href=\"https://its.ny.gov/cybersecurity\">Cybersecurity</a></li>\n<li><a href=\"https://its.ny.gov/policies\">Policies and Laws</a></li>\n<li><a href=\"https://its.ny.gov/procurement\">Procurement</a></li>\n<li><a href=\"https://its.ny.gov/about-us\">About Us</a></li>\n</ul>\n</nys-globalheader>",
7986
- "lang": "html"
7987
- },
7988
- {
7989
- "title": "User Actions",
7990
- "code": "<nys-globalheader agencyName=\"Office of Information Technology Services\">\n<nys-button slot=\"user-actions\" label=\"Log out\">\n<nys-avatar\nslot=\"prefix-icon\"\nariaLabel=\"User avatar\"\ninitials=\"NY\"\n></nys-avatar>\n</nys-button>\n</nys-globalheader>\n<nys-dropdownmenu id=\"dropdownmenu\" for=\"my-action-slot\">\n<nys-dropdownmenuitem label=\"Profile\" href=\"/profile\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Repositories & Github Pages\" href=\"/repos\"></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Organizations\" href=\"/organizations\" disabled></nys-dropdownmenuitem>\n<nys-dropdownmenuitem label=\"Sign out\" href=\"/logout\"></nys-dropdownmenuitem>\n</nys-dropdownmenu>",
7991
- "lang": "html"
7992
- },
7993
- {
7994
- "title": "With NYS Logo",
7995
- "code": "<nys-globalheader nysLogo appName=\"Admin Dashboard\"></nys-globalheader>",
7539
+ "title": "Basic header",
7540
+ "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>",
7996
7541
  "lang": "html"
7997
7542
  }
7998
7543
  ]
@@ -8038,7 +7583,7 @@
8038
7583
  }
8039
7584
  }
8040
7585
  ],
8041
- "description": "Clear one URL entry, or all cached icons (URL and inline) when no URL is given."
7586
+ "description": "Clear one or all entries from the cache."
8042
7587
  },
8043
7588
  {
8044
7589
  "kind": "function",
@@ -8057,24 +7602,6 @@
8057
7602
  }
8058
7603
  ],
8059
7604
  "description": "Fetch and parse an SVG from a URL. Returns a cloned SVGElement (safe for multiple consumers)."
8060
- },
8061
- {
8062
- "kind": "function",
8063
- "name": "parseIcon",
8064
- "return": {
8065
- "type": {
8066
- "text": "SVGElement"
8067
- }
8068
- },
8069
- "parameters": [
8070
- {
8071
- "name": "source",
8072
- "type": {
8073
- "text": "string"
8074
- }
8075
- }
8076
- ],
8077
- "description": "Parse an inline SVG source string. Results are cached by source content,\nso repeated renders of the same icon sanitize/parse once. Returns a\ncloned SVGElement (safe for multiple consumers)."
8078
7605
  }
8079
7606
  ],
8080
7607
  "exports": [
@@ -8093,14 +7620,6 @@
8093
7620
  "name": "fetchIcon",
8094
7621
  "module": "packages/nys-icon/src/icon-cache.ts"
8095
7622
  }
8096
- },
8097
- {
8098
- "kind": "js",
8099
- "name": "parseIcon",
8100
- "declaration": {
8101
- "name": "parseIcon",
8102
- "module": "packages/nys-icon/src/icon-cache.ts"
8103
- }
8104
7623
  }
8105
7624
  ]
8106
7625
  },
@@ -8148,7 +7667,7 @@
8148
7667
  }
8149
7668
  }
8150
7669
  ],
8151
- "description": "Register or replace a named icon library. All watching icons using this library will redraw.\n\nIntended for custom/external libraries — the standard NYSDS set is\nbuilt in and needs no registration. Registering under `\"default\"`\nreplaces the built-in set (escape hatch).",
7670
+ "description": "Register or replace a named icon library. All watching icons using this library will redraw.",
8152
7671
  "examples": [
8153
7672
  {
8154
7673
  "title": "Register a Font Awesome library with a custom resolver:",
@@ -8288,14 +7807,6 @@
8288
7807
  "module": "./icon-cache"
8289
7808
  }
8290
7809
  },
8291
- {
8292
- "kind": "js",
8293
- "name": "getIconLibrary",
8294
- "declaration": {
8295
- "name": "getIconLibrary",
8296
- "module": "./icon-library-registry"
8297
- }
8298
- },
8299
7810
  {
8300
7811
  "kind": "js",
8301
7812
  "name": "IconLibrary",
@@ -8304,14 +7815,6 @@
8304
7815
  "module": "./icon-library-registry"
8305
7816
  }
8306
7817
  },
8307
- {
8308
- "kind": "js",
8309
- "name": "IconResolution",
8310
- "declaration": {
8311
- "name": "IconResolution",
8312
- "module": "./icon-library-registry"
8313
- }
8314
- },
8315
7818
  {
8316
7819
  "kind": "js",
8317
7820
  "name": "registerIconLibrary",
@@ -8561,51 +8064,19 @@
8561
8064
  "summary": "SVG icon with swappable library support, size, rotation, and color options.",
8562
8065
  "examples": [
8563
8066
  {
8564
- "title": "Basic",
8565
- "code": "<nys-icon name=\"check_circle\"></nys-icon>",
8067
+ "title": "Basic icon (default NYSDS library)",
8068
+ "code": "<nys-icon name=\"check_circle\" size=\"lg\"></nys-icon>",
8566
8069
  "lang": "html"
8567
8070
  },
8568
8071
  {
8569
- "title": "ARIA Label",
8570
- "code": "<nys-icon\nname=\"edit_square\"\nariaLabel=\"Edit content\"\n></nys-icon>",
8072
+ "title": "Font Awesome icon",
8073
+ "code": "<nys-icon name=\"house\" library=\"fa\" size=\"lg\"></nys-icon>",
8571
8074
  "lang": "html"
8572
8075
  },
8573
8076
  {
8574
- "title": "Size relative",
8575
- "code": "<nys-icon\nname=\"edit_square\"\nsize=\"4xl\"\n></nys-icon>",
8077
+ "title": "Accessible icon with label",
8078
+ "code": "<nys-icon name=\"warning\" ariaLabel=\"Warning\" color=\"var(--nys-color-warning)\"></nys-icon>",
8576
8079
  "lang": "html"
8577
- },
8578
- {
8579
- "title": "Size literal",
8580
- "code": "<nys-icon\nname=\"edit_square\"\nsize=\"24\"\n></nys-icon>",
8581
- "lang": "html"
8582
- },
8583
- {
8584
- "title": "Color",
8585
- "code": "<nys-icon\nname=\"edit_square\"\ncolor=\"#db117d\"\n></nys-icon>",
8586
- "lang": "html"
8587
- },
8588
- {
8589
- "title": "Rotate",
8590
- "code": "<nys-icon\nname=\"edit_square\"\nrotate=\"20\"\n></nys-icon>",
8591
- "lang": "html"
8592
- },
8593
- {
8594
- "title": "Flip",
8595
- "code": "<nys-icon\nname=\"edit_square\"\nflip=\"vertical\"\n></nys-icon>",
8596
- "lang": "html"
8597
- },
8598
- {
8599
- "title": "External Library - Font Awesome",
8600
- "code": "<nys-icon name=\"heart\" library=\"fa\"></nys-icon>",
8601
- "lang": "html",
8602
- "render": "<nys-icon name=\"heart\" library=\"fa\"></nys-icon>\n<script data-scope=\"module\">\nregisterIconLibrary(\"fa\", {\nresolver: (name) =>\n`https://cdn.jsdelivr.net/npm/@fortawesome/fontawesome-free@6/svgs/solid/${name}.svg`,\nmutator: (svg) => {\nsvg.setAttribute(\"fill\", \"currentColor\");\n},\n});\n</script>"
8603
- },
8604
- {
8605
- "title": "External Library - Material",
8606
- "code": "<nys-icon name=\"favorite\" library=\"material\"></nys-icon>",
8607
- "lang": "html",
8608
- "render": "<nys-icon name=\"favorite\" library=\"material\"></nys-icon>\n<script data-scope=\"module\">\nregisterIconLibrary(\"material\", {\nresolver: (name) =>\n`https://fonts.gstatic.com/s/i/short-term/release/materialsymbolsoutlined/${name}/default/24px.svg`,\nmutator: (svg) => {\nsvg.setAttribute(\"fill\", \"currentColor\");\n},\n});\n</script>"
8609
8080
  }
8610
8081
  ]
8611
8082
  }
@@ -8802,40 +8273,9 @@
8802
8273
  "name": "LitElement",
8803
8274
  "package": "lit"
8804
8275
  },
8805
- "examples": [
8806
- {
8807
- "title": "Basic",
8808
- "code": "<nys-label label=\"This is a basic nys-label\"></nys-label>",
8809
- "lang": "html"
8810
- },
8811
- {
8812
- "title": "Required",
8813
- "code": "<nys-label label=\"This form is required\" flag=\"required\"></nys-label>",
8814
- "lang": "html"
8815
- },
8816
- {
8817
- "title": "Optional",
8818
- "code": "<nys-label label=\"This form is required\" flag=\"optional\"></nys-label>",
8819
- "lang": "html"
8820
- },
8821
- {
8822
- "title": "Description",
8823
- "code": "<nys-label label=\"Label Text\" description=\"Description text\"></nys-label>",
8824
- "lang": "html"
8825
- },
8826
- {
8827
- "title": "Description Slot",
8828
- "code": "<nys-label label=\"Label Text\">\n<p slot=\"description\">Rich text description passed in <strong>HERE</strong></p>\n</nys-label>",
8829
- "lang": "html"
8830
- },
8831
- {
8832
- "title": "With Tooltip",
8833
- "code": "<nys-label id=\"label-id\" label=\"This label has a tooltip\"></nys-label>\n<nys-tooltip for=\"label-id\" text=\"Tooltip text in here\"></nys-tooltip>",
8834
- "lang": "html"
8835
- }
8836
- ],
8837
8276
  "tagName": "nys-label",
8838
- "customElement": true
8277
+ "customElement": true,
8278
+ "summary": "Internal label component for form fields with flag and tooltip support."
8839
8279
  }
8840
8280
  ],
8841
8281
  "exports": [
@@ -9174,28 +8614,9 @@
9174
8614
  "summary": "Accessible modal dialog with focus trap, keyboard support, and action slots.",
9175
8615
  "examples": [
9176
8616
  {
9177
- "title": "Basic",
9178
- "code": "<nys-modal\nid=\"modal1\"\nheading=\"Update Available\"\n>\n<p>\nWould you like to install the latest version? Albany ipsum dolor sit\nEmpire, Hudson consectetur Adirondack elit, sed do MetroCard tempor\nincididunt ut Capitol et Broadway magna Niagara. Ut enim ad Erie\nveniam, quis nostrud Catskill ullamco Bronx nisi ut LongIsland ex ea\nCuomo consequat.\n</p>\n</nys-modal>",
9179
- "lang": "html",
9180
- "render": "<div id=\"modal-wrapper1\">\n<nys-button label=\"Open Modal\" onclick=\"document.querySelector('.modal1').open = true; document.getElementById('modal-wrapper1').style.padding = '100px 0'\"></nys-button>\n<nys-modal\nclass=\"modal1\"\nid=\"modal1\"\nheading=\"Update Available\"\n>\n<p>\nWould you like to install the latest version? Albany ipsum dolor sit\nEmpire, Hudson consectetur Adirondack elit, sed do MetroCard tempor\nincididunt ut Capitol et Broadway magna Niagara. Ut enim ad Erie\nveniam, quis nostrud Catskill ullamco Bronx nisi ut LongIsland ex ea\nCuomo consequat.\n</p>\n</nys-modal>\n</div>"
9181
- },
9182
- {
9183
- "title": "Subheading",
9184
- "code": "<nys-modal\nid=\"modal-subheading\"\nheading=\"Before you continue\"\nsubheading=\"Your progress has been saved automatically.\"\n>\n<p>You can safely leave this page and return later to pick up where you left off.</p>\n</nys-modal>",
9185
- "lang": "html",
9186
- "render": "<div id=\"modal-wrapper-subheading\">\n<nys-button label=\"Open Modal\" onclick=\"document.querySelector('.modal-subheading').open = true; document.getElementById('modal-wrapper-subheading').style.padding = '100px 0'\"></nys-button>\n<nys-modal\nclass=\"modal-subheading\"\nid=\"modal-subheading\"\nheading=\"Before you continue\"\nsubheading=\"Your progress has been saved automatically.\"\n>\n<p>You can safely leave this page and return later to pick up where you left off.</p>\n</nys-modal>\n</div>"
9187
- },
9188
- {
9189
- "title": "Actions Slot",
9190
- "code": "<nys-modal id=\"modal3\" heading=\"Update password?\">\n<p>\nWould you like to install the latest version? Albany ipsum dolor sit\nEmpire, Hudson consectetur Adirondack elit, sed do MetroCard tempor\nincididunt ut Capitol et Broadway magna Niagara. Ut enim ad Erie\nveniam, quis nostrud Catskill ullamco Bronx nisi ut LongIsland ex ea\nCuomo consequat.\n</p>\n<div slot=\"actions\">\n<nys-button label=\"Not now\" variant=\"outline\"></nys-button>\n<nys-button label=\"Update\"></nys-button>\n</div>\n</nys-modal>",
9191
- "lang": "html",
9192
- "render": "<div id=\"modal-wrapper3\">\n<nys-button label=\"Open Modal\" onclick=\"document.querySelector('.modal3').open = true; document.getElementById('modal-wrapper3').style.padding = '100px 0'\"></nys-button>\n<nys-modal\nclass=\"modal3\"\nid=\"modal3\"\nheading=\"Update password?\"\n>\n<p>\nWould you like to install the latest version? Albany ipsum dolor sit\nEmpire, Hudson consectetur Adirondack elit, sed do MetroCard tempor\nincididunt ut Capitol et Broadway magna Niagara. Ut enim ad Erie\nveniam, quis nostrud Catskill ullamco Bronx nisi ut LongIsland ex ea\nCuomo consequat.\n</p>\n<div slot=\"actions\">\n<nys-button label=\"Not now\" variant=\"outline\" onclick=\"document.querySelector('.modal3').open = false; document.getElementById('modal-wrapper3').style.padding = '0'\"></nys-button>\n<nys-button label=\"Update\" onclick=\"alert('Mock Alert: Changes saved!'); document.querySelector('.modal3').open = false; document.getElementById('modal-wrapper3').style.padding = '0'\"></nys-button>\n</div>\n</nys-modal>\n</div>"
9193
- },
9194
- {
9195
- "title": "Mandatory Action",
9196
- "code": "<nys-modal\nid=\"modal4\"\nheading=\"There is no way to X out of here\"\nsubheading=\"Don't use this prop unless you add in the actions slot so the user does not get stuck in here.\"\nmandatory\n>\n<div slot=\"actions\">\n<nys-button label=\"Get me out\"></nys-button>\n</div>\n</nys-modal>",
9197
- "lang": "html",
9198
- "render": "<div id=\"modal-wrapper4\">\n<nys-button label=\"Open Modal\" onclick=\"document.querySelector('.modal4').open = true; document.getElementById('modal-wrapper4').style.padding = '100px 0'\"></nys-button>\n<nys-modal\nclass=\"modal4\"\nid=\"modal4\"\nheading=\"There is no way to X out of here\"\nsubheading=\"Don't use this prop unless you add in the actions slot so the user does not get stuck in here.\"\nmandatory\n>\n<div slot=\"actions\">\n<nys-button label=\"Get me out\" onclick=\"alert('Ok, ok. You can go now.'); document.querySelector('.modal4').open = false; document.getElementById('modal-wrapper4').style.padding = '0'\"></nys-button>\n</div>\n</nys-modal>\n</div>"
8617
+ "title": "Basic modal",
8618
+ "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>",
8619
+ "lang": "html"
9199
8620
  }
9200
8621
  ]
9201
8622
  }
@@ -9407,19 +8828,9 @@
9407
8828
  "summary": "Page navigation with numbered links, prev/next buttons, and responsive layout.",
9408
8829
  "examples": [
9409
8830
  {
9410
- "title": "Basic",
9411
- "code": "<nys-pagination currentPage=\"5\" totalPages=\"10\"></nys-pagination>",
9412
- "lang": "html"
9413
- },
9414
- {
9415
- "title": "First Page",
8831
+ "title": "Basic pagination",
9416
8832
  "code": "<nys-pagination currentPage=\"1\" totalPages=\"10\"></nys-pagination>",
9417
8833
  "lang": "html"
9418
- },
9419
- {
9420
- "title": "Last Page",
9421
- "code": "<nys-pagination currentPage=\"10\" totalPages=\"10\"></nys-pagination>",
9422
- "lang": "html"
9423
8834
  }
9424
8835
  ]
9425
8836
  }
@@ -9776,8 +9187,8 @@
9776
9187
  "summary": "Radio button for single selection from mutually exclusive options. This is a READONLY data component.",
9777
9188
  "examples": [
9778
9189
  {
9779
- "title": "Pre-selected",
9780
- "code": "<nys-radiogroup label=\"Select borough\">\n<nys-radiobutton name=\"borough\" value=\"bronx\" label=\"The Bronx\" checked></nys-radiobutton>\n<nys-radiobutton name=\"borough\" value=\"brooklyn\" label=\"Brooklyn\"></nys-radiobutton>\n</nys-radiogroup>",
9190
+ "title": "Radio group",
9191
+ "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>",
9781
9192
  "lang": "html"
9782
9193
  }
9783
9194
  ]
@@ -10409,54 +9820,9 @@
10409
9820
  "summary": "Container for grouping radio buttons as a single form control.",
10410
9821
  "examples": [
10411
9822
  {
10412
- "title": "Basic",
9823
+ "title": "Basic radio group",
10413
9824
  "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>",
10414
9825
  "lang": "html"
10415
- },
10416
- {
10417
- "title": "Tile",
10418
- "code": "<nys-radiogroup label=\"Select borough\" tile>\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>",
10419
- "lang": "html"
10420
- },
10421
- {
10422
- "title": "Required",
10423
- "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>",
10424
- "lang": "html"
10425
- },
10426
- {
10427
- "title": "Optional",
10428
- "code": "<nys-radiogroup label=\"Select borough\" optional>\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>",
10429
- "lang": "html"
10430
- },
10431
- {
10432
- "title": "Disabled",
10433
- "code": "<nys-radiogroup label=\"Select borough\">\n<nys-radiobutton name=\"borough\" value=\"bronx\" label=\"The Bronx\" disabled></nys-radiobutton>\n<nys-radiobutton name=\"borough\" value=\"brooklyn\" label=\"Brooklyn\" disabled></nys-radiobutton>\n</nys-radiogroup>",
10434
- "lang": "html"
10435
- },
10436
- {
10437
- "title": "Size Small",
10438
- "code": "<nys-radiogroup label=\"Select borough\" size=\"sm\">\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>",
10439
- "lang": "html"
10440
- },
10441
- {
10442
- "title": "Other Option",
10443
- "code": "<nys-radiogroup label=\"Select borough\">\n<nys-radiobutton name=\"borough\" value=\"bronx\" label=\"The Bronx\"></nys-radiobutton>\n<nys-radiobutton name=\"borough\" value=\"\" label=\"Other\" other></nys-radiobutton>\n</nys-radiogroup>",
10444
- "lang": "html"
10445
- },
10446
- {
10447
- "title": "Error Message",
10448
- "code": "<nys-radiogroup label=\"Select borough\" showError errorMessage=\"Please select a borough\">\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>",
10449
- "lang": "html"
10450
- },
10451
- {
10452
- "title": "Description",
10453
- "code": "<nys-radiogroup label=\"Select borough\" description=\"Your primary residence in NYC.\">\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>",
10454
- "lang": "html"
10455
- },
10456
- {
10457
- "title": "Description Slot",
10458
- "code": "<nys-radiogroup label=\"Select borough\">\n<div slot=\"description\">Your primary <strong>residence</strong> in NYC.</div>\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>",
10459
- "lang": "html"
10460
9826
  }
10461
9827
  ]
10462
9828
  }
@@ -10630,7 +9996,14 @@
10630
9996
  },
10631
9997
  "tagName": "nys-option",
10632
9998
  "customElement": true,
10633
- "summary": "Option item for nys-select dropdown."
9999
+ "summary": "Option item for nys-select dropdown.",
10000
+ "examples": [
10001
+ {
10002
+ "title": "Basic options",
10003
+ "code": "<nys-select>\n<nys-option value=\"ny\">New York</nys-option>\n<nys-option value=\"ca\" disabled>California</nys-option>\n</nys-select>",
10004
+ "lang": "html"
10005
+ }
10006
+ ]
10634
10007
  }
10635
10008
  ],
10636
10009
  "exports": [
@@ -11127,63 +10500,14 @@
11127
10500
  "summary": "Dropdown select for choosing one option from a list.",
11128
10501
  "examples": [
11129
10502
  {
11130
- "title": "Basic",
11131
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\">\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
11132
- "lang": "html"
11133
- },
11134
- {
11135
- "title": "Default value",
11136
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\">\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\" selected></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
11137
- "lang": "html"
11138
- },
11139
- {
11140
- "title": "Option Group",
11141
- "code": "<nys-select\nlabel=\"Which New York State service are you contacting us about?\"\ndescription=\"This is for demo purposes and the list might not be exhaustive.\"\n>\n<optgroup label=\"Transportation Services\">\n<option value=\"mta\">MTA / Public Transit</option>\n<option value=\"dmv\">Department of Motor Vehicles (DMV)</option>\n<option value=\"highway\">Highway Maintenance</option>\n</optgroup>\n<optgroup label=\"Health & Human Services\">\n<option value=\"medicaid\">Medicaid / Health Insurance</option>\n<option value=\"mental-health\">Mental Health Support</option>\n<option value=\"child-family\">Child and Family Services</option>\n</optgroup>\n<optgroup label=\"Public Safety\">\n<option value=\"state-police\">State Police</option>\n<option value=\"emergency-management\">Emergency Management</option>\n<option value=\"fire-safety\">Fire Safety</option>\n</optgroup>\n<optgroup label=\"Environment & Energy\">\n<option value=\"environmental-conservation\">\nEnvironmental Conservation\n</option>\n<option value=\"clean-energy\">Clean Energy Programs</option>\n<option value=\"waste-management\">Waste Management</option>\n</optgroup>\n</nys-select>",
11142
- "lang": "html"
11143
- },
11144
- {
11145
- "title": "Disabled",
11146
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\" disabled>\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
11147
- "lang": "html"
11148
- },
11149
- {
11150
- "title": "Disabled Option",
11151
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\">\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\" disabled></option>\n<option value=\"queens\" label=\"Queens\" disabled></option>\n</nys-select>",
11152
- "lang": "html"
11153
- },
11154
- {
11155
- "title": "Required",
11156
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\" required>\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
11157
- "lang": "html"
11158
- },
11159
- {
11160
- "title": "Optional",
11161
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\" optional>\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
11162
- "lang": "html"
11163
- },
11164
- {
11165
- "title": "Width small",
11166
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\" width=\"sm\">\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
11167
- "lang": "html"
11168
- },
11169
- {
11170
- "title": "Width medium",
11171
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\" width=\"md\">\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
10503
+ "title": "Basic select",
10504
+ "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>",
11172
10505
  "lang": "html"
11173
10506
  },
11174
10507
  {
11175
- "title": "Width large",
11176
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\" width=\"lg\">\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
10508
+ "title": "With option groups",
10509
+ "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>",
11177
10510
  "lang": "html"
11178
- },
11179
- {
11180
- "title": "Slotted Description",
11181
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\">\n<label slot=\"description\">This is a slotted description</label>\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>",
11182
- "lang": "html"
11183
- },
11184
- {
11185
- "title": "Error Message",
11186
- "code": "<nys-select label=\"Select your favorite borough\" id=\"borough\" errorMessage=\"You did not select a borough\" showError>\n<option value=\"bronx\" label=\"The Bronx\"></option>\n<option value=\"brooklyn\" label=\"Brooklyn\"></option>\n<option value=\"manhattan\" label=\"Manhattan\"></option>\n<option value=\"staten_island\" label=\"Staten Island\"></option>\n<option value=\"queens\" label=\"Queens\"></option>\n</nys-select>"
11187
10511
  }
11188
10512
  ]
11189
10513
  }
@@ -11300,13 +10624,13 @@
11300
10624
  "summary": "Skip navigation link for keyboard accessibility. Hidden until focused.",
11301
10625
  "examples": [
11302
10626
  {
11303
- "title": "Basic",
11304
- "code": "<nys-skipnav></nys-skipnav>",
10627
+ "title": "Default skip link",
10628
+ "code": "<nys-skipnav></nys-skipnav>\n<main id=\"main-content\">...</main>",
11305
10629
  "lang": "html"
11306
10630
  },
11307
10631
  {
11308
10632
  "title": "Custom target",
11309
- "code": "<nys-skipnav href=\"#content-area\"></nys-skipnav>\n<p id=\"content-area\">...</p>",
10633
+ "code": "<nys-skipnav href=\"#content-area\"></nys-skipnav>",
11310
10634
  "lang": "html"
11311
10635
  }
11312
10636
  ]
@@ -11494,7 +10818,19 @@
11494
10818
  },
11495
10819
  "tagName": "nys-step",
11496
10820
  "customElement": true,
11497
- "summary": "Individual step for use within nys-stepper with navigation support."
10821
+ "summary": "Individual step for use within nys-stepper with navigation support.",
10822
+ "examples": [
10823
+ {
10824
+ "title": "Step with page navigation",
10825
+ "code": "<nys-step label=\"Personal Info\" href=\"/step-1\"></nys-step>",
10826
+ "lang": "html"
10827
+ },
10828
+ {
10829
+ "title": "Step with SPA navigation (no href)",
10830
+ "code": "step.addEventListener('nys-step-click', (e) => {\ne.preventDefault(); // no href set, but good practice\nshowStepContent(e.detail.label);\n});",
10831
+ "lang": "js"
10832
+ }
10833
+ ]
11498
10834
  }
11499
10835
  ],
11500
10836
  "exports": [
@@ -11705,16 +11041,24 @@
11705
11041
  "summary": "Multi-step progress indicator with navigation and mobile-friendly compact view.",
11706
11042
  "examples": [
11707
11043
  {
11708
- "title": "Basic",
11709
- "code": "<div class=\"nys-grid-row\">\n<nys-stepper\nid=\"stepper\"\nname=\"stepper\"\nlabel=\"Register for Design System Office Hours\"\nclass=\"nys-desktop:nys-grid-col-3\"\n>\n<nys-step label=\"Personal Details\" href=\"/nys-stepper/personal.html\"></nys-step>\n<nys-step label=\"Team Info\" selected href=\"/nys-stepper/team.html\"></nys-step>\n<nys-step label=\"Usage Survey\" current href=\"/nys-stepper/survey.html\"></nys-step>\n<nys-step label=\"Newsletter Opt-In\" href=\"/nys-stepper/newsletter.html\"></nys-step>\n<div slot=\"actions\">\n<nys-button variant=\"outline\" label=\"Save & Exit\" fullWidth></nys-button>\n</div>\n</nys-stepper>\n<div class=\"nys-desktop:nys-grid-col-9\" id=\"nys-stepper-content\">\nLoading...\n</div>\n</div>",
11710
- "lang": "html",
11711
- "render": "<div class=\"nys-grid-row\">\n<nys-stepper\nid=\"stepper\"\nname=\"stepper\"\nlabel=\"Register for Design System Office Hours\"\nclass=\"nys-desktop:nys-grid-col-3\"\n>\n<nys-step label=\"Personal Details\" href=\"/nys-stepper/personal.html\"></nys-step>\n<nys-step label=\"Team Info\" selected href=\"/nys-stepper/team.html\"></nys-step>\n<nys-step label=\"Usage Survey\" current href=\"/nys-stepper/survey.html\"></nys-step>\n<nys-step label=\"Newsletter Opt-In\" href=\"/nys-stepper/newsletter.html\"></nys-step>\n</nys-stepper>\n<div class=\"nys-desktop:nys-grid-col-9\" id=\"nys-stepper-content\">\nLoading...\n</div>\n</div>\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", async () => {\nconst stepper = document.querySelector(\"nys-stepper\");\nif (stepper?.updateComplete) await stepper.updateComplete;\nconst selectedStep = document.querySelector(\"nys-step[selected]\");\nconst href = selectedStep?.getAttribute(\"href\");\nif (!href) return;\nconst res = await fetch(href);\nif (!res.ok) return;\nconst container = document.querySelector(\"#nys-stepper-content\");\nif (container) container.innerHTML = await res.text();\n});\n\ndocument.addEventListener(\"nys-step-click\", async (e) => {\nconst href = e.detail?.href;\nif (!href) return;\ne.preventDefault();\nconst res = await fetch(href);\nif (!res.ok) return;\nconst container = document.querySelector(\"#nys-stepper-content\");\nif (container) container.innerHTML = await res.text();\n});\n</script>"
11044
+ "title": "Basic stepper",
11045
+ "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>",
11046
+ "lang": "html"
11047
+ },
11048
+ {
11049
+ "title": "Grid layout with sidebar placement",
11050
+ "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>",
11051
+ "lang": "html"
11052
+ },
11053
+ {
11054
+ "title": "Navigation buttons in actions slot",
11055
+ "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>",
11056
+ "lang": "html"
11712
11057
  },
11713
11058
  {
11714
- "title": "Actions slot",
11715
- "code": "<div class=\"nys-grid-row\">\n<nys-stepper\nid=\"stepper\"\nname=\"stepper\"\nlabel=\"Register for Design System Office Hours\"\nclass=\"nys-desktop:nys-grid-col-3\"\n>\n<nys-step label=\"Personal Details\" href=\"/nys-stepper/personal.html\"></nys-step>\n<nys-step label=\"Team Info\" selected href=\"/nys-stepper/team.html\"></nys-step>\n<nys-step label=\"Usage Survey\" current href=\"/nys-stepper/survey.html\"></nys-step>\n<nys-step label=\"Newsletter Opt-In\" href=\"/nys-stepper/newsletter.html\"></nys-step>\n<div slot=\"actions\">\n<nys-button variant=\"outline\" label=\"Save & Exit\" fullWidth></nys-button>\n</div>\n</nys-stepper>\n<div class=\"nys-desktop:nys-grid-col-9\" id=\"nys-stepper-content\">\nLoading...\n</div>\n</div>",
11716
- "lang": "html",
11717
- "render": "<div class=\"nys-grid-row\">\n<nys-stepper\nid=\"stepper\"\nname=\"stepper\"\nlabel=\"Register for Design System Office Hours\"\nclass=\"nys-desktop:nys-grid-col-3\"\n>\n<nys-step label=\"Personal Details\" href=\"/nys-stepper/personal.html\"></nys-step>\n<nys-step label=\"Team Info\" selected href=\"/nys-stepper/team.html\"></nys-step>\n<nys-step label=\"Usage Survey\" current href=\"/nys-stepper/survey.html\"></nys-step>\n<nys-step label=\"Newsletter Opt-In\" href=\"/nys-stepper/newsletter.html\"></nys-step>\n<div slot=\"actions\">\n<nys-button variant=\"outline\" label=\"Save & Exit\" fullWidth></nys-button>\n</div>\n</nys-stepper>\n<div class=\"nys-desktop:nys-grid-col-9\" id=\"nys-stepper-content\">\nLoading...\n</div>\n</div>\n<script>\ndocument.addEventListener(\"DOMContentLoaded\", async () => {\nconst stepper = document.querySelector(\"nys-stepper\");\nif (stepper?.updateComplete) await stepper.updateComplete;\nconst selectedStep = document.querySelector(\"nys-step[selected]\");\nconst href = selectedStep?.getAttribute(\"href\");\nif (!href) return;\nconst res = await fetch(href);\nif (!res.ok) return;\nconst container = document.querySelector(\"#nys-stepper-content\");\nif (container) container.innerHTML = await res.text();\n});\n\ndocument.addEventListener(\"nys-step-click\", async (e) => {\nconst href = e.detail?.href;\nif (!href) return;\ne.preventDefault();\nconst res = await fetch(href);\nif (!res.ok) return;\nconst container = document.querySelector(\"#nys-stepper-content\");\nif (container) container.innerHTML = await res.text();\n});\n</script>"
11059
+ "title": "SPA / programmatic navigation",
11060
+ "code": "let currentStep = 0; // furthest reached\nlet viewingStep = 0; // currently displayed\n\nfunction updateStepper(steps) {\nsteps.forEach((step, i) => {\nstep.toggleAttribute('current', i === currentStep);\nstep.toggleAttribute('selected', i === viewingStep);\n});\n}\n\ndocument.querySelector('nys-stepper').addEventListener('nys-step-click', (e) => {\ne.preventDefault();\nconst steps = Array.from(document.querySelectorAll('nys-step'));\nconst clicked = e.composedPath().find(el => el.tagName?.toLowerCase() === 'nys-step');\nconst index = steps.indexOf(clicked);\nif (index !== -1) { viewingStep = index; updateStepper(steps); }\n});\n\n// Advance to next step (call on form submit / \"Continue\" click)\nfunction advance(steps) {\nif (currentStep < steps.length - 1) {\ncurrentStep++;\nviewingStep = currentStep;\nupdateStepper(steps);\n}\n}",
11061
+ "lang": "js"
11718
11062
  }
11719
11063
  ]
11720
11064
  }
@@ -11954,13 +11298,8 @@
11954
11298
  "customElement": true,
11955
11299
  "examples": [
11956
11300
  {
11957
- "title": "Disabled",
11958
- "code": "<nys-tabgroup name=\"Account Settings\">\n<nys-tab label=\"Profile\"></nys-tab>\n<nys-tab label=\"Security\"></nys-tab>\n<nys-tab label=\"Notifications\" disabled></nys-tab>\n<nys-tabpanel><p>Manage your profile information.</p></nys-tabpanel>\n<nys-tabpanel><p>Update your password and 2FA settings.</p></nys-tabpanel>\n<nys-tabpanel><p>Notification preferences (coming soon).</p></nys-tabpanel>\n</nys-tabgroup>",
11959
- "lang": "html"
11960
- },
11961
- {
11962
- "title": "Preselected",
11963
- "code": "<nys-tabgroup name=\"Reports\">\n<nys-tab label=\"Summary\"></nys-tab>\n<nys-tab label=\"Details\" selected></nys-tab>\n<nys-tabpanel><p>Summary view</p></nys-tabpanel>\n<nys-tabpanel><p>Detailed view (shown by default)</p></nys-tabpanel>\n</nys-tabgroup>",
11301
+ "title": "`<nys-tab>` and `<nys-tabpanel>` should always be wrapped by `<nys-tabgroup>`",
11302
+ "code": "<!-- Always place <nys-tab> elements inside a <nys-tabgroup>. -->\n<nys-tabgroup name=\"My Tabs\">\n<nys-tab label=\"Overview\"></nys-tab>\n<nys-tab label=\"Details\" selected></nys-tab>\n<nys-tab label=\"Archived\" disabled></nys-tab>\n<nys-tabpanel><p>Overview content</p></nys-tabpanel>\n<nys-tabpanel><p>Details content (shown by default)</p></nys-tabpanel>\n<nys-tabpanel><p>Archived content</p></nys-tabpanel>\n</nys-tabgroup>",
11964
11303
  "lang": "html"
11965
11304
  }
11966
11305
  ]
@@ -12222,14 +11561,13 @@
12222
11561
  "customElement": true,
12223
11562
  "examples": [
12224
11563
  {
12225
- "title": "Basic",
12226
- "code": "<nys-tabgroup>\n<nys-tab label=\"Marcy\"></nys-tab>\n<nys-tab label=\"Algonquin\"></nys-tab>\n<nys-tab label=\"Haystack\"></nys-tab>\n// rest of tabs\n<nys-tabpanel\n>Mount Marcy is the tallest peak in the Adirondacks. It has an elevation\nof 5344 feet with 3166 feet of elevation gain. The roundtrip hike to the\ntop is 14.8 miles and is an out-and-back route.\n</nys-tabpanel>\n<nys-tabpanel\n>Algonquin Peak is the 2nd tallest peak in the Adirondacks. It has an\nelevation of 5114 feet with 3050 feet of elevation gain. The roundtrip\nhike to the top is 7.8 miles and is an out-and-back route.</nys-tabpanel\n>\n<nys-tabpanel\n>Mount Haystack is the 3rd tallest peak in the Adirondacks. It has an\nelevation of 4960 feet with 4000 feet of elevation gain. The roundtrip\nhike to the top is 16.4 miles and is an out-and-back\nroute.</nys-tabpanel\n>\n// rest of tab panel content\n</nys-tabgroup>",
12227
- "lang": "html",
12228
- "render": "<nys-tabgroup>\n<nys-tab label=\"Marcy\"></nys-tab>\n<nys-tab label=\"Algonquin\"></nys-tab>\n<nys-tab label=\"Haystack\"></nys-tab>\n<nys-tab label=\"Skylight\" id=\"tab4\"></nys-tab>\n<nys-tab label=\"Whiteface\" id=\"tab5\"></nys-tab>\n<nys-tabpanel\n>Mount Marcy is the tallest peak in the Adirondacks. It has an elevation\nof 5344 feet with 3166 feet of elevation gain. The roundtrip hike to the\ntop is 14.8 miles and is an out-and-back route.\n</nys-tabpanel>\n<nys-tabpanel\n>Algonquin Peak is the 2nd tallest peak in the Adirondacks. It has an\nelevation of 5114 feet with 3050 feet of elevation gain. The roundtrip\nhike to the top is 7.8 miles and is an out-and-back route.</nys-tabpanel\n>\n<nys-tabpanel\n>Mount Haystack is the 3rd tallest peak in the Adirondacks. It has an\nelevation of 4960 feet with 4000 feet of elevation gain. The roundtrip\nhike to the top is 16.4 miles and is an out-and-back\nroute.</nys-tabpanel\n>\n<nys-tabpanel\n>Mount Skylight is the 4th tallest peak in the Adirondacks. It has an\nelevation of 4926 feet with 5100 feet of elevation gain. The roundtrip\nhike to the top is 16 miles and is an out-and-back route.</nys-tabpanel\n>\n<nys-tabpanel\n>Whiteface is the 5th tallest peak in the Adirondacks. It has an\nelevation of 4867 feet with 3050 feet of elevation gain. The roundtrip\nhike to the top is 7.2 miles and is an out-and-back route.</nys-tabpanel\n>\n<p style=\"padding: 1rem;\">\n<strong>Note:</strong> The content in the tab panels was gathered from\n<a href=\"https://www.lakeplacid.com/do/outdoors/summerfall/hiking\"\n>lakeplacid.com</a\n>\nand may not be completely accurate. This is meant to be a demo of how\nthe component works, not a hiking guide.\n</p>\n</nys-tabgroup>"
11564
+ "title": "Disable a tab using the `disabled` attribute on `<nys-tab>`.",
11565
+ "code": "<nys-tabgroup name=\"Account Settings\">\n<nys-tab label=\"Profile\"></nys-tab>\n<nys-tab label=\"Security\"></nys-tab>\n<nys-tab label=\"Notifications\" disabled></nys-tab>\n<nys-tabpanel><p>Manage your profile information.</p></nys-tabpanel>\n<nys-tabpanel><p>Update your password and 2FA settings.</p></nys-tabpanel>\n<nys-tabpanel><p>Notification preferences (coming soon).</p></nys-tabpanel>\n</nys-tabgroup>",
11566
+ "lang": "html"
12229
11567
  },
12230
11568
  {
12231
- "title": "Explicit Ordering",
12232
- "code": "<nys-tabgroup id=\"explicit-ordering\">\n<nys-tab label=\"1st Tab\" id=\"tab1\"></nys-tab>\n<nys-tab label=\"2nd Tab\" id=\"tab2\"></nys-tab>\n<nys-tab label=\"3rd Tab\" id=\"tab3\"></nys-tab>\n<nys-tabpanel aria-labelledby=\"tab2\">Content for tab 2</nys-tabpanel>\n<nys-tabpanel aria-labelledby=\"tab3\">Content for tab 3</nys-tabpanel>\n<nys-tabpanel aria-labelledby=\"tab1\">Content for tab 1</nys-tabpanel>\n</nys-tabgroup>",
11569
+ "title": "Pre-select a tab using the `selected` attribute on `<nys-tab>`.",
11570
+ "code": "<nys-tabgroup name=\"Reports\">\n<nys-tab label=\"Summary\"></nys-tab>\n<nys-tab label=\"Details\" selected></nys-tab>\n<nys-tabpanel><p>Summary view</p></nys-tabpanel>\n<nys-tabpanel><p>Detailed view (shown by default)</p></nys-tabpanel>\n</nys-tabgroup>",
12233
11571
  "lang": "html"
12234
11572
  }
12235
11573
  ]
@@ -12299,7 +11637,14 @@
12299
11637
  "package": "lit"
12300
11638
  },
12301
11639
  "tagName": "nys-tabpanel",
12302
- "customElement": true
11640
+ "customElement": true,
11641
+ "examples": [
11642
+ {
11643
+ "title": "Panel content is wrapped by `<nys-tabpanel>`.",
11644
+ "code": "<!-- Panels are paired by position with <nys-tab> elements in the same <nys-tabgroup>. -->\n<nys-tabgroup name=\"Steps\">\n<nys-tab label=\"Step 1\"></nys-tab>\n<nys-tab label=\"Step 2\"></nys-tab>\n<nys-tabpanel>\n<h2>Step 1: Enter your information</h2>\n<p>Fill out the form below.</p>\n</nys-tabpanel>\n<nys-tabpanel>\n<h2>Step 2: Review and submit</h2>\n<p>Confirm your details before submitting.</p>\n</nys-tabpanel>\n</nys-tabgroup>",
11645
+ "lang": "html"
11646
+ }
11647
+ ]
12303
11648
  }
12304
11649
  ],
12305
11650
  "exports": [
@@ -12664,33 +12009,6 @@
12664
12009
  "name": "LitElement",
12665
12010
  "package": "lit"
12666
12011
  },
12667
- "examples": [
12668
- {
12669
- "title": "Basic",
12670
- "code": "<nys-table id=\"table1\" name=\"table1\">\n<table>\n<caption>New York State High Peaks and Popular Hikes</caption>\n<tr><th>Mountain</th><th>Peak Height (ft)</th><th>Hike Name</th></tr>\n<tr><td>Marcy</td><td>5,344</td><td>Van Hoevenberg Trail</td></tr>\n<tr><td>Algonquin</td><td>5,114</td><td>Northeast Trail</td></tr>\n<tr><td>Haystack</td><td>4,960</td><td>Johns Brook Trail</td></tr>\n<tr><td>Skylight</td><td>4,926</td><td>Lake Tear Trail</td></tr>\n<tr><td>Whiteface</td><td>4,867</td><td>Whiteface Mountain Trail</td></tr>\n</table>\n</nys-table>",
12671
- "lang": "html"
12672
- },
12673
- {
12674
- "title": "Striped",
12675
- "code": "<nys-table id=\"table2\" name=\"table2\" striped>\n<table>\n<caption>New York State High Peaks and Popular Hikes</caption>\n<tr><th>Mountain</th><th>Peak Height (ft)</th><th>Hike Name</th></tr>\n<tr><td>Marcy</td><td>5,344</td><td>Van Hoevenberg Trail</td></tr>\n<tr><td>Haystack</td><td>4,960</td><td>Johns Brook Trail</td></tr>\n<tr><td>Skylight</td><td>4,926</td><td>Lake Tear Trail</td></tr>\n<tr><td>Whiteface</td><td>4,867</td><td>Whiteface Mountain Trail</td></tr>\n</table>\n</nys-table>",
12676
- "lang": "html"
12677
- },
12678
- {
12679
- "title": "Bordered",
12680
- "code": "<nys-table id=\"table3\" name=\"table3\" bordered>\n<table>\n<caption>New York State High Peaks and Popular Hikes</caption>\n<tr><th>Mountain</th><th>Peak Height (ft)</th><th>Hike Name</th></tr>\n<tr><td>Marcy</td><td>5,344</td><td>Van Hoevenberg Trail</td></tr>\n<tr><td>Haystack</td><td>4,960</td><td>Johns Brook Trail</td></tr>\n<tr><td>Skylight</td><td>4,926</td><td>Lake Tear Trail</td></tr>\n<tr><td>Whiteface</td><td>4,867</td><td>Whiteface Mountain Trail</td></tr>\n</table>\n</nys-table>",
12681
- "lang": "html"
12682
- },
12683
- {
12684
- "title": "Sortable",
12685
- "code": "<nys-table id=\"table4\" name=\"table4\" sortable>\n<table>\n<caption>New York State High Peaks and Popular Hikes</caption>\n<tr><th>Mountain</th><th>Peak Height (ft)</th><th>Hike Name</th></tr>\n<tr><td>Marcy</td><td>5,344</td><td>Van Hoevenberg Trail</td></tr>\n<tr><td>Haystack</td><td>4,960</td><td>Johns Brook Trail</td></tr>\n<tr><td>Skylight</td><td>4,926</td><td>Lake Tear Trail</td></tr>\n<tr><td>Whiteface</td><td>4,867</td><td>Whiteface Mountain Trail</td></tr>\n</table>\n</nys-table>",
12686
- "lang": "html"
12687
- },
12688
- {
12689
- "title": "Downloadable",
12690
- "code": "<nys-table id=\"table5\" name=\"table5\" download=\"path/to/downloadable/version/of/table.filetype\">\n<table>\n<caption>New York State High Peaks and Popular Hikes</caption>\n<tr><th>Mountain</th><th>Peak Height (ft)</th><th>Hike Name</th></tr>\n<tr><td>Marcy</td><td>5,344</td><td>Van Hoevenberg Trail</td></tr>\n<tr><td>Haystack</td><td>4,960</td><td>Johns Brook Trail</td></tr>\n<tr><td>Skylight</td><td>4,926</td><td>Lake Tear Trail</td></tr>\n<tr><td>Whiteface</td><td>4,867</td><td>Whiteface Mountain Trail</td></tr>\n</table>\n</nys-table>",
12691
- "lang": "html"
12692
- }
12693
- ],
12694
12012
  "tagName": "nys-table",
12695
12013
  "customElement": true
12696
12014
  }
@@ -12833,7 +12151,7 @@
12833
12151
  "text": "boolean"
12834
12152
  },
12835
12153
  "default": "false",
12836
- "description": "Makes textarea readonly but focusable.",
12154
+ "description": "Makes textarea read-only but focusable.",
12837
12155
  "attribute": "readonly",
12838
12156
  "reflects": true
12839
12157
  },
@@ -13203,7 +12521,7 @@
13203
12521
  "text": "boolean"
13204
12522
  },
13205
12523
  "default": "false",
13206
- "description": "Makes textarea readonly but focusable.",
12524
+ "description": "Makes textarea read-only but focusable.",
13207
12525
  "fieldName": "readonly",
13208
12526
  "propName": "readonly"
13209
12527
  },
@@ -13327,58 +12645,13 @@
13327
12645
  "summary": "Multi-line text input for comments, descriptions, and feedback.",
13328
12646
  "examples": [
13329
12647
  {
13330
- "title": "Basic",
13331
- "code": "<nys-textarea label=\"Comments\"></nys-textarea>",
13332
- "lang": "html"
13333
- },
13334
- {
13335
- "title": "Disabled",
13336
- "code": "<nys-textarea label=\"Comments\" disabled></nys-textarea>",
12648
+ "title": "Basic textarea",
12649
+ "code": "<nys-textarea label=\"Comments\" rows=\"4\"></nys-textarea>",
13337
12650
  "lang": "html"
13338
12651
  },
13339
12652
  {
13340
- "title": "Readonly",
13341
- "code": "<nys-textarea label=\"Comments\" readonly value=\"You can see me but not edit me\"></nys-textarea>",
13342
- "lang": "html"
13343
- },
13344
- {
13345
- "title": "Required",
13346
- "code": "<nys-textarea label=\"Describe the incident\" required></nys-textarea>",
13347
- "lang": "html"
13348
- },
13349
- {
13350
- "title": "Optional",
13351
- "code": "<nys-textarea label=\"Comments\" optional></nys-textarea>",
13352
- "lang": "html"
13353
- },
13354
- {
13355
- "title": "Max length",
13356
- "code": "<nys-textarea label=\"Comments\" maxlength=\"100\"></nys-textarea>",
13357
- "lang": "html"
13358
- },
13359
- {
13360
- "title": "Width Small",
13361
- "code": "<nys-textarea label=\"Comments\" width=\"sm\"></nys-textarea>",
13362
- "lang": "html"
13363
- },
13364
- {
13365
- "title": "Width Medium",
13366
- "code": "<nys-textarea label=\"Comments\" width=\"md\"></nys-textarea>",
13367
- "lang": "html"
13368
- },
13369
- {
13370
- "title": "Width Large",
13371
- "code": "<nys-textarea label=\"Comments\" width=\"lg\"></nys-textarea>",
13372
- "lang": "html"
13373
- },
13374
- {
13375
- "title": "Description",
13376
- "code": "<nys-textarea label=\"Describe the incident\" description=\"Please provide details\"></nys-textarea>",
13377
- "lang": "html"
13378
- },
13379
- {
13380
- "title": "Description Slot",
13381
- "code": "<nys-textarea label=\"Describe the incident\">\n<div slot=\"description\">Please provide details</div>\n</nys-textarea>",
12653
+ "title": "Required with description",
12654
+ "code": "<nys-textarea label=\"Describe the incident\" description=\"Please provide details\" required></nys-textarea>",
13382
12655
  "lang": "html"
13383
12656
  }
13384
12657
  ]
@@ -14161,68 +13434,23 @@
14161
13434
  "summary": "Text input for short single-line data with validation and masking support.",
14162
13435
  "examples": [
14163
13436
  {
14164
- "title": "Basic",
14165
- "code": "<nys-textinput label=\"Full Name\"></nys-textinput>",
14166
- "lang": "html"
14167
- },
14168
- {
14169
- "title": "Disabled",
14170
- "code": "<nys-textinput label=\"Email Address\" disabled></nys-textinput>",
14171
- "lang": "html"
14172
- },
14173
- {
14174
- "title": "Readonly",
14175
- "code": "<nys-textinput label=\"Email Address\" readonly value=\"You can see me but not edit me\"></nys-textinput>",
14176
- "lang": "html"
14177
- },
14178
- {
14179
- "title": "Required",
14180
- "code": "<nys-textinput label=\"Email Address\" required></nys-textinput>",
14181
- "lang": "html"
14182
- },
14183
- {
14184
- "title": "Optional",
14185
- "code": "<nys-textinput label=\"Email Address\" optional></nys-textinput>",
14186
- "lang": "html"
14187
- },
14188
- {
14189
- "title": "Width Small",
14190
- "code": "<nys-textinput label=\"Zip Code\" width=\"sm\"></nys-textinput>",
14191
- "lang": "html"
14192
- },
14193
- {
14194
- "title": "Width Medium",
14195
- "code": "<nys-textinput label=\"City\" width=\"md\"></nys-textinput>",
14196
- "lang": "html"
14197
- },
14198
- {
14199
- "title": "Width Large",
14200
- "code": "<nys-textinput label=\"Email Address\" width=\"lg\"></nys-textinput>",
14201
- "lang": "html"
14202
- },
14203
- {
14204
- "title": "Description",
14205
- "code": "<nys-textinput label=\"Email Address\" description=\"Only valid ny.gov emails are accepted.\"></nys-textinput>",
14206
- "lang": "html"
14207
- },
14208
- {
14209
- "title": "Description Slot",
14210
- "code": "<nys-textinput label=\"Email Address\">\n<div slot=\"description\">Only valid <strong>ny.gov</strong> emails are accepted.</div>\n</nys-textinput>",
13437
+ "title": "Basic text input",
13438
+ "code": "<nys-textinput label=\"Full Name\" required></nys-textinput>",
14211
13439
  "lang": "html"
14212
13440
  },
14213
13441
  {
14214
- "title": "Masking",
14215
- "code": "<nys-textinput type=\"tel\" label=\"Phone Number\">\n<div slot=\"description\">Some types, such as <code>tel</code> have automatic masking available.</div>\n</nys-textinput>",
13442
+ "title": "Required Email",
13443
+ "code": "<nys-textinput type=\"email\" label=\"Email Address\" required></nys-textinput>",
14216
13444
  "lang": "html"
14217
13445
  },
14218
13446
  {
14219
- "title": "Max Min Values",
14220
- "code": "<nys-textinput type=\"number\" label=\"Age\" min=\"18\" max=\"99\" width=\"sm\"></nys-textinput>",
13447
+ "title": "Phone with masking",
13448
+ "code": "<nys-textinput type=\"tel\" label=\"Phone Number\"></nys-textinput>",
14221
13449
  "lang": "html"
14222
13450
  },
14223
13451
  {
14224
- "title": "Suffix Button",
14225
- "code": "<nys-textinput id=\"search-demo\" type=\"search\" placeholder=\"Search\">\n<nys-button\nslot=\"endButton\"\nariaLabel=\"Search\"\nprefixIcon=\"search\"\nonclick=\"alert('searching for: ' + document.getElementById('search-demo').value)\"\n></nys-button>\n</nys-textinput>",
13452
+ "title": "Search with button",
13453
+ "code": "<nys-textinput type=\"search\" placeholder=\"Search\">\n<nys-button slot=\"endButton\" label=\"Search\" prefixIcon=\"search\"></nys-button>\n</nys-textinput>",
14226
13454
  "lang": "html"
14227
13455
  }
14228
13456
  ]
@@ -14618,38 +13846,13 @@
14618
13846
  "summary": "Toggle switch for binary settings with immediate effect.",
14619
13847
  "examples": [
14620
13848
  {
14621
- "title": "Basic",
14622
- "code": "<nys-toggle label=\"Enable notifications\" name=\"notifications\" value=\"enabled-notifications\"></nys-toggle>",
14623
- "lang": "html"
14624
- },
14625
- {
14626
- "title": "Checked",
14627
- "code": "<nys-toggle label=\"Dark Mode\" name=\"theme\" value=\"dark\" checked></nys-toggle>",
14628
- "lang": "html"
14629
- },
14630
- {
14631
- "title": "Disabled",
14632
- "code": "<nys-toggle label=\"Opt Out of emails\" name=\"toggle-switch\" value=\"emails\" disabled></nys-toggle>",
14633
- "lang": "html"
14634
- },
14635
- {
14636
- "title": "Hide Icon",
14637
- "code": "<nys-toggle label=\"No icon on the toggle knob\" name=\"icon\" value=\"no-icon\" noIcon></nys-toggle>",
14638
- "lang": "html"
14639
- },
14640
- {
14641
- "title": "Size small",
14642
- "code": "<nys-toggle label=\"Tiny but mighty\" name=\"sm-size\" value=\"sm-size\" size=\"sm\"></nys-toggle>",
14643
- "lang": "html"
14644
- },
14645
- {
14646
- "title": "Description",
14647
- "code": "<nys-toggle\nlabel=\"Opt Out of emails\"\ndescription=\"An email address is recommended to be on file for contact information.\"\nname=\"toggle-switch\"\nvalue=\"emails\"\n></nys-toggle>",
13849
+ "title": "Basic toggle",
13850
+ "code": "<nys-toggle label=\"Enable notifications\" name=\"notifications\"></nys-toggle>",
14648
13851
  "lang": "html"
14649
13852
  },
14650
13853
  {
14651
- "title": "Description Slot",
14652
- "code": "<nys-toggle\nlabel=\"Opt Out of emails\"\nname=\"toggle-switch\"\nvalue=\"emails\"\n>\n<p slot=\"description\">We <strong>REALLY</strong> encourage you to keep emails enabled for contact purposes.</p>\n</nys-toggle>",
13854
+ "title": "Dark mode toggle",
13855
+ "code": "<nys-toggle label=\"Dark mode\" description=\"Adjust display for low light\" checked></nys-toggle>",
14653
13856
  "lang": "html"
14654
13857
  }
14655
13858
  ]
@@ -15063,18 +14266,13 @@
15063
14266
  "summary": "Contextual tooltip with auto-positioning, keyboard support, and screen reader integration.",
15064
14267
  "examples": [
15065
14268
  {
15066
- "title": "Basic",
15067
- "code": "<div style=\"display: flex; justify-content: center; gap: 5px; padding: 40px;\">\n<nys-tooltip for=\"my-button\" text=\"I am a tooltip.\"></nys-tooltip>\n<nys-button id=\"my-button\" label=\"Hover Me\"></nys-button>\n</div>",
14269
+ "title": "Tooltip for button",
14270
+ "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>",
15068
14271
  "lang": "html"
15069
14272
  },
15070
14273
  {
15071
- "title": "Position",
15072
- "code": "<div style=\"display: flex; justify-content: center; gap: 5px; padding: 40px;\">\n<p>Hover over the icon</p>\n<nys-tooltip\nfor=\"my-icon2\"\ntext=\"I am a tooltip.\"\nposition=\"right\"\n>\n</nys-tooltip>\n<nys-icon id=\"my-icon2\" name=\"info\" size=\"3xl\"></nys-icon>\n</div>",
15073
- "lang": "html"
15074
- },
15075
- {
15076
- "title": "Inverted",
15077
- "code": "<div style=\"background-color: #1b1b1b; color: #ffffff; padding: 40px; display: flex; gap: 5px\">\n<p>Hover over the icon</p>\n<nys-tooltip\nfor=\"my-tooltip3\"\ntext=\"I am a tooltip.\"\ninverted\n>\n</nys-tooltip>\n<nys-icon id=\"my-tooltip3\" name=\"info\" size=\"3xl\"></nys-icon>\n</div>",
14274
+ "title": "Positioned tooltip",
14275
+ "code": "<nys-icon id=\"info-icon\" name=\"info\"></nys-icon>\n<nys-tooltip for=\"info-icon\" text=\"Additional details\" position=\"right\"></nys-tooltip>",
15078
14276
  "lang": "html"
15079
14277
  }
15080
14278
  ]
@@ -15139,8 +14337,8 @@
15139
14337
  "summary": "Universal NYS footer with logo and statewide links. Required site-wide.",
15140
14338
  "examples": [
15141
14339
  {
15142
- "title": "Basic",
15143
- "code": "<nys-unavfooter></nys-unavfooter>",
14340
+ "title": "Standard usage",
14341
+ "code": "<nys-globalfooter>...</nys-globalfooter>\n<nys-unavfooter></nys-unavfooter>",
15144
14342
  "lang": "html"
15145
14343
  }
15146
14344
  ]
@@ -15186,7 +14384,7 @@
15186
14384
  "declarations": [
15187
14385
  {
15188
14386
  "kind": "class",
15189
- "description": "Universal NYS header with trust bar, logo, search, and language translation. Required on all NYS sites.\n\nPlace as the first element in `<body>`. Includes \"official site\" trust indicator, NY.gov logo,\nsite search (searches ny.gov), and 14-language translation dropdown. Use `hideSearch` or `hideTranslate`\nto remove features if not applicable.",
14387
+ "description": "",
15190
14388
  "name": "NysUnavHeader",
15191
14389
  "members": [
15192
14390
  {
@@ -15362,16 +14560,6 @@
15362
14560
  ]
15363
14561
  }
15364
14562
  ],
15365
- "events": [
15366
- {
15367
- "description": "Fired when a language is selected. Detail: `{language: {code, label, url?}}`. Cancelable; `preventDefault()` overrides the default Smartling redirect.",
15368
- "name": "nys-language-select"
15369
- },
15370
- {
15371
- "description": "Fired when a search is submitted. Detail: `{query}`. Cancelable; `preventDefault()` overrides the default search redirect.",
15372
- "name": "nys-search-submit"
15373
- }
15374
- ],
15375
14563
  "attributes": [
15376
14564
  {
15377
14565
  "name": "trustbarVisible",
@@ -15459,40 +14647,7 @@
15459
14647
  "package": "lit"
15460
14648
  },
15461
14649
  "tagName": "nys-unavheader",
15462
- "customElement": true,
15463
- "summary": "Universal NYS header with trust bar, search, and translation. Required site-wide.",
15464
- "examples": [
15465
- {
15466
- "title": "Basic",
15467
- "code": "<nys-unavheader></nys-unavheader>",
15468
- "lang": "html"
15469
- },
15470
- {
15471
- "title": "Hide search",
15472
- "code": "<nys-unavheader hideSearch></nys-unavheader>",
15473
- "lang": "html"
15474
- },
15475
- {
15476
- "title": "Hide translate",
15477
- "code": "<nys-unavheader hideTranslate></nys-unavheader>",
15478
- "lang": "html"
15479
- },
15480
- {
15481
- "title": "Custom Search URL",
15482
- "code": "<nys-unavheader searchUrl=\"https://designsystem.ny.gov/search/?q=\"></nys-unavheader>",
15483
- "lang": "html"
15484
- },
15485
- {
15486
- "title": "Custom Language List",
15487
- "code": "<nys-unavheader id=\"my-header\"></nys-unavheader>\n<script>\nconst header = document.querySelector('#my-header');\nheader.languages = [\n{ code: 'en', label: 'English' },\n{ code: 'es', label: 'Español' , url: '\"https://ny.gov/?lang=es\"'},\n{ code: 'fr', label: 'Français', url: '\"https://ny.gov/?lang=fr\"'},\n];\n</script>",
15488
- "lang": "html"
15489
- },
15490
- {
15491
- "title": "Custom Language List JS",
15492
- "code": "<nys-unavheader id=\"my-header2\"></nys-unavheader>\n<script>\ndocument.querySelector('#my-header2').addEventListener('nys-language-select', (event) => {\nevent.preventDefault();\nconst selectedLanguage = event.detail.language.label;\n});\n</script>",
15493
- "lang": "html"
15494
- }
15495
- ]
14650
+ "customElement": true
15496
14651
  }
15497
14652
  ],
15498
14653
  "exports": [
@@ -15817,38 +14972,8 @@
15817
14972
  "summary": "YouTube video player with thumbnail preview and accessibility announcements.",
15818
14973
  "examples": [
15819
14974
  {
15820
- "title": "Basic",
15821
- "code": "<nys-video\nvideourl=\"https://www.youtube.com/watch?v=TBfFzt0150Q\"\ntitleText=\"IT'S a Tech Podcast, Episode 3: Human-Centered Design\"\n></nys-video>",
15822
- "lang": "html"
15823
- },
15824
- {
15825
- "title": "Thumbnail",
15826
- "code": "<nys-video\nvideourl=\"https://www.youtube.com/watch?v=TBfFzt0150Q\"\ntitleText=\"IT'S a Tech Podcast, Episode 3: Human-Centered Design\"\nthumbnail=\"https://designsystem.ny.gov/assets/img/homepage-grid-3.svg\"\n></nys-video>",
15827
- "lang": "html"
15828
- },
15829
- {
15830
- "title": "Autoplay",
15831
- "code": "<nys-video\nvideourl=\"https://www.youtube.com/watch?v=TBfFzt0150Q\"\ntitleText=\"IT'S a Tech Podcast, Episode 3: Human-Centered Design\"\nautoplay\n></nys-video>",
15832
- "lang": "html"
15833
- },
15834
- {
15835
- "title": "Start Time",
15836
- "code": "<nys-video\nvideourl=\"https://www.youtube.com/watch?v=TBfFzt0150Q\"\ntitleText=\"IT'S a Tech Podcast, Episode 3: Human-Centered Design\"\nstarttime=\"43\"\n></nys-video>",
15837
- "lang": "html"
15838
- },
15839
- {
15840
- "title": "Disabled",
15841
- "code": "<nys-video\nvideourl=\"https://www.youtube.com/watch?v=TBfFzt0150Q\"\ntitleText=\"IT'S a Tech Podcast, Episode 3: Human-Centered Design\"\ndisabled\n></nys-video>",
15842
- "lang": "html"
15843
- },
15844
- {
15845
- "title": "Size full",
15846
- "code": "<nys-video\nsize=\"full\"\nvideourl=\"https://www.youtube.com/watch?v=TBfFzt0150Q\"\ntitleText=\"Small (width: 320-439px)\"\n></nys-video>",
15847
- "lang": "html"
15848
- },
15849
- {
15850
- "title": "Size small",
15851
- "code": "<nys-video\nsize=\"sm\"\nvideourl=\"https://www.youtube.com/watch?v=TBfFzt0150Q\"\ntitleText=\"Small (width: 320-439px)\"\n></nys-video>",
14975
+ "title": "Basic usage",
14976
+ "code": "<nys-video\nvideourl=\"https://www.youtube.com/watch?v=dQw4w9WgXcQ\"\ntitleText=\"Video Title\"\n></nys-video>",
15852
14977
  "lang": "html"
15853
14978
  }
15854
14979
  ]