@kubex/zinc 1.0.25 → 1.0.99

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 (199) hide show
  1. package/.claude/project.md +556 -0
  2. package/.github/workflows/js_build_and_deploy.yaml +9 -10
  3. package/dist/custom-elements.json +13575 -8856
  4. package/dist/vscode.html-custom-data.json +583 -48
  5. package/dist/web-types.json +1441 -181
  6. package/dist/zn.d.ts +1645 -660
  7. package/dist/zn.min.css +1 -1
  8. package/dist/zn.min.js +1412 -893
  9. package/docs/_utilities/code-previews.cjs +10 -1
  10. package/docs/assets/scripts/docs.js +42 -18
  11. package/docs/data/data-table.json +229 -66
  12. package/docs/data/empty.json +6 -0
  13. package/docs/data/products-table.json +41 -193
  14. package/docs/pages/components/action-bar.md +121 -6
  15. package/docs/pages/components/alert.md +118 -15
  16. package/docs/pages/components/animated-button.md +299 -0
  17. package/docs/pages/components/audio-select.md +534 -0
  18. package/docs/pages/components/bulk-actions.md +79 -5
  19. package/docs/pages/components/button-group.md +235 -27
  20. package/docs/pages/components/button.md +139 -1
  21. package/docs/pages/components/chart.md +365 -9
  22. package/docs/pages/components/checkbox.md +387 -58
  23. package/docs/pages/components/chip.md +253 -33
  24. package/docs/pages/components/collapsible.md +393 -46
  25. package/docs/pages/components/cols.md +152 -30
  26. package/docs/pages/components/confirm.md +182 -16
  27. package/docs/pages/components/copy-button.md +169 -6
  28. package/docs/pages/components/data-select.md +194 -15
  29. package/docs/pages/components/data-table-filter.md +96 -5
  30. package/docs/pages/components/data-table-search.md +451 -0
  31. package/docs/pages/components/data-table-sort.md +66 -5
  32. package/docs/pages/components/data-table.md +727 -66
  33. package/docs/pages/components/datepicker.md +402 -7
  34. package/docs/pages/components/defined-label.md +120 -5
  35. package/docs/pages/components/dialog.md +339 -59
  36. package/docs/pages/components/dropdown.md +366 -11
  37. package/docs/pages/components/editor.md +604 -7
  38. package/docs/pages/components/empty-state.md +315 -16
  39. package/docs/pages/components/expanding-action.md +212 -28
  40. package/docs/pages/components/file.md +421 -12
  41. package/docs/pages/components/filter-container.md +158 -5
  42. package/docs/pages/components/filter-wrapper.md +167 -6
  43. package/docs/pages/components/form-group.md +383 -6
  44. package/docs/pages/components/hover-container.md +237 -6
  45. package/docs/pages/components/icon-picker.md +121 -0
  46. package/docs/pages/components/icon.md +454 -48
  47. package/docs/pages/components/inline-edit.md +787 -19
  48. package/docs/pages/components/input-group.md +207 -13
  49. package/docs/pages/components/input.md +194 -0
  50. package/docs/pages/components/item.md +18 -0
  51. package/docs/pages/components/key-container.md +115 -0
  52. package/docs/pages/components/key.md +101 -0
  53. package/docs/pages/components/menu.md +512 -6
  54. package/docs/pages/components/note.md +239 -36
  55. package/docs/pages/components/opt-group.md +107 -0
  56. package/docs/pages/components/pagination.md +332 -6
  57. package/docs/pages/components/pane.md +222 -6
  58. package/docs/pages/components/panel.md +213 -26
  59. package/docs/pages/components/popup.md +1354 -6
  60. package/docs/pages/components/priority-list.md +233 -0
  61. package/docs/pages/components/progress-bar.md +387 -6
  62. package/docs/pages/components/radio-group.md +242 -5
  63. package/docs/pages/components/radio.md +474 -6
  64. package/docs/pages/components/rating.md +331 -7
  65. package/docs/pages/components/reveal.md +524 -6
  66. package/docs/pages/components/scroll-container.md +552 -6
  67. package/docs/pages/components/select.md +762 -160
  68. package/docs/pages/components/skeleton.md +473 -30
  69. package/docs/pages/components/slideout.md +261 -5
  70. package/docs/pages/components/sp.md +99 -41
  71. package/docs/pages/components/split-button.md +347 -9
  72. package/docs/pages/components/split-pane.md +445 -6
  73. package/docs/pages/components/stat.md +549 -9
  74. package/docs/pages/components/status-indicator.md +230 -1
  75. package/docs/pages/components/stepper.md +563 -6
  76. package/docs/pages/components/tabs.md +439 -13
  77. package/docs/pages/components/textarea.md +415 -17
  78. package/docs/pages/components/tile.md +385 -26
  79. package/docs/pages/components/toggle.md +424 -6
  80. package/docs/pages/components/tooltip.md +367 -0
  81. package/docs/pages/components/translation-group.md +210 -0
  82. package/docs/pages/components/translations.md +319 -19
  83. package/docs/pages/components/vertical-stepper.md +401 -8
  84. package/docs/pages/components/well.md +300 -3
  85. package/docs/pages/getting-started/form-controls.md +162 -0
  86. package/docs/pages/index.md +116 -15
  87. package/package.json +5 -6
  88. package/scss/_global-spacing.scss +4 -0
  89. package/scss/_root.scss +2 -2
  90. package/scss/boot.scss +19 -0
  91. package/scss/shared/layout.scss +5 -0
  92. package/scss/themes/_light.scss +3 -3
  93. package/src/components/alert/alert.scss +1 -0
  94. package/src/components/animated-button/README.md +306 -0
  95. package/src/components/animated-button/animated-button.component.ts +229 -0
  96. package/src/components/animated-button/animated-button.scss +228 -0
  97. package/src/components/animated-button/animated-button.test.ts +143 -0
  98. package/src/components/animated-button/index.ts +12 -0
  99. package/src/components/button/button.component.ts +5 -0
  100. package/src/components/button-group/button-group.component.ts +25 -13
  101. package/src/components/button-group/button-group.scss +6 -0
  102. package/src/components/checkbox/checkbox.component.ts +4 -0
  103. package/src/components/checkbox/checkbox.scss +7 -4
  104. package/src/components/checkbox-group/checkbox-group.scss +7 -0
  105. package/src/components/chip/chip.component.ts +7 -2
  106. package/src/components/chip/chip.scss +16 -2
  107. package/src/components/collapsible/collapsible.component.ts +27 -20
  108. package/src/components/cols/cols.component.ts +14 -2
  109. package/src/components/cols/cols.scss +6 -12
  110. package/src/components/confirm/confirm.component.ts +7 -0
  111. package/src/components/copy-button/copy-button.component.ts +12 -11
  112. package/src/components/data-select/data-select.component.ts +215 -44
  113. package/src/components/data-select/data-select.scss +66 -6
  114. package/src/components/data-select/providers/currency-data-provider.ts +20 -6
  115. package/src/components/data-select/providers/provider.ts +1 -0
  116. package/src/components/data-select/providers/us-state-data-provider.ts +68 -0
  117. package/src/components/data-table/data-table.component.ts +81 -22
  118. package/src/components/data-table-search/data-table-search.component.ts +184 -0
  119. package/src/components/data-table-search/data-table-search.scss +17 -0
  120. package/src/components/data-table-search/data-table-search.test.ts +11 -0
  121. package/src/components/data-table-search/index.ts +12 -0
  122. package/src/components/datepicker/datepicker.component.ts +347 -13
  123. package/src/components/dialog/dialog.component.ts +1 -1
  124. package/src/components/empty-state/empty-state.scss +6 -1
  125. package/src/components/header/header.scss +3 -3
  126. package/src/components/icon/icon.component.ts +23 -1
  127. package/src/components/icon/icon.scss +23 -0
  128. package/src/components/icon-picker/brand-icons.ts +24 -0
  129. package/src/components/icon-picker/icon-picker.component.ts +407 -0
  130. package/src/components/icon-picker/icon-picker.scss +205 -0
  131. package/src/components/icon-picker/index.ts +12 -0
  132. package/src/components/icon-picker/line-icons.ts +612 -0
  133. package/src/components/icon-picker/material-icons.ts +14543 -0
  134. package/src/components/inline-edit/inline-edit.component.ts +190 -46
  135. package/src/components/inline-edit/inline-edit.scss +29 -0
  136. package/src/components/inline-edit/inline-edit.test.ts +314 -1
  137. package/src/components/input/input.component.ts +324 -5
  138. package/src/components/input/input.scss +87 -0
  139. package/src/components/input-group/input-group.component.ts +28 -7
  140. package/src/components/input-group/input-group.scss +48 -10
  141. package/src/components/item/item.component.ts +24 -3
  142. package/src/components/item/item.scss +18 -0
  143. package/src/components/key/index.ts +12 -0
  144. package/src/components/key/key.component.ts +47 -0
  145. package/src/components/key/key.scss +38 -0
  146. package/src/components/key-container/index.ts +12 -0
  147. package/src/components/key-container/key-container.component.ts +142 -0
  148. package/src/components/key-container/key-container.scss +33 -0
  149. package/src/components/menu-item/menu-item.component.ts +20 -0
  150. package/src/components/menu-item/menu-item.scss +69 -2
  151. package/src/components/navbar/navbar.component.ts +103 -11
  152. package/src/components/navbar/navbar.scss +6 -1
  153. package/src/components/opt-group/index.ts +12 -0
  154. package/src/components/opt-group/opt-group.component.ts +74 -0
  155. package/src/components/opt-group/opt-group.scss +37 -0
  156. package/src/components/opt-group/opt-group.test.ts +27 -0
  157. package/src/components/option/option.component.ts +1 -16
  158. package/src/components/option/option.scss +4 -0
  159. package/src/components/panel/panel.component.ts +10 -8
  160. package/src/components/panel/panel.scss +20 -0
  161. package/src/components/priority-list/index.ts +12 -0
  162. package/src/components/priority-list/priority-list.component.ts +611 -0
  163. package/src/components/priority-list/priority-list.scss +185 -0
  164. package/src/components/priority-list/priority-list.test.ts +139 -0
  165. package/src/components/progress-bar/progress-bar.component.ts +22 -16
  166. package/src/components/radio/radio.scss +10 -3
  167. package/src/components/select/select.component.ts +812 -72
  168. package/src/components/select/select.scss +108 -2
  169. package/src/components/select/select.test.ts +147 -2
  170. package/src/components/settings-container/settings-container.component.ts +44 -19
  171. package/src/components/settings-container/settings-container.scss +1 -1
  172. package/src/components/skeleton/skeleton.component.ts +6 -1
  173. package/src/components/slideout/slideout.scss +8 -3
  174. package/src/components/sp/sp.component.ts +3 -1
  175. package/src/components/sp/sp.scss +19 -0
  176. package/src/components/stepper/stepper.component.ts +16 -10
  177. package/src/components/textarea/textarea.scss +0 -4
  178. package/src/components/tile/tile.component.ts +12 -3
  179. package/src/components/tile/tile.scss +1 -1
  180. package/src/components/timer/timer.component.ts +15 -2
  181. package/src/components/toggle/toggle.component.ts +29 -26
  182. package/src/components/toggle/toggle.scss +13 -1
  183. package/src/components/translation-group/index.ts +12 -0
  184. package/src/components/translation-group/translation-group.component.ts +207 -0
  185. package/src/components/translation-group/translation-group.scss +8 -0
  186. package/src/components/translations/translations.component.ts +90 -44
  187. package/src/components/translations/translations.scss +4 -0
  188. package/src/components/vertical-stepper/vertical-stepper.component.ts +14 -9
  189. package/src/events/events.ts +12 -7
  190. package/src/events/zn-language-change.ts +7 -0
  191. package/src/events/zn-purchase.ts +11 -0
  192. package/src/events/zn-redirect.ts +7 -0
  193. package/src/events/zn-reorder.ts +7 -0
  194. package/src/events/zn-search-change.ts +11 -0
  195. package/src/events/zn-submit.ts +1 -1
  196. package/src/form-control.scss +4 -0
  197. package/src/internal/form-navigation.ts +510 -0
  198. package/src/internal/form.ts +6 -0
  199. package/src/zinc.ts +91 -83
@@ -1,65 +1,268 @@
1
1
  ---
2
2
  meta:
3
3
  title: Note
4
- description:
4
+ description: Notes are used to display important information with optional captions, dates, and expandable content.
5
5
  layout: component
6
6
  ---
7
7
 
8
8
  ```html:preview
9
-
10
9
  <zn-note color="gray">
11
- <span slot="caption">The caption</span>
12
- <div slot="snippet">This is a short version of the below.</div>
13
- Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam, autem deleniti, dolore dolores ea enim fugit
14
- harum incidunt minima numquam possimus praesentium quaerat quasi sequi sunt temporibus ut velit, veniam. Aut dolor
15
- eius quae. Consequatur deleniti ipsum itaque pariatur ullam velit! Alias aut delectus dolores esse fuga iure laborum
16
- magnam maiores minima, minus, natus placeat provident quasi ratione ullam ut? Fugit nisi placeat quidem suscipit
17
- voluptatum? Adipisci aspernatur assumenda consequatur dolore ea esse exercitationem ipsum maiores minima neque saepe,
18
- voluptates voluptatibus! A ab adipisci consequatur, esse eveniet itaque sed soluta! Aliquid animi blanditiis dolores
19
- dolorum eum facere fugit harum id illo, laboriosam laborum libero magni minus natus nihil perspiciatis porro quae
20
- quisquam, ratione rem repellat sequi sit suscipit voluptas voluptatum. Atque delectus eos fugit illo sit soluta
21
- suscipit vero? At consectetur culpa dolor, dolores ea earum enim error et expedita iste laudantium nam necessitatibus
22
- quaerat, quis sed tempora vel voluptatum?
23
- <span slot="date">
24
- <small>11/10/24</small>
25
- </span>
10
+ <span slot="caption">Meeting Summary</span>
11
+ <span slot="date">11/10/24</span>
12
+ This is a basic note with a caption, date, and content.
26
13
  </zn-note>
27
14
  ```
28
15
 
29
16
  ## Examples
30
17
 
31
- ### Using HTML
18
+ ### Basic Note
19
+
20
+ A basic note with a caption and content.
32
21
 
33
22
  ```html:preview
23
+ <zn-note caption="Important Reminder">
24
+ Don't forget to review the documentation before the meeting.
25
+ </zn-note>
26
+ ```
34
27
 
35
- <zn-note color="gray">
36
- <span slot="caption">The caption</span>
37
- <span>The body</span>
28
+ ### With Date
29
+
30
+ Add a date to your note using the `date` attribute or the `date` slot.
31
+
32
+ ```html:preview
33
+ <zn-note caption="Project Update" date="01/23/26">
34
+ The project has been successfully deployed to production.
35
+ </zn-note>
36
+ ```
37
+
38
+ ### Using Slots
39
+
40
+ Notes support multiple slots for flexible content organization.
41
+
42
+ ```html:preview
43
+ <zn-note color="blue">
44
+ <span slot="caption">Design Review</span>
38
45
  <span slot="date">
39
- <small>11/10/24</small>
46
+ <small>01/15/26</small>
40
47
  </span>
48
+ The design system updates have been approved by the team. We'll begin implementation next week.
49
+ </zn-note>
50
+ ```
51
+
52
+ ### Colors
53
+
54
+ Use the `color` attribute to change the visual appearance of the note. Available colors are: `red`, `blue`, `orange`, `yellow`, `indigo`, `violet`, `green`, `pink`, and `gray`.
55
+
56
+ ```html:preview
57
+ <zn-note caption="Red Note" date="01/20/26" color="red">This is a red note for important information.</zn-note>
58
+ <br />
59
+ <zn-note caption="Blue Note" date="01/20/26" color="blue">This is a blue note for informational content.</zn-note>
60
+ <br />
61
+ <zn-note caption="Orange Note" date="01/20/26" color="orange">This is an orange note for warnings or alerts.</zn-note>
62
+ <br />
63
+ <zn-note caption="Yellow Note" date="01/20/26" color="yellow">This is a yellow note for highlights.</zn-note>
64
+ <br />
65
+ <zn-note caption="Indigo Note" date="01/20/26" color="indigo">This is an indigo note for special topics.</zn-note>
66
+ <br />
67
+ <zn-note caption="Violet Note" date="01/20/26" color="violet">This is a violet note for creative content.</zn-note>
68
+ <br />
69
+ <zn-note caption="Green Note" date="01/20/26" color="green">This is a green note for success or completion.</zn-note>
70
+ <br />
71
+ <zn-note caption="Pink Note" date="01/20/26" color="pink">This is a pink note for special mentions.</zn-note>
72
+ <br />
73
+ <zn-note caption="Gray Note" date="01/20/26" color="gray">This is a gray note for neutral content.</zn-note>
74
+ ```
75
+
76
+ ### Without Color
77
+
78
+ Notes can be displayed without a color border.
79
+
80
+ ```html:preview
81
+ <zn-note caption="Standard Note" date="01/20/26">
82
+ This note has no color border, giving it a clean, minimal appearance.
83
+ </zn-note>
84
+ ```
85
+
86
+ ### Expandable Content
87
+
88
+ When you provide both a `snippet` slot and default content, the note becomes expandable with a "Show more/Show less" toggle.
89
+
90
+ ```html:preview
91
+ <zn-note color="indigo">
92
+ <span slot="caption">Research Findings</span>
93
+ <span slot="date">01/23/26</span>
94
+ <div slot="snippet">
95
+ Initial research shows promising results. Click to read more...
96
+ </div>
97
+ <p>After conducting extensive research over the past three months, we've discovered several key insights that will significantly impact our product strategy:</p>
98
+ <ul>
99
+ <li>User engagement increased by 45% with the new interface design</li>
100
+ <li>Mobile users now represent 68% of total traffic</li>
101
+ <li>Average session duration improved from 3.2 to 5.7 minutes</li>
102
+ <li>Customer satisfaction scores rose from 7.2 to 8.9 out of 10</li>
103
+ </ul>
104
+ <p>These findings suggest we should prioritize mobile-first development and continue investing in user experience improvements.</p>
105
+ </zn-note>
106
+ ```
107
+
108
+ ### With Action Buttons
109
+
110
+ Use the `action` slot to add buttons or other interactive elements to the note header.
111
+
112
+ ```html:preview
113
+ <zn-note caption="Pending Review" date="01/22/26" color="yellow">
114
+ This document requires your approval before we can proceed with the next phase.
115
+ <zn-button slot="action" color="success" size="small">Approve</zn-button>
116
+ </zn-note>
117
+ <br />
118
+ <zn-note caption="Task Assignment" date="01/23/26" color="blue">
119
+ You've been assigned to work on the authentication module.
120
+ <zn-button slot="action" color="primary" size="small">View Task</zn-button>
121
+ </zn-note>
122
+ ```
123
+
124
+ ### With Footer
125
+
126
+ Use the `footer` slot to add additional information or actions at the bottom of the note.
127
+
128
+ ```html:preview
129
+ <zn-note caption="Project Milestone" date="01/20/26" color="green">
130
+ Version 2.0 has been successfully released to all users. Great work team!
131
+ <div slot="footer" style="display: flex; gap: 8px; align-items: center;">
132
+ <small style="color: var(--zn-color-text-muted);">Posted by John Smith</small>
133
+ <zn-button color="transparent" size="small">View Details</zn-button>
134
+ </div>
135
+ </zn-note>
136
+ ```
137
+
138
+ ### Complex Content
139
+
140
+ Notes can contain rich HTML content including lists, links, code blocks, and formatted text.
141
+
142
+ ```html:preview
143
+ <zn-note color="violet">
144
+ <span slot="caption">Release Notes - v1.5.0</span>
145
+ <span slot="date">01/15/26</span>
146
+ <div slot="snippet">
147
+ New features and improvements in this release. Click to view full changelog...
148
+ </div>
149
+ <h4>New Features</h4>
150
+ <ul>
151
+ <li><strong>Dark Mode:</strong> Added system-wide dark mode support</li>
152
+ <li><strong>Export Functionality:</strong> Export data to CSV, JSON, and PDF formats</li>
153
+ <li><strong>Advanced Search:</strong> New filtering and sorting capabilities</li>
154
+ </ul>
155
+ <h4>Improvements</h4>
156
+ <ul>
157
+ <li>Performance optimizations reducing load time by 40%</li>
158
+ <li>Enhanced accessibility with ARIA labels</li>
159
+ <li>Updated documentation with new examples</li>
160
+ </ul>
161
+ <h4>Bug Fixes</h4>
162
+ <ul>
163
+ <li>Fixed issue with date formatting in reports</li>
164
+ <li>Resolved memory leak in data grid component</li>
165
+ <li>Corrected validation errors in form inputs</li>
166
+ </ul>
167
+ <p>For more information, visit our <a href="#">changelog page</a>.</p>
168
+ <div slot="footer">
169
+ <zn-button color="violet" size="small">Download Update</zn-button>
170
+ <zn-button color="transparent" size="small">Learn More</zn-button>
171
+ </div>
41
172
  </zn-note>
42
173
  ```
43
174
 
44
- ### Changing Colour
175
+ ### Multiple Actions
176
+
177
+ Combine header actions and footer content for more complex interactions.
45
178
 
46
179
  ```html:preview
47
- <zn-note caption="The caption" date="11/10/24" color="red"><div>I'm red!</div></zn-note>
48
- <zn-note caption="The caption" date="11/10/24" color="blue"><div>I'm blue!</div></zn-note>
49
- <zn-note caption="The caption" date="11/10/24" color="orange"><div>I'm orange!</div></zn-note>
50
- <zn-note caption="The caption" date="11/10/24" color="yellow"><div>I'm yellow!</div></zn-note>
51
- <zn-note caption="The caption" date="11/10/24" color="indigo"><div>I'm indigo!</div></zn-note>
52
- <zn-note caption="The caption" date="11/10/24" color="violet"><div>I'm violet!</div></zn-note>
53
- <zn-note caption="The caption" date="11/10/24" color="green"><div>I'm green!</div></zn-note>
54
- <zn-note caption="The caption" date="11/10/24" color="pink"><div>I'm pink!</div></zn-note>
55
- <zn-note caption="The caption" date="11/10/24" color="gray"><div>I'm gray!</div></zn-note>
180
+ <zn-note caption="Code Review Request" date="01/23/26" color="orange">
181
+ <div slot="action">
182
+ <zn-button color="transparent" size="small">View Changes</zn-button>
183
+ </div>
184
+ <div slot="snippet">
185
+ Pull request #247: Add user authentication feature. Click to see details...
186
+ </div>
187
+ <p><strong>Changes:</strong></p>
188
+ <ul>
189
+ <li>Added JWT authentication middleware</li>
190
+ <li>Implemented refresh token rotation</li>
191
+ <li>Created user session management</li>
192
+ <li>Added login/logout endpoints</li>
193
+ </ul>
194
+ <p><strong>Files changed:</strong> 12 files (+458, -92 lines)</p>
195
+ <p>Please review the changes and provide feedback. The tests are passing and the code follows our style guidelines.</p>
196
+ <div slot="footer" style="display: flex; gap: 8px;">
197
+ <zn-button color="success" size="small">Approve</zn-button>
198
+ <zn-button color="error" size="small">Request Changes</zn-button>
199
+ <zn-button color="transparent" size="small">Comment</zn-button>
200
+ </div>
201
+ </zn-note>
202
+ ```
203
+
204
+ ### Real-World Use Cases
205
+
206
+ #### Meeting Notes
207
+
208
+ ```html:preview
209
+ <zn-note caption="Weekly Team Sync" date="01/22/26" color="blue">
210
+ <div slot="snippet">
211
+ Discussed Q1 goals and project timelines. Click for full notes...
212
+ </div>
213
+ <h4>Attendees</h4>
214
+ <p>Sarah Johnson, Mike Chen, Emily Rodriguez, David Kim</p>
215
+
216
+ <h4>Discussion Points</h4>
217
+ <ul>
218
+ <li><strong>Q1 Goals:</strong> Finalize roadmap by end of January</li>
219
+ <li><strong>Project Alpha:</strong> On track for February launch</li>
220
+ <li><strong>Resource Allocation:</strong> Need two additional developers</li>
221
+ <li><strong>Budget Review:</strong> Approved additional $50k for tooling</li>
222
+ </ul>
223
+
224
+ <h4>Action Items</h4>
225
+ <ul>
226
+ <li>Sarah: Draft project proposal by Friday</li>
227
+ <li>Mike: Schedule interviews for developer positions</li>
228
+ <li>Emily: Prepare Q1 budget breakdown</li>
229
+ <li>David: Update project timeline documentation</li>
230
+ </ul>
231
+
232
+ <div slot="footer">
233
+ <small style="color: var(--zn-color-text-muted);">Next meeting: 01/29/26 at 10:00 AM</small>
234
+ </div>
235
+ </zn-note>
236
+ ```
237
+
238
+ #### Changelog Entry
239
+
240
+ ```html:preview
241
+ <zn-note caption="Version 3.2.0 Released" date="01/20/26" color="green">
242
+ <p>We're excited to announce the release of version 3.2.0 with new features and improvements!</p>
243
+ <p><strong>Highlights:</strong></p>
244
+ <ul>
245
+ <li>New dashboard widgets for better data visualization</li>
246
+ <li>Improved mobile responsive design</li>
247
+ <li>Performance enhancements for large datasets</li>
248
+ </ul>
249
+ <div slot="footer">
250
+ <zn-button color="green" size="small">Update Now</zn-button>
251
+ <zn-button color="transparent" size="small">View Full Changelog</zn-button>
252
+ </div>
253
+ </zn-note>
56
254
  ```
57
255
 
58
- ### No Border Colour
256
+ #### Status Update
59
257
 
60
258
  ```html:preview
61
- <zn-note caption="The caption"
62
- date="11/10/24">
63
- <div>The Body</div>
259
+ <zn-note caption="System Maintenance" date="01/25/26" color="yellow">
260
+ <div slot="action">
261
+ <zn-button color="transparent" size="small">Details</zn-button>
262
+ </div>
263
+ Scheduled maintenance window on Sunday, January 26 from 2:00 AM to 6:00 AM EST. Services will be temporarily unavailable during this time.
264
+ <div slot="footer">
265
+ <small style="color: var(--zn-color-text-muted);">Impact: All services | Duration: ~4 hours</small>
266
+ </div>
64
267
  </zn-note>
65
268
  ```
@@ -0,0 +1,107 @@
1
+ ---
2
+ meta:
3
+ title: Option Group
4
+ description: Option groups organize options within a select under labeled headers.
5
+ layout: component
6
+ ---
7
+
8
+ ## Examples
9
+
10
+ ### Basic Option Group
11
+
12
+ Use `<zn-opt-group>` inside a `<zn-select>` to group related options under a labeled header. Set the `label` attribute to provide the group heading.
13
+
14
+ ```html:preview
15
+ <zn-select label="Select a fruit">
16
+ <zn-opt-group label="Citrus">
17
+ <zn-option value="orange">Orange</zn-option>
18
+ <zn-option value="lemon">Lemon</zn-option>
19
+ <zn-option value="lime">Lime</zn-option>
20
+ </zn-opt-group>
21
+ <zn-opt-group label="Berries">
22
+ <zn-option value="strawberry">Strawberry</zn-option>
23
+ <zn-option value="blueberry">Blueberry</zn-option>
24
+ <zn-option value="raspberry">Raspberry</zn-option>
25
+ </zn-opt-group>
26
+ </zn-select>
27
+ ```
28
+
29
+ ### Disabled Group
30
+
31
+ Use the `disabled` attribute to disable all options within a group. Disabled groups propagate the disabled state to their child options automatically.
32
+
33
+ ```html:preview
34
+ <zn-select label="Select a plan">
35
+ <zn-opt-group label="Available">
36
+ <zn-option value="basic">Basic</zn-option>
37
+ <zn-option value="pro">Pro</zn-option>
38
+ </zn-opt-group>
39
+ <zn-opt-group label="Coming Soon" disabled>
40
+ <zn-option value="enterprise">Enterprise</zn-option>
41
+ <zn-option value="unlimited">Unlimited</zn-option>
42
+ </zn-opt-group>
43
+ </zn-select>
44
+ ```
45
+
46
+ ### With Search
47
+
48
+ When used inside a `<zn-select>` with the `search` attribute, group headers automatically hide when all of their child options are filtered out by the search query.
49
+
50
+ ```html:preview
51
+ <zn-select label="Select a country" search placeholder="Type to search...">
52
+ <zn-opt-group label="North America">
53
+ <zn-option value="us">United States</zn-option>
54
+ <zn-option value="ca">Canada</zn-option>
55
+ <zn-option value="mx">Mexico</zn-option>
56
+ </zn-opt-group>
57
+ <zn-opt-group label="Europe">
58
+ <zn-option value="gb">United Kingdom</zn-option>
59
+ <zn-option value="de">Germany</zn-option>
60
+ <zn-option value="fr">France</zn-option>
61
+ </zn-opt-group>
62
+ <zn-opt-group label="Asia">
63
+ <zn-option value="jp">Japan</zn-option>
64
+ <zn-option value="cn">China</zn-option>
65
+ <zn-option value="in">India</zn-option>
66
+ </zn-opt-group>
67
+ </zn-select>
68
+ ```
69
+
70
+ ### Mixed Grouped and Ungrouped
71
+
72
+ You can mix standalone options with grouped options in the same select.
73
+
74
+ ```html:preview
75
+ <zn-select label="Select an option">
76
+ <zn-option value="none">None</zn-option>
77
+ <zn-opt-group label="Group A">
78
+ <zn-option value="a1">Option A1</zn-option>
79
+ <zn-option value="a2">Option A2</zn-option>
80
+ </zn-opt-group>
81
+ <zn-opt-group label="Group B">
82
+ <zn-option value="b1">Option B1</zn-option>
83
+ <zn-option value="b2">Option B2</zn-option>
84
+ </zn-opt-group>
85
+ </zn-select>
86
+ ```
87
+
88
+ ### Multiple Selection with Groups
89
+
90
+ Option groups work with multi-select. Use `multiple` and `clearable` on the parent `<zn-select>`.
91
+
92
+ ```html:preview
93
+ <zn-select label="Select your skills" multiple clearable search placeholder="Search skills...">
94
+ <zn-opt-group label="Frontend">
95
+ <zn-option value="html">HTML</zn-option>
96
+ <zn-option value="css">CSS</zn-option>
97
+ <zn-option value="js">JavaScript</zn-option>
98
+ <zn-option value="ts">TypeScript</zn-option>
99
+ </zn-opt-group>
100
+ <zn-opt-group label="Backend">
101
+ <zn-option value="node">Node.js</zn-option>
102
+ <zn-option value="go">Go</zn-option>
103
+ <zn-option value="python">Python</zn-option>
104
+ <zn-option value="php">PHP</zn-option>
105
+ </zn-opt-group>
106
+ </zn-select>
107
+ ```