@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,19 +1,19 @@
1
1
  ---
2
2
  meta:
3
3
  title: Panel
4
- description:
4
+ description: Panels are versatile containers that provide structure for organizing content with optional headers and footers.
5
5
  layout: component
6
6
  ---
7
7
 
8
- ```html:preview
9
-
10
- <zn-panel caption="Example Panel" description="Full Example of a panel" flush tabbed>
8
+ Panels are a fundamental component in the Zinc framework, providing a structured container for displaying content with consistent styling, borders, and spacing. They support various layouts including headers with actions and footers.
11
9
 
12
- <!-- All the panel actions -->
10
+ ```html:preview
11
+ <zn-panel caption="Example Panel" description="Full example with all features" flush tabbed>
12
+ <!-- Panel actions -->
13
13
  <zn-chip slot="actions" icon="home">Awesome</zn-chip>
14
14
  <zn-chip slot="actions" icon="phone" type="info">example</zn-chip>
15
15
 
16
- <!-- Example panel content -->
16
+ <!-- Panel content -->
17
17
  <zn-tabs flush>
18
18
  <zn-navbar slot="top">
19
19
  <li tab>Customer</li>
@@ -42,30 +42,128 @@ layout: component
42
42
 
43
43
  ### Basic Panel
44
44
 
45
- Basic panels are just that, basic. However, they are a key component in the zn framework as most content is designed
46
- around been displayed in a panel.
45
+ Basic panels provide a simple container with consistent borders, rounded corners, and background styling. The panel can display a caption and description in its header.
47
46
 
48
47
  ```html:preview
49
- <zn-panel caption="Example Panel" description="Simple Panels are the best">
48
+ <zn-panel caption="Example Panel" description="Simple panels are the best">
50
49
  <div>Panel Content</div>
51
50
  </zn-panel>
52
51
  ```
53
52
 
54
- ### Flush with Tabs
53
+ ### Panel with Icon
54
+
55
+ Use the `icon` attribute to add an icon to the panel header.
56
+
57
+ ```html:preview
58
+ <zn-panel caption="Settings Panel" description="Configure your preferences" icon="settings">
59
+ <div style="padding: 20px;">
60
+ <p>Panel content goes here</p>
61
+ </div>
62
+ </zn-panel>
63
+ ```
64
+
65
+ ### Actions Slot
66
+
67
+ Use the `actions` slot to add action buttons or chips to the panel header.
68
+
69
+ ```html:preview
70
+ <zn-panel caption="Project Details" description="Manage your project">
71
+ <zn-chip slot="actions" icon="edit" type="info">Edit</zn-chip>
72
+ <zn-chip slot="actions" icon="delete" type="error">Delete</zn-chip>
73
+
74
+ <div style="padding: 20px;">
75
+ <p>Project content here</p>
76
+ </div>
77
+ </zn-panel>
78
+ ```
79
+
80
+ ### Footer Slot
81
+
82
+ Use the `footer` slot to add footer content to the panel.
83
+
84
+ ```html:preview
85
+ <zn-panel caption="Data Summary">
86
+ <div style="padding: 20px;">
87
+ <p>Main content area</p>
88
+ </div>
89
+
90
+ <div slot="footer">
91
+ <zn-button size="small">Save</zn-button>
92
+ <zn-button size="small" color="secondary">Cancel</zn-button>
93
+ </div>
94
+ </zn-panel>
95
+ ```
96
+
97
+ ### Header Underline
98
+
99
+ Use the `header-underline` attribute to add a border beneath the header.
100
+
101
+ ```html:preview
102
+ <zn-panel caption="Underlined Header" description="With a visible separator" header-underline>
103
+ <div style="padding: 20px;">
104
+ <p>Panel content with underlined header</p>
105
+ </div>
106
+ </zn-panel>
107
+ ```
108
+
109
+ ### Flush Panels
55
110
 
56
- `flush` panels are designed to be used in a layout where the content of the panel needs to take up the entire width of
57
- the
58
- panel. This can be useful when using other components such as `zn-tabs`.
111
+ The `flush` attribute removes all padding from the panel body, allowing content to extend to the edges. This is ideal for components like tabs or data tables that manage their own spacing.
59
112
 
60
113
  ```html:preview
114
+ <zn-panel caption="Flush Panel" flush>
115
+ <zn-sp no-gap divide>
116
+ <zn-inline-edit padded inline caption="Label 1" value="This is Awesome"></zn-inline-edit>
117
+ <zn-inline-edit padded inline caption="Label 2" value="Also Awesome"></zn-inline-edit>
118
+ </zn-sp>
119
+ </zn-panel>
120
+ ```
61
121
 
62
- <zn-panel caption="Example Panel" flush tabbed>
122
+ ### Flush X and Flush Y
123
+
124
+ Use `flush-x` to remove horizontal padding or `flush-y` to remove vertical padding.
125
+
126
+ ```html:preview
127
+ <zn-panel caption="Flush X Panel" flush-x>
128
+ <div style="background: rgba(var(--zn-color-info), 0.1); padding: 10px;">
129
+ Content extends horizontally to edges
130
+ </div>
131
+ </zn-panel>
132
+
133
+ <br />
134
+
135
+ <zn-panel caption="Flush Y Panel" flush-y>
136
+ <div style="background: rgba(var(--zn-color-success), 0.1); padding: 10px;">
137
+ Content extends vertically to edges
138
+ </div>
139
+ </zn-panel>
140
+ ```
141
+
142
+ ### Flush Footer
143
+
144
+ Use `flush-footer` to remove padding from the footer slot.
145
+
146
+ ```html:preview
147
+ <zn-panel caption="Flush Footer Panel" flush-footer>
148
+ <div style="padding: 20px;">
149
+ Main content with normal padding
150
+ </div>
151
+
152
+ <div slot="footer" style="background: rgba(var(--zn-color-secondary), 0.1); padding: 10px;">
153
+ Footer with custom padding
154
+ </div>
155
+ </zn-panel>
156
+ ```
63
157
 
64
- <!-- All the panel actions -->
158
+ ### Tabbed Panels
159
+
160
+ Use the `tabbed` attribute for panels containing tabs. This automatically removes body padding and applies flush styling to nested tabs.
161
+
162
+ ```html:preview
163
+ <zn-panel caption="Tabbed Panel" flush tabbed>
65
164
  <zn-chip slot="actions" icon="home">Awesome</zn-chip>
66
165
  <zn-chip slot="actions" icon="phone" type="info">example</zn-chip>
67
166
 
68
- <!-- Example panel content -->
69
167
  <zn-tabs flush>
70
168
  <zn-navbar slot="top">
71
169
  <li tab>Customer</li>
@@ -83,20 +181,42 @@ panel. This can be useful when using other components such as `zn-tabs`.
83
181
  </zn-sp>
84
182
  </zn-tabs>
85
183
 
86
- <!-- Panel Footer -->
87
184
  <span slot="footer">
88
185
  Some awesome footer information
89
186
  </span>
90
187
  </zn-panel>
91
188
  ```
92
189
 
93
- ### Moving the caption
190
+ ### Transparent Panels
191
+
192
+ Use the `transparent` attribute to remove the panel background and border, creating a borderless container.
94
193
 
95
194
  ```html:preview
195
+ <zn-panel caption="Transparent Panel" description="No background or border" transparent>
196
+ <div style="padding: 20px; background: rgba(var(--zn-color-info), 0.1);">
197
+ Content in transparent panel
198
+ </div>
199
+ </zn-panel>
200
+ ```
96
201
 
97
- <zn-panel flush>
202
+ ### Shadow Panels
203
+
204
+ Use the `shadow` attribute to add a prominent drop shadow to the panel.
98
205
 
99
- <!-- Example panel content -->
206
+ ```html:preview
207
+ <zn-panel caption="Shadow Panel" description="With drop shadow effect" shadow>
208
+ <div style="padding: 20px;">
209
+ Content with enhanced shadow
210
+ </div>
211
+ </zn-panel>
212
+ ```
213
+
214
+ ### Moving the Caption
215
+
216
+ When using tabs, you can move the caption to the tabs component instead of the panel header.
217
+
218
+ ```html:preview
219
+ <zn-panel flush>
100
220
  <zn-tabs caption="Example Panel">
101
221
  <zn-navbar slot="top">
102
222
  <li tab>Customer</li>
@@ -114,7 +234,6 @@ panel. This can be useful when using other components such as `zn-tabs`.
114
234
  </zn-sp>
115
235
  </zn-tabs>
116
236
 
117
- <!-- Panel Footer -->
118
237
  <span slot="footer">
119
238
  Some awesome footer information
120
239
  </span>
@@ -123,19 +242,87 @@ panel. This can be useful when using other components such as `zn-tabs`.
123
242
 
124
243
  ### Cosmic Panel
125
244
 
126
- ```html:preview
245
+ Use the `cosmic` attribute to add an animated cosmic border effect to the panel.
127
246
 
247
+ ```html:preview
128
248
  <zn-panel flush cosmic>
129
-
130
- <!-- Example panel content -->
131
249
  <zn-sp flush no-gap divide>
132
250
  <zn-inline-edit padded inline caption="Label 1" value="This is Awesome"></zn-inline-edit>
133
251
  <zn-inline-edit padded inline caption="Label 2" value="This is Awesome"></zn-inline-edit>
134
252
  </zn-sp>
135
253
 
136
- <!-- Panel Footer -->
137
254
  <span slot="footer">
138
255
  Some awesome footer information
139
256
  </span>
140
257
  </zn-panel>
141
- ```
258
+ ```
259
+
260
+ ### Basis Width
261
+
262
+ Use the `basis-px` attribute to set a custom flex-basis width for the panel in pixels.
263
+
264
+ ```html:preview
265
+ <div style="display: flex; gap: 10px;">
266
+ <zn-panel caption="Panel 1" basis-px="300">
267
+ <div style="padding: 20px;">
268
+ 300px basis
269
+ </div>
270
+ </zn-panel>
271
+
272
+ <zn-panel caption="Panel 2" basis-px="500">
273
+ <div style="padding: 20px;">
274
+ 500px basis
275
+ </div>
276
+ </zn-panel>
277
+ </div>
278
+ ```
279
+
280
+ ### Combining Features
281
+
282
+ All panel features can be combined to create rich, complex layouts.
283
+
284
+ ```html:preview
285
+ <zn-panel
286
+ caption="Advanced Panel"
287
+ description="Combining multiple features"
288
+ icon="dashboard"
289
+ header-underline
290
+ shadow>
291
+
292
+ <zn-chip slot="actions" icon="settings" type="info">Configure</zn-chip>
293
+ <zn-button slot="actions" icon="refresh" size="x-small" color="transparent" square></zn-button>
294
+
295
+ <div style="padding: 20px;">
296
+ <h3>Dashboard Overview</h3>
297
+ <p>This panel combines header actions, icons, underline, and shadow effects.</p>
298
+ </div>
299
+
300
+ <div slot="footer">
301
+ <zn-button size="small" color="success">Save Changes</zn-button>
302
+ <zn-button size="small" color="secondary">Cancel</zn-button>
303
+ </div>
304
+ </zn-panel>
305
+ ```
306
+
307
+ ## Usage Notes
308
+
309
+ ### Layout Behavior
310
+
311
+ Panels are designed to work within flexible layouts. They have a default `flex-grow: 1` and respond to their container's sizing. Use `basis-px` to control the initial width when using multiple panels in a flex layout.
312
+
313
+ ### Automatic Tab Handling
314
+
315
+ When a panel contains a `zn-tabs` component and the `tabbed` attribute is not set, the panel automatically applies `flush-x` to the tabs and adjusts body styling to remove top padding.
316
+
317
+ ### Header Display
318
+
319
+ The panel header only renders when one of the following conditions is met:
320
+ - A `caption` is provided
321
+ - The `actions` slot has content
322
+
323
+ ### CSS Custom Properties
324
+
325
+ The following CSS custom properties can be used to customize the panel:
326
+
327
+ - `--zn-panel-basis` - Controls the flex-basis of the panel (set via `basis-px` attribute)
328
+