@kubex/zinc 1.1.184 → 2.0.0
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.
- package/.browserslistrc +2 -0
- package/.github/workflows/js_build_and_deploy.yaml +54 -1
- package/.github/workflows/test.yaml +27 -0
- package/dist/chunks/zn.UWJLIXDT.js +1 -0
- package/dist/custom-elements.json +10344 -2583
- package/dist/vscode.html-custom-data.json +1102 -125
- package/dist/web-types.json +2217 -224
- package/dist/zn.d.ts +2306 -417
- package/dist/zn.min.css +1 -1
- package/dist/zn.min.js +2313 -1635
- package/docs/_includes/default.njk +4 -1
- package/docs/assets/scripts/docs.js +22 -6
- package/docs/assets/styles/docs.css +9 -2
- package/docs/data/report-table-day-compare.json +380 -0
- package/docs/data/report-table.json +314 -0
- package/docs/pages/components/avatar-group.md +57 -0
- package/docs/pages/components/badge.md +67 -0
- package/docs/pages/components/button.md +41 -1
- package/docs/pages/components/chat-message.md +16 -0
- package/docs/pages/components/checkbox.md +1 -1
- package/docs/pages/components/chip.md +25 -13
- package/docs/pages/components/color-picker.md +37 -0
- package/docs/pages/components/copy-button.md +2 -2
- package/docs/pages/components/data-table-filter.md +33 -50
- package/docs/pages/components/data-table-search.md +4 -4
- package/docs/pages/components/data-table.md +27 -3
- package/docs/pages/components/date-range.md +116 -0
- package/docs/pages/components/dialog.md +29 -37
- package/docs/pages/components/diff-row.md +28 -0
- package/docs/pages/components/diff.md +46 -0
- package/docs/pages/components/editor.md +55 -0
- package/docs/pages/components/filter-wrapper.md +20 -0
- package/docs/pages/components/icon.md +46 -1
- package/docs/pages/components/input.md +30 -11
- package/docs/pages/components/item.md +35 -0
- package/docs/pages/components/key-value.md +25 -0
- package/docs/pages/components/menu.md +74 -7
- package/docs/pages/components/nav-item.md +15 -0
- package/docs/pages/components/nav-list.md +132 -0
- package/docs/pages/components/navbar.md +100 -1
- package/docs/pages/components/page.md +242 -74
- package/docs/pages/components/priority-list.md +43 -5
- package/docs/pages/components/query-builder.md +23 -0
- package/docs/pages/components/radio-group.md +33 -1
- package/docs/pages/components/radio.md +1 -1
- package/docs/pages/components/report-table.md +202 -0
- package/docs/pages/components/stat.md +30 -0
- package/docs/pages/components/tile.md +11 -0
- package/docs/pages/components/tooltip.md +1 -1
- package/docs/pages/components/translation-grid.md +86 -0
- package/docs/pages/components/vertical-stepper.md +108 -64
- package/package.json +2 -1
- package/scss/_global-spacing.scss +2 -2
- package/scss/_root.scss +11 -171
- package/scss/boot.scss +14 -0
- package/scss/mixins/_helper-mixins.scss +24 -2
- package/scss/mixins/_motion-mixins.scss +126 -0
- package/scss/mixins/_spacing-mixins.scss +4 -3
- package/scss/mixins/_tab-indicator-mixins.scss +12 -0
- package/scss/mixins/_typography-mixins.scss +1 -1
- package/scss/mixins/index.scss +14 -0
- package/scss/shared/_base.scss +32 -1
- package/scss/shared/_button-mixin.scss +7 -5
- package/scss/shared/_table.scss +35 -4
- package/scss/shared/nav.scss +4 -0
- package/scss/shared/shimmer.scss +1 -1
- package/scss/table-controls.scss +206 -0
- package/scss/themes/_dark.scss +1 -3
- package/scss/themes/_index.scss +1 -1
- package/scss/themes/_light.scss +46 -6
- package/scss/themes/_modes.scss +11 -11
- package/scss/themes/_openbyte.scss +944 -0
- package/scss/themes/_typography.scss +4 -2
- package/scss/variables/index.scss +0 -9
- package/src/components/alert/alert.component.ts +14 -4
- package/src/components/alert/alert.scss +55 -69
- package/src/components/alert/alert.test.ts +8 -0
- package/src/components/animated-button/animated-button.component.ts +3 -2
- package/src/components/animated-button/animated-button.scss +6 -23
- package/src/components/animated-button/animated-button.test.ts +4 -3
- package/src/components/avatar-group/avatar-group.component.ts +84 -0
- package/src/components/avatar-group/avatar-group.scss +54 -0
- package/src/components/avatar-group/avatar-group.test.ts +59 -0
- package/src/components/avatar-group/index.ts +12 -0
- package/src/components/badge/badge.component.ts +49 -0
- package/src/components/badge/badge.scss +80 -0
- package/src/components/badge/badge.test.ts +34 -0
- package/src/components/badge/index.ts +12 -0
- package/src/components/bulk-actions/bulk-actions.component.ts +14 -2
- package/src/components/button/button.component.ts +242 -11
- package/src/components/button/button.scss +133 -25
- package/src/components/button/button.test.ts +122 -0
- package/src/components/button-menu/button-menu.component.ts +32 -11
- package/src/components/button-menu/button-menu.scss +5 -1
- package/src/components/channel-tile/channel-tile.component.ts +34 -27
- package/src/components/channel-tile/channel-tile.scss +76 -43
- package/src/components/chart/builders.test.ts +46 -0
- package/src/components/chart/builders.ts +27 -3
- package/src/components/chart/chart-live.test.ts +4 -6
- package/src/components/chart/chart.component.ts +125 -5
- package/src/components/chart/chart.scss +121 -0
- package/src/components/chart/chart.test.ts +81 -0
- package/src/components/chat-message/chat-message.component.ts +21 -1
- package/src/components/chat-message/chat-message.scss +13 -2
- package/src/components/chat-message/chat-message.test.ts +9 -0
- package/src/components/checkbox/checkbox.component.ts +61 -27
- package/src/components/checkbox/checkbox.scss +58 -25
- package/src/components/checkbox-group/checkbox-group.component.ts +7 -1
- package/src/components/chip/chip.component.ts +11 -1
- package/src/components/chip/chip.scss +91 -26
- package/src/components/chip/chip.test.ts +17 -0
- package/src/components/collapsible/collapsible.component.ts +17 -3
- package/src/components/collapsible/collapsible.scss +19 -10
- package/src/components/color-picker/color-picker.component.ts +277 -0
- package/src/components/color-picker/color-picker.scss +141 -0
- package/src/components/color-picker/color-picker.test.ts +57 -0
- package/src/components/color-picker/index.ts +12 -0
- package/src/components/cols/cols.component.ts +17 -3
- package/src/components/cols/cols.scss +24 -13
- package/src/components/cols/cols.test.ts +33 -0
- package/src/components/confirm/confirm.component.ts +20 -6
- package/src/components/confirm/confirm.test.ts +52 -0
- package/src/components/content-block/content-block.component.ts +38 -9
- package/src/components/content-block/content-block.scss +11 -5
- package/src/components/content-block/content-block.test.ts +26 -0
- package/src/components/copy-button/copy-button.component.ts +2 -2
- package/src/components/copy-button/copy-button.scss +17 -4
- package/src/components/data-select/data-select.component.ts +3 -1
- package/src/components/data-table/data-table.component.ts +364 -142
- package/src/components/data-table/data-table.scss +133 -60
- package/src/components/data-table/data-table.test.ts +356 -4
- package/src/components/data-table-filter/data-table-filter.component.ts +426 -406
- package/src/components/data-table-filter/data-table-filter.scss +176 -148
- package/src/components/data-table-filter/data-table-filter.test.ts +271 -273
- package/src/components/data-table-search/data-table-search.component.ts +4 -2
- package/src/components/data-table-search/data-table-search.scss +8 -1
- package/src/components/data-table-search/data-table-search.test.ts +29 -0
- package/src/components/date-range/date-range-math.test.ts +78 -0
- package/src/components/date-range/date-range-math.ts +105 -0
- package/src/components/date-range/date-range.component.ts +375 -0
- package/src/components/date-range/date-range.scss +272 -0
- package/src/components/date-range/date-range.test.ts +247 -0
- package/src/components/date-range/index.ts +12 -0
- package/src/components/datepicker/datepicker.component.ts +44 -7
- package/src/components/datepicker/datepicker.scss +9 -0
- package/src/components/datepicker/datepicker.test.ts +2 -2
- package/src/components/dialog/dialog.component.ts +38 -19
- package/src/components/dialog/dialog.scss +65 -36
- package/src/components/dialog/dialog.test.ts +14 -0
- package/src/components/diff/diff.component.ts +55 -0
- package/src/components/diff/diff.scss +46 -0
- package/src/components/diff/diff.test.ts +15 -0
- package/src/components/diff/index.ts +12 -0
- package/src/components/diff-row/diff-row.component.ts +75 -0
- package/src/components/diff-row/diff-row.scss +70 -0
- package/src/components/diff-row/diff-row.test.ts +37 -0
- package/src/components/diff-row/index.ts +12 -0
- package/src/components/dropdown/dropdown.component.ts +12 -10
- package/src/components/dropdown/dropdown.scss +2 -0
- package/src/components/editor/editor.component.ts +159 -11
- package/src/components/editor/editor.scss +250 -1
- package/src/components/editor/editor.test.ts +31 -3
- package/src/components/editor/modules/ai/panel/ai-panel.scss +0 -1
- package/src/components/editor/modules/attachment/attachment.ts +53 -31
- package/src/components/editor/modules/context-menu/context-menu.ts +17 -0
- package/src/components/editor/modules/dialog/dialog.component.ts +23 -1
- package/src/components/editor/modules/dialog/dialog.test.ts +28 -0
- package/src/components/editor/modules/emoji/emoji.ts +4 -5
- package/src/components/editor/modules/merge-field/merge-field.ts +83 -0
- package/src/components/editor/modules/toolbar/toolbar.component.ts +121 -68
- package/src/components/editor/modules/toolbar/toolbar.scss +38 -0
- package/src/components/editor/modules/toolbar/toolbar.ts +25 -1
- package/src/components/empty-state/empty-state.component.ts +6 -1
- package/src/components/empty-state/empty-state.scss +21 -4
- package/src/components/expanding-action/expanding-action.component.ts +22 -34
- package/src/components/expanding-action/expanding-action.scss +3 -45
- package/src/components/expanding-action/expanding-action.test.ts +2 -1
- package/src/components/file/file.component.ts +30 -2
- package/src/components/file/file.scss +6 -0
- package/src/components/filter-wrapper/filter-wrapper.component.ts +45 -10
- package/src/components/filter-wrapper/filter-wrapper.test.ts +58 -2
- package/src/components/flow-builder/flow-builder.component.ts +36 -3
- package/src/components/flow-builder/flow-builder.scss +0 -6
- package/src/components/flow-builder/modules/flow-canvas/flow-canvas.component.ts +8 -0
- package/src/components/flow-builder/modules/flow-canvas/flow-canvas.scss +10 -5
- package/src/components/flow-builder/modules/flow-node/flow-node.component.ts +17 -0
- package/src/components/flow-builder/modules/flow-node/flow-node.scss +10 -0
- package/src/components/form-actions/form-actions.component.ts +48 -2
- package/src/components/form-actions/form-actions.scss +1 -1
- package/src/components/form-group/form-group.component.ts +10 -3
- package/src/components/form-group/form-group.scss +37 -4
- package/src/components/form-group/form-group.test.ts +10 -0
- package/src/components/header/header.component.ts +11 -4
- package/src/components/header/header.scss +47 -5
- package/src/components/hover-container/hover-container.component.ts +4 -5
- package/src/components/icon/icon.component.ts +95 -9
- package/src/components/icon/icon.scss +70 -6
- package/src/components/icon/icon.test.ts +55 -0
- package/src/components/icon-picker/icon-picker.component.ts +35 -1
- package/src/components/inline-edit/inline-edit.component.ts +38 -8
- package/src/components/inline-edit/inline-edit.scss +128 -19
- package/src/components/input/input.component.ts +173 -297
- package/src/components/input/input.scss +65 -43
- package/src/components/input/input.test.ts +86 -4
- package/src/components/item/item.component.ts +12 -0
- package/src/components/item/item.scss +102 -3
- package/src/components/item/item.test.ts +23 -0
- package/src/components/key/key.component.ts +2 -2
- package/src/components/key/key.scss +11 -0
- package/src/components/key-value/index.ts +12 -0
- package/src/components/key-value/key-value.component.ts +160 -0
- package/src/components/key-value/key-value.scss +20 -0
- package/src/components/key-value/key-value.test.ts +22 -0
- package/src/components/markdown-editor/markdown-editor.component.ts +8 -1
- package/src/components/menu/menu.component.ts +21 -2
- package/src/components/menu/menu.scss +43 -23
- package/src/components/menu/menu.test.ts +33 -0
- package/src/components/menu-item/menu-item.component.ts +13 -2
- package/src/components/menu-item/menu-item.scss +56 -23
- package/src/components/menu-item/menu-item.test.ts +31 -0
- package/src/components/menu-item/submenu-controller.ts +25 -15
- package/src/components/menu-label/index.ts +12 -0
- package/src/components/menu-label/menu-label.component.ts +30 -0
- package/src/components/menu-label/menu-label.scss +18 -0
- package/src/components/nav-item/index.ts +12 -0
- package/src/components/nav-item/nav-item.component.ts +83 -0
- package/src/components/nav-item/nav-item.scss +128 -0
- package/src/components/nav-list/index.ts +12 -0
- package/src/components/nav-list/nav-list.component.ts +313 -0
- package/src/components/nav-list/nav-list.scss +87 -0
- package/src/components/nav-list/nav-list.test.ts +250 -0
- package/src/components/navbar/navbar.component.ts +235 -171
- package/src/components/navbar/navbar.scss +333 -169
- package/src/components/navbar/navbar.test.ts +63 -143
- package/src/components/page/page.component.ts +114 -29
- package/src/components/page/page.scss +223 -95
- package/src/components/page/page.test.ts +214 -3
- package/src/components/page-builder/page-builder.component.ts +51 -5
- package/src/components/page-builder/page-builder.scss +6 -1
- package/src/components/page-nav/page-nav.component.ts +25 -3
- package/src/components/page-nav/page-nav.scss +10 -2
- package/src/components/pagination/pagination.scss +1 -1
- package/src/components/panel/panel.component.ts +14 -13
- package/src/components/panel/panel.scss +14 -10
- package/src/components/panel/panel.test.ts +42 -0
- package/src/components/popup/popup.component.ts +20 -13
- package/src/components/popup/popup.test.ts +21 -1
- package/src/components/priority-list/priority-list.component.ts +157 -172
- package/src/components/priority-list/priority-list.scss +113 -17
- package/src/components/priority-list/priority-list.test.ts +301 -3
- package/src/components/progress-bar/progress-bar.component.ts +1 -1
- package/src/components/progress-bar/progress-bar.scss +16 -4
- package/src/components/progress-tile/progress-tile.scss +1 -1
- package/src/components/query-builder/query-builder.component.ts +85 -10
- package/src/components/query-builder/query-builder.scss +7 -1
- package/src/components/query-builder/query-builder.test.ts +40 -0
- package/src/components/radio/radio.component.ts +57 -18
- package/src/components/radio/radio.scss +101 -26
- package/src/components/radio-group/radio-group.component.ts +45 -7
- package/src/components/radio-group/radio-group.scss +17 -0
- package/src/components/radio-group/radio-group.test.ts +63 -2
- package/src/components/rating/rating.component.ts +23 -0
- package/src/components/rating/rating.scss +1 -1
- package/src/components/remarkd-editor/remarkd-editor.component.ts +60 -5
- package/src/components/remarkd-editor/remarkd-editor.scss +12 -4
- package/src/components/report-table/index.ts +12 -0
- package/src/components/report-table/report-format.test.ts +86 -0
- package/src/components/report-table/report-format.ts +72 -0
- package/src/components/report-table/report-math.test.ts +74 -0
- package/src/components/report-table/report-math.ts +252 -0
- package/src/components/report-table/report-table.component.ts +681 -0
- package/src/components/report-table/report-table.scss +328 -0
- package/src/components/report-table/report-table.test.ts +702 -0
- package/src/components/reveal/reveal.component.ts +15 -1
- package/src/components/reveal/reveal.scss +5 -0
- package/src/components/schedule-builder/schedule-builder.component.ts +23 -8
- package/src/components/scroll-container/scroll-container.component.ts +19 -1
- package/src/components/scroll-container/scroll-container.scss +6 -1
- package/src/components/select/select.component.ts +52 -36
- package/src/components/select/select.scss +42 -25
- package/src/components/select/select.test.ts +14 -2
- package/src/components/settings-container/settings-container.scss +18 -5
- package/src/components/sidebar/sidebar.component.ts +8 -1
- package/src/components/sidebar/sidebar.scss +6 -1
- package/src/components/skeleton/skeleton.component.ts +3 -3
- package/src/components/skeleton/skeleton.scss +6 -6
- package/src/components/skeleton/skeleton.test.ts +9 -0
- package/src/components/slash-menu/slash-menu.scss +1 -1
- package/src/components/slideout/slideout.component.ts +20 -3
- package/src/components/slideout/slideout.scss +13 -6
- package/src/components/slideout/slideout.test.ts +19 -0
- package/src/components/split-button/split-button.component.ts +1 -1
- package/src/components/split-pane/split-pane.component.ts +71 -8
- package/src/components/split-pane/split-pane.scss +145 -41
- package/src/components/split-pane/split-pane.test.ts +23 -3
- package/src/components/stat/stat.component.ts +209 -14
- package/src/components/stat/stat.scss +305 -5
- package/src/components/stat/stat.test.ts +143 -2
- package/src/components/status-indicator/status-indicator.scss +22 -21
- package/src/components/stepper/stepper.scss +3 -3
- package/src/components/tab/tab.component.ts +1 -0
- package/src/components/table/table.component.ts +12 -1
- package/src/components/table/table.scss +21 -13
- package/src/components/table/table.test.ts +17 -0
- package/src/components/tabs/tabs.component.ts +150 -37
- package/src/components/tabs/tabs.scss +48 -7
- package/src/components/tabs/tabs.test.ts +169 -0
- package/src/components/textarea/textarea.component.ts +25 -3
- package/src/components/textarea/textarea.scss +10 -0
- package/src/components/textarea/textarea.test.ts +8 -4
- package/src/components/theme-editor/theme-editor.scss +0 -6
- package/src/components/tile/tile.component.ts +32 -2
- package/src/components/tile/tile.scss +40 -7
- package/src/components/tile/tile.test.ts +10 -0
- package/src/components/toggle/toggle.component.ts +23 -7
- package/src/components/toggle/toggle.scss +36 -29
- package/src/components/toggle/toggle.test.ts +17 -0
- package/src/components/tooltip/tooltip.component.ts +3 -0
- package/src/components/tooltip/tooltip.scss +11 -6
- package/src/components/tooltip/tooltip.test.ts +12 -0
- package/src/components/translation-field/index.ts +12 -0
- package/src/components/translation-field/translation-field.component.ts +55 -0
- package/src/components/translation-field/translation-field.scss +101 -0
- package/src/components/translation-fields/index.ts +12 -0
- package/src/components/translation-fields/translation-fields.component.ts +80 -0
- package/src/components/translation-fields/translation-fields.scss +60 -0
- package/src/components/translation-grid/index.ts +12 -0
- package/src/components/translation-grid/translation-grid.component.ts +157 -0
- package/src/components/translation-grid/translation-grid.scss +138 -0
- package/src/components/translation-grid/translation-grid.test.ts +28 -0
- package/src/components/vertical-stepper/vertical-stepper.component.ts +35 -9
- package/src/components/vertical-stepper/vertical-stepper.scss +110 -39
- package/src/components/vertical-stepper/vertical-stepper.test.ts +35 -0
- package/src/components/well/well.scss +2 -2
- package/src/events/events.ts +2 -0
- package/src/events/zn-chart-click.ts +13 -0
- package/src/events/zn-report-change.ts +7 -0
- package/src/form-control.scss +36 -3
- package/src/internal/anchored-popover.ts +175 -0
- package/src/internal/animate.ts +19 -5
- package/src/internal/cosmic-border.ts +15 -0
- package/src/internal/form.ts +1 -1
- package/src/internal/hover-intent.ts +15 -0
- package/src/internal/input-modality.ts +15 -0
- package/src/internal/pointer-intent.ts +37 -0
- package/src/internal/reorder.ts +625 -0
- package/src/internal/scroll.ts +51 -3
- package/src/internal/selection-card.ts +1 -1
- package/src/internal/tab-indicator.ts +92 -0
- package/src/internal/table-sort.ts +25 -0
- package/src/internal/table-tabs.ts +108 -0
- package/src/internal/test-drag.ts +35 -0
- package/src/internal/theme-openbyte.test.ts +126 -0
- package/src/internal/theme.ts +4 -4
- package/src/internal/zinc-element.ts +2 -2
- package/src/selection-card.scss +25 -0
- package/src/types/web-test-runner-commands.d.ts +1 -0
- package/src/utilities/color.test.ts +43 -0
- package/src/utilities/color.ts +189 -0
- package/src/zinc.ts +14 -0
- package/.github/workflows/eleventy_build.yml +0 -42
- package/scss/themes/_aura.scss +0 -114
|
@@ -35,17 +35,17 @@ Use the `active` attribute to highlight the current step in the process. The act
|
|
|
35
35
|
|
|
36
36
|
### With Custom Icons
|
|
37
37
|
|
|
38
|
-
Use the `icon` slot to add custom icons or indicators for each step. The icon is centred in the step's
|
|
38
|
+
Use the `icon` slot to add custom icons or indicators for each step. The icon is centred in the step's 28px marker; use `size="16"`.
|
|
39
39
|
|
|
40
40
|
```html:preview
|
|
41
41
|
<zn-vertical-stepper caption="Personal Details" description="Enter your name and contact information" first active>
|
|
42
|
-
<zn-icon slot="icon" src="person"></zn-icon>
|
|
42
|
+
<zn-icon slot="icon" src="person" size="16"></zn-icon>
|
|
43
43
|
</zn-vertical-stepper>
|
|
44
44
|
<zn-vertical-stepper caption="Address" description="Provide your shipping address">
|
|
45
|
-
<zn-icon slot="icon" src="home"></zn-icon>
|
|
45
|
+
<zn-icon slot="icon" src="home" size="16"></zn-icon>
|
|
46
46
|
</zn-vertical-stepper>
|
|
47
47
|
<zn-vertical-stepper caption="Payment" description="Add payment method" last>
|
|
48
|
-
<zn-icon slot="icon" src="credit_card"></zn-icon>
|
|
48
|
+
<zn-icon slot="icon" src="credit_card" size="16"></zn-icon>
|
|
49
49
|
</zn-vertical-stepper>
|
|
50
50
|
```
|
|
51
51
|
|
|
@@ -54,17 +54,17 @@ Use the `icon` slot to add custom icons or indicators for each step. The icon is
|
|
|
54
54
|
Show completed steps with check marks or success icons.
|
|
55
55
|
|
|
56
56
|
```html:preview
|
|
57
|
-
<zn-vertical-stepper caption="Registration" description="Account created successfully" first>
|
|
58
|
-
<zn-icon slot="icon" src="
|
|
57
|
+
<zn-vertical-stepper type="success" caption="Registration" description="Account created successfully" first>
|
|
58
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
59
59
|
</zn-vertical-stepper>
|
|
60
|
-
<zn-vertical-stepper caption="Verification" description="Email verified" active>
|
|
61
|
-
<zn-icon slot="icon" src="
|
|
60
|
+
<zn-vertical-stepper type="success" caption="Verification" description="Email verified" active>
|
|
61
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
62
62
|
</zn-vertical-stepper>
|
|
63
63
|
<zn-vertical-stepper caption="Payment Setup" description="Add your payment method">
|
|
64
|
-
<zn-icon slot="icon" src="pending"
|
|
64
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
65
65
|
</zn-vertical-stepper>
|
|
66
66
|
<zn-vertical-stepper caption="Complete Profile" description="Upload profile picture" last>
|
|
67
|
-
<zn-icon slot="icon" src="pending"
|
|
67
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
68
68
|
</zn-vertical-stepper>
|
|
69
69
|
```
|
|
70
70
|
|
|
@@ -73,17 +73,17 @@ Show completed steps with check marks or success icons.
|
|
|
73
73
|
A practical example showing an order fulfillment process with different step states.
|
|
74
74
|
|
|
75
75
|
```html:preview
|
|
76
|
-
<zn-vertical-stepper caption="Order Received" description="Order #12345 received on Jan 20, 2026" first>
|
|
77
|
-
<zn-icon slot="icon" src="
|
|
76
|
+
<zn-vertical-stepper type="success" caption="Order Received" description="Order #12345 received on Jan 20, 2026" first>
|
|
77
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
78
78
|
</zn-vertical-stepper>
|
|
79
|
-
<zn-vertical-stepper caption="Processing" description="Your order is being prepared" active>
|
|
80
|
-
<zn-icon slot="icon" src="shopping_bag"
|
|
79
|
+
<zn-vertical-stepper type="primary" caption="Processing" description="Your order is being prepared" active>
|
|
80
|
+
<zn-icon slot="icon" src="shopping_bag" size="16"></zn-icon>
|
|
81
81
|
</zn-vertical-stepper>
|
|
82
82
|
<zn-vertical-stepper caption="Shipped" description="Estimated delivery: Jan 25, 2026">
|
|
83
|
-
<zn-icon slot="icon" src="local_shipping"
|
|
83
|
+
<zn-icon slot="icon" src="local_shipping" size="16"></zn-icon>
|
|
84
84
|
</zn-vertical-stepper>
|
|
85
85
|
<zn-vertical-stepper caption="Delivered" description="Package will arrive at your doorstep" last>
|
|
86
|
-
<zn-icon slot="icon" src="home"
|
|
86
|
+
<zn-icon slot="icon" src="home" size="16"></zn-icon>
|
|
87
87
|
</zn-vertical-stepper>
|
|
88
88
|
```
|
|
89
89
|
|
|
@@ -102,28 +102,28 @@ Create continuous step lists by omitting the `first` and `last` attributes when
|
|
|
102
102
|
Show detailed installation or setup progress with descriptive text for each phase.
|
|
103
103
|
|
|
104
104
|
```html:preview
|
|
105
|
-
<zn-vertical-stepper
|
|
105
|
+
<zn-vertical-stepper type="success"
|
|
106
106
|
caption="Download"
|
|
107
107
|
description="Downloading installer files (45 MB)"
|
|
108
108
|
first>
|
|
109
|
-
<zn-icon slot="icon" src="
|
|
109
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
110
110
|
</zn-vertical-stepper>
|
|
111
|
-
<zn-vertical-stepper
|
|
111
|
+
<zn-vertical-stepper type="primary"
|
|
112
112
|
caption="Extract"
|
|
113
113
|
description="Extracting packages and dependencies"
|
|
114
114
|
active>
|
|
115
|
-
<zn-icon slot="icon" src="folder_zip"
|
|
115
|
+
<zn-icon slot="icon" src="folder_zip" size="16"></zn-icon>
|
|
116
116
|
</zn-vertical-stepper>
|
|
117
117
|
<zn-vertical-stepper
|
|
118
118
|
caption="Install"
|
|
119
119
|
description="Installing application components">
|
|
120
|
-
<zn-icon slot="icon" src="pending"
|
|
120
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
121
121
|
</zn-vertical-stepper>
|
|
122
122
|
<zn-vertical-stepper
|
|
123
123
|
caption="Configure"
|
|
124
124
|
description="Setting up initial configuration"
|
|
125
125
|
last>
|
|
126
|
-
<zn-icon slot="icon" src="pending"
|
|
126
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
127
127
|
</zn-vertical-stepper>
|
|
128
128
|
```
|
|
129
129
|
|
|
@@ -132,33 +132,33 @@ Show detailed installation or setup progress with descriptive text for each phas
|
|
|
132
132
|
A multi-step onboarding flow with clear descriptions for each phase.
|
|
133
133
|
|
|
134
134
|
```html:preview
|
|
135
|
-
<zn-vertical-stepper
|
|
135
|
+
<zn-vertical-stepper type="success"
|
|
136
136
|
caption="Welcome"
|
|
137
137
|
description="Introduction to the platform and key features"
|
|
138
138
|
first>
|
|
139
|
-
<zn-icon slot="icon" src="
|
|
139
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
140
140
|
</zn-vertical-stepper>
|
|
141
|
-
<zn-vertical-stepper
|
|
141
|
+
<zn-vertical-stepper type="primary"
|
|
142
142
|
caption="Team Setup"
|
|
143
143
|
description="Invite team members and assign roles"
|
|
144
144
|
active>
|
|
145
|
-
<zn-icon slot="icon" src="group_add"
|
|
145
|
+
<zn-icon slot="icon" src="group_add" size="16"></zn-icon>
|
|
146
146
|
</zn-vertical-stepper>
|
|
147
147
|
<zn-vertical-stepper
|
|
148
148
|
caption="Project Configuration"
|
|
149
149
|
description="Set up your first project and workspace">
|
|
150
|
-
<zn-icon slot="icon" src="settings"
|
|
150
|
+
<zn-icon slot="icon" src="settings" size="16"></zn-icon>
|
|
151
151
|
</zn-vertical-stepper>
|
|
152
152
|
<zn-vertical-stepper
|
|
153
153
|
caption="Integration"
|
|
154
154
|
description="Connect external tools and services">
|
|
155
|
-
<zn-icon slot="icon" src="link"
|
|
155
|
+
<zn-icon slot="icon" src="link" size="16"></zn-icon>
|
|
156
156
|
</zn-vertical-stepper>
|
|
157
157
|
<zn-vertical-stepper
|
|
158
158
|
caption="Launch"
|
|
159
159
|
description="Review settings and go live"
|
|
160
160
|
last>
|
|
161
|
-
<zn-icon slot="icon" src="rocket_launch"
|
|
161
|
+
<zn-icon slot="icon" src="rocket_launch" size="16"></zn-icon>
|
|
162
162
|
</zn-vertical-stepper>
|
|
163
163
|
```
|
|
164
164
|
|
|
@@ -167,23 +167,67 @@ A multi-step onboarding flow with clear descriptions for each phase.
|
|
|
167
167
|
Show error or warning states in your stepper workflow.
|
|
168
168
|
|
|
169
169
|
```html:preview
|
|
170
|
-
<zn-vertical-stepper
|
|
170
|
+
<zn-vertical-stepper type="success"
|
|
171
171
|
caption="Validation"
|
|
172
172
|
description="Form validation passed"
|
|
173
173
|
first>
|
|
174
|
-
<zn-icon slot="icon" src="
|
|
174
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
175
175
|
</zn-vertical-stepper>
|
|
176
|
-
<zn-vertical-stepper
|
|
176
|
+
<zn-vertical-stepper type="error"
|
|
177
177
|
caption="Payment Processing"
|
|
178
178
|
description="Payment failed - card declined"
|
|
179
179
|
active>
|
|
180
|
-
<zn-icon slot="icon" src="error"
|
|
180
|
+
<zn-icon slot="icon" src="error" size="16"></zn-icon>
|
|
181
181
|
</zn-vertical-stepper>
|
|
182
182
|
<zn-vertical-stepper
|
|
183
183
|
caption="Confirmation"
|
|
184
184
|
description="Order confirmation email"
|
|
185
185
|
last>
|
|
186
|
-
<zn-icon slot="icon" src="pending"
|
|
186
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
187
|
+
</zn-vertical-stepper>
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
### Content, Suffix and Actions
|
|
191
|
+
|
|
192
|
+
Use the default slot for metadata or chips below the caption, the `suffix` slot for chips inline after it, and the `actions` slot for controls at the end of the step. The line grows with the step, so taller content keeps the steps joined.
|
|
193
|
+
|
|
194
|
+
```html:preview
|
|
195
|
+
<zn-vertical-stepper caption="Version 4" type="warning" dashed first>
|
|
196
|
+
<span slot="icon">v4</span>
|
|
197
|
+
<zn-chip slot="suffix" size="small" type="warning">Draft</zn-chip>
|
|
198
|
+
<span>Last saved today 09:12</span>
|
|
199
|
+
<zn-button slot="actions" color="secondary">Continue editing</zn-button>
|
|
200
|
+
</zn-vertical-stepper>
|
|
201
|
+
<zn-vertical-stepper caption="Version 3" type="success">
|
|
202
|
+
<span slot="icon">v3</span>
|
|
203
|
+
<zn-chip slot="suffix" size="small" type="success">Live</zn-chip>
|
|
204
|
+
<span>Published 12 Oct 2026 · effective 14 Oct 2026</span>
|
|
205
|
+
<zn-button slot="actions" color="secondary">View</zn-button>
|
|
206
|
+
</zn-vertical-stepper>
|
|
207
|
+
<zn-vertical-stepper caption="Version 2" last>
|
|
208
|
+
<span slot="icon">v2</span>
|
|
209
|
+
<zn-chip slot="suffix" size="small">Superseded</zn-chip>
|
|
210
|
+
<span>Published 30 Sep 2026 · effective 30 Sep 2026</span>
|
|
211
|
+
<zn-button slot="actions" color="secondary">View</zn-button>
|
|
212
|
+
</zn-vertical-stepper>
|
|
213
|
+
```
|
|
214
|
+
|
|
215
|
+
### Selected Steps and Highlighted Lines
|
|
216
|
+
|
|
217
|
+
Use `selected` to ring a picked step's marker, and `highlight-line` to colour the line from a step to the next, such as the range between two compared versions. `dashed` draws the marker's border dashed for a step that is not final.
|
|
218
|
+
|
|
219
|
+
```html:preview
|
|
220
|
+
<zn-vertical-stepper caption="Version 4" description="Draft" type="warning" dashed first>
|
|
221
|
+
<span slot="icon">v4</span>
|
|
222
|
+
</zn-vertical-stepper>
|
|
223
|
+
<zn-vertical-stepper caption="Version 3" description="Compare from here" type="success" selected highlight-line>
|
|
224
|
+
<span slot="icon">v3</span>
|
|
225
|
+
</zn-vertical-stepper>
|
|
226
|
+
<zn-vertical-stepper caption="Version 2" description="Included in the comparison" highlight-line>
|
|
227
|
+
<span slot="icon">v2</span>
|
|
228
|
+
</zn-vertical-stepper>
|
|
229
|
+
<zn-vertical-stepper caption="Version 1" description="Compare to here" selected last>
|
|
230
|
+
<span slot="icon">v1</span>
|
|
187
231
|
</zn-vertical-stepper>
|
|
188
232
|
```
|
|
189
233
|
|
|
@@ -199,20 +243,20 @@ Update vertical stepper states dynamically based on user actions.
|
|
|
199
243
|
description="Complete this step"
|
|
200
244
|
first
|
|
201
245
|
active>
|
|
202
|
-
<zn-icon slot="icon" src="radio_button_checked"></zn-icon>
|
|
246
|
+
<zn-icon slot="icon" src="radio_button_checked" size="16"></zn-icon>
|
|
203
247
|
</zn-vertical-stepper>
|
|
204
248
|
<zn-vertical-stepper
|
|
205
249
|
id="v-step-2"
|
|
206
250
|
caption="Step 2"
|
|
207
251
|
description="Pending">
|
|
208
|
-
<zn-icon slot="icon" src="radio_button_unchecked"></zn-icon>
|
|
252
|
+
<zn-icon slot="icon" src="radio_button_unchecked" size="16"></zn-icon>
|
|
209
253
|
</zn-vertical-stepper>
|
|
210
254
|
<zn-vertical-stepper
|
|
211
255
|
id="v-step-3"
|
|
212
256
|
caption="Step 3"
|
|
213
257
|
description="Pending"
|
|
214
258
|
last>
|
|
215
|
-
<zn-icon slot="icon" src="radio_button_unchecked"></zn-icon>
|
|
259
|
+
<zn-icon slot="icon" src="radio_button_unchecked" size="16"></zn-icon>
|
|
216
260
|
</zn-vertical-stepper>
|
|
217
261
|
</div>
|
|
218
262
|
<br />
|
|
@@ -234,20 +278,20 @@ Update vertical stepper states dynamically based on user actions.
|
|
|
234
278
|
if (i < currentVStep) {
|
|
235
279
|
// Completed step
|
|
236
280
|
step.removeAttribute('active');
|
|
237
|
-
icon.setAttribute('src', '
|
|
238
|
-
|
|
281
|
+
icon.setAttribute('src', 'check');
|
|
282
|
+
step.type = 'success';
|
|
239
283
|
step.description = 'Completed';
|
|
240
284
|
} else if (i === currentVStep) {
|
|
241
285
|
// Active step
|
|
242
286
|
step.setAttribute('active', '');
|
|
243
287
|
icon.setAttribute('src', 'radio_button_checked');
|
|
244
|
-
|
|
288
|
+
step.type = 'primary';
|
|
245
289
|
step.description = 'In Progress';
|
|
246
290
|
} else {
|
|
247
291
|
// Future step
|
|
248
292
|
step.removeAttribute('active');
|
|
249
293
|
icon.setAttribute('src', 'radio_button_unchecked');
|
|
250
|
-
|
|
294
|
+
step.type = 'neutral';
|
|
251
295
|
step.description = 'Pending';
|
|
252
296
|
}
|
|
253
297
|
}
|
|
@@ -275,24 +319,24 @@ Update vertical stepper states dynamically based on user actions.
|
|
|
275
319
|
|
|
276
320
|
### Compact Vertical Stepper
|
|
277
321
|
|
|
278
|
-
|
|
322
|
+
Tighten the space between steps with `--zn-vertical-stepper-gap`.
|
|
279
323
|
|
|
280
324
|
```html:preview
|
|
281
325
|
<div class="compact-stepper">
|
|
282
|
-
<zn-vertical-stepper caption="Login" description="User authenticated" first>
|
|
283
|
-
<zn-icon slot="icon" src="
|
|
326
|
+
<zn-vertical-stepper type="success" caption="Login" description="User authenticated" first>
|
|
327
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
284
328
|
</zn-vertical-stepper>
|
|
285
329
|
<zn-vertical-stepper caption="Dashboard" description="Loading user data" active>
|
|
286
|
-
<zn-icon slot="icon" src="dashboard"></zn-icon>
|
|
330
|
+
<zn-icon slot="icon" src="dashboard" size="16"></zn-icon>
|
|
287
331
|
</zn-vertical-stepper>
|
|
288
332
|
<zn-vertical-stepper caption="Reports" description="View analytics" last>
|
|
289
|
-
<zn-icon slot="icon" src="bar_chart"></zn-icon>
|
|
333
|
+
<zn-icon slot="icon" src="bar_chart" size="16"></zn-icon>
|
|
290
334
|
</zn-vertical-stepper>
|
|
291
335
|
</div>
|
|
292
336
|
|
|
293
337
|
<style>
|
|
294
338
|
.compact-stepper zn-vertical-stepper {
|
|
295
|
-
|
|
339
|
+
--zn-vertical-stepper-gap: 4px;
|
|
296
340
|
}
|
|
297
341
|
</style>
|
|
298
342
|
```
|
|
@@ -313,23 +357,23 @@ Combine vertical and horizontal steppers for complex workflows where the horizon
|
|
|
313
357
|
</zn-stepper>
|
|
314
358
|
<br /><br />
|
|
315
359
|
<div style="padding-left: 20px;">
|
|
316
|
-
<zn-vertical-stepper
|
|
360
|
+
<zn-vertical-stepper type="success"
|
|
317
361
|
caption="Basic Info"
|
|
318
362
|
description="Name, email, and contact details"
|
|
319
363
|
first>
|
|
320
|
-
<zn-icon slot="icon" src="
|
|
364
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
321
365
|
</zn-vertical-stepper>
|
|
322
|
-
<zn-vertical-stepper
|
|
366
|
+
<zn-vertical-stepper type="primary"
|
|
323
367
|
caption="Profile Photo"
|
|
324
368
|
description="Upload your profile picture"
|
|
325
369
|
active>
|
|
326
|
-
<zn-icon slot="icon" src="photo_camera"
|
|
370
|
+
<zn-icon slot="icon" src="photo_camera" size="16"></zn-icon>
|
|
327
371
|
</zn-vertical-stepper>
|
|
328
372
|
<zn-vertical-stepper
|
|
329
373
|
caption="Preferences"
|
|
330
374
|
description="Set notification and privacy settings"
|
|
331
375
|
last>
|
|
332
|
-
<zn-icon slot="icon" src="tune"
|
|
376
|
+
<zn-icon slot="icon" src="tune" size="16"></zn-icon>
|
|
333
377
|
</zn-vertical-stepper>
|
|
334
378
|
</div>
|
|
335
379
|
```
|
|
@@ -346,7 +390,7 @@ Add interactive elements next to each step for expanded functionality.
|
|
|
346
390
|
description="Check all modifications before committing"
|
|
347
391
|
first
|
|
348
392
|
active>
|
|
349
|
-
<zn-icon slot="icon" src="preview"></zn-icon>
|
|
393
|
+
<zn-icon slot="icon" src="preview" size="16"></zn-icon>
|
|
350
394
|
</zn-vertical-stepper>
|
|
351
395
|
</div>
|
|
352
396
|
<zn-button icon="edit" color="transparent">Edit</zn-button>
|
|
@@ -356,7 +400,7 @@ Add interactive elements next to each step for expanded functionality.
|
|
|
356
400
|
<zn-vertical-stepper
|
|
357
401
|
caption="Run Tests"
|
|
358
402
|
description="Execute test suite">
|
|
359
|
-
<zn-icon slot="icon" src="pending"></zn-icon>
|
|
403
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
360
404
|
</zn-vertical-stepper>
|
|
361
405
|
</div>
|
|
362
406
|
<zn-button icon="play_arrow" color="transparent" disabled>Run</zn-button>
|
|
@@ -367,7 +411,7 @@ Add interactive elements next to each step for expanded functionality.
|
|
|
367
411
|
caption="Deploy"
|
|
368
412
|
description="Push changes to production"
|
|
369
413
|
last>
|
|
370
|
-
<zn-icon slot="icon" src="pending"></zn-icon>
|
|
414
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
371
415
|
</zn-vertical-stepper>
|
|
372
416
|
</div>
|
|
373
417
|
<zn-button icon="publish" color="transparent" disabled>Deploy</zn-button>
|
|
@@ -379,37 +423,37 @@ Add interactive elements next to each step for expanded functionality.
|
|
|
379
423
|
Show hierarchical relationships by nesting vertical steppers or indenting them.
|
|
380
424
|
|
|
381
425
|
```html:preview
|
|
382
|
-
<zn-vertical-stepper
|
|
426
|
+
<zn-vertical-stepper type="success"
|
|
383
427
|
caption="Phase 1: Planning"
|
|
384
428
|
description="Define project scope and requirements"
|
|
385
429
|
first>
|
|
386
|
-
<zn-icon slot="icon" src="
|
|
430
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
387
431
|
</zn-vertical-stepper>
|
|
388
432
|
|
|
389
433
|
<div style="padding-left: 40px;">
|
|
390
|
-
<zn-vertical-stepper
|
|
434
|
+
<zn-vertical-stepper type="success"
|
|
391
435
|
caption="1.1 Research"
|
|
392
436
|
description="Market analysis completed">
|
|
393
|
-
<zn-icon slot="icon" src="
|
|
437
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
394
438
|
</zn-vertical-stepper>
|
|
395
|
-
<zn-vertical-stepper
|
|
439
|
+
<zn-vertical-stepper type="success"
|
|
396
440
|
caption="1.2 Design"
|
|
397
441
|
description="Wireframes and mockups">
|
|
398
|
-
<zn-icon slot="icon" src="
|
|
442
|
+
<zn-icon slot="icon" src="check" size="16"></zn-icon>
|
|
399
443
|
</zn-vertical-stepper>
|
|
400
444
|
</div>
|
|
401
445
|
|
|
402
|
-
<zn-vertical-stepper
|
|
446
|
+
<zn-vertical-stepper type="primary"
|
|
403
447
|
caption="Phase 2: Development"
|
|
404
448
|
description="Build and test features"
|
|
405
449
|
active>
|
|
406
|
-
<zn-icon slot="icon" src="code"
|
|
450
|
+
<zn-icon slot="icon" src="code" size="16"></zn-icon>
|
|
407
451
|
</zn-vertical-stepper>
|
|
408
452
|
|
|
409
453
|
<zn-vertical-stepper
|
|
410
454
|
caption="Phase 3: Deployment"
|
|
411
455
|
description="Release to production"
|
|
412
456
|
last>
|
|
413
|
-
<zn-icon slot="icon" src="pending"></zn-icon>
|
|
457
|
+
<zn-icon slot="icon" src="pending" size="16"></zn-icon>
|
|
414
458
|
</zn-vertical-stepper>
|
|
415
459
|
```
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@kubex/zinc",
|
|
3
|
-
"version": "
|
|
3
|
+
"version": "2.0.0",
|
|
4
4
|
"description": "A collection of web components for building web applications based off of @shoelace-style/Shoelace",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"web components",
|
|
@@ -50,6 +50,7 @@
|
|
|
50
50
|
"@shoelace-style/localize": "^3.2.1",
|
|
51
51
|
"air-datepicker": "^3.5.3",
|
|
52
52
|
"composed-offset-position": "^0.0.6",
|
|
53
|
+
"country-flag-icons": "^1.6.20",
|
|
53
54
|
"dompurify": "^3.4.16",
|
|
54
55
|
"echarts": "^6.0.0",
|
|
55
56
|
"emoji-mart": "^5.6.0",
|
|
@@ -58,7 +58,7 @@
|
|
|
58
58
|
.form-spacing {
|
|
59
59
|
display: grid;
|
|
60
60
|
grid-template-columns: 1fr;
|
|
61
|
-
gap: var(--zn-spacing-medium) var(--zn-spacing-small);
|
|
61
|
+
gap: var(--zn-form-row-gap, var(--zn-spacing-medium)) var(--zn-spacing-small);
|
|
62
62
|
|
|
63
63
|
@include mixins.media-query(md) {
|
|
64
64
|
grid-template-columns: repeat(6, 1fr);
|
|
@@ -73,7 +73,7 @@
|
|
|
73
73
|
display: flex;
|
|
74
74
|
justify-content: flex-end;
|
|
75
75
|
align-items: center;
|
|
76
|
-
gap: var(--zn-spacing-small);
|
|
76
|
+
gap: var(--zn-form-actions-gap, var(--zn-spacing-small));
|
|
77
77
|
}
|
|
78
78
|
|
|
79
79
|
zn-form-group ~ zn-form-group {
|
package/scss/_root.scss
CHANGED
|
@@ -7,6 +7,12 @@
|
|
|
7
7
|
:root {
|
|
8
8
|
--zn-base-px: 8px;
|
|
9
9
|
--zn-base-gap: calc(var(--zn-base-px) * 2);
|
|
10
|
+
// Resolved here, so a modal zn-page can set --zn-base-gap from it without referencing itself.
|
|
11
|
+
--zn-page-modal-gap: var(--zn-base-gap);
|
|
12
|
+
// A modal shell overlays its own close button at --zn-page-modal-gap from the page edge;
|
|
13
|
+
// these describe it so the header can keep clear of it and size its actions to match.
|
|
14
|
+
--zn-page-closer-size: 36px;
|
|
15
|
+
--zn-page-closer-gap: var(--zn-spacing-x-small);
|
|
10
16
|
--zn-gutter: 2px;
|
|
11
17
|
--zn-default-margin: 0 auto 0 0;
|
|
12
18
|
--zn-icon-size: 20px;
|
|
@@ -94,6 +100,10 @@
|
|
|
94
100
|
--zn-color-on-warning: 255, 255, 255;
|
|
95
101
|
--zn-color-on-error: 255, 255, 255;
|
|
96
102
|
--zn-color-on-accent: 255, 255, 255;
|
|
103
|
+
--zn-color-on-ai: 255, 255, 255;
|
|
104
|
+
|
|
105
|
+
// AI-generated content only (badges, alerts, buttons); never a general accent.
|
|
106
|
+
--zn-color-ai: 117, 87, 245;
|
|
97
107
|
|
|
98
108
|
// Brand Colors
|
|
99
109
|
--zn-red: 237, 84, 109;
|
|
@@ -129,7 +139,7 @@
|
|
|
129
139
|
}
|
|
130
140
|
|
|
131
141
|
.zn-muted {
|
|
132
|
-
color: var(--zn-color-muted-text);
|
|
142
|
+
color: rgb(var(--zn-color-muted-text));
|
|
133
143
|
}
|
|
134
144
|
|
|
135
145
|
.zn-size-xs {
|
|
@@ -322,173 +332,3 @@ ul.disc {
|
|
|
322
332
|
ul.square {
|
|
323
333
|
list-style-type: square;
|
|
324
334
|
}
|
|
325
|
-
|
|
326
|
-
// Aura — soft, light-based theme with a pastel violet identity.
|
|
327
|
-
// Appended last so it wins source-order over the :root/light defaults on the
|
|
328
|
-
// document element (which carries the `t="aura"` attribute *and* matches :root).
|
|
329
|
-
// Only the source colour tokens and the theme-specific leaf tokens are set;
|
|
330
|
-
// derived tokens (--zn-body, --zn-text, --zn-panel ...) reference these via
|
|
331
|
-
// var() and follow automatically.
|
|
332
|
-
//
|
|
333
|
-
// Aura ships both palettes: this block is the light one, and the
|
|
334
|
-
// `html[t="aura"][m="dark"]` block below re-points every token in it for dark. The
|
|
335
|
-
// two must stay token-for-token in step — a token set here and missed there
|
|
336
|
-
// leaks a light value into dark mode, because this block is mode-agnostic and
|
|
337
|
-
// so applies in both.
|
|
338
|
-
html[t="aura"], body[t="aura"], html.theme-aura, body.theme-aura {
|
|
339
|
-
--zn-backdrop-color: rgba(30, 27, 60, 0.45);
|
|
340
|
-
|
|
341
|
-
--zn-color-text: 42, 32, 89;
|
|
342
|
-
--zn-color-muted-text: 128, 118, 158;
|
|
343
|
-
|
|
344
|
-
--zn-color-base: 255, 255, 255;
|
|
345
|
-
--zn-color-body: 250, 248, 255;
|
|
346
|
-
--zn-color-navigation: var(--zn-color-base);
|
|
347
|
-
--zn-color-navigation-hightlight: 245, 242, 255;
|
|
348
|
-
--zn-color-border: 228, 222, 246;
|
|
349
|
-
--zn-color-border-active: 214, 206, 240;
|
|
350
|
-
--zn-color-tab: 240, 235, 252;
|
|
351
|
-
--zn-color-panel: 255, 255, 255;
|
|
352
|
-
|
|
353
|
-
--zn-color-primary: 139, 110, 245;
|
|
354
|
-
--zn-color-info: 53, 104, 195;
|
|
355
|
-
--zn-color-success: 98, 177, 121;
|
|
356
|
-
--zn-color-warning: 241, 168, 80;
|
|
357
|
-
--zn-color-error: 236, 68, 91;
|
|
358
|
-
--zn-color-disabled: 181, 181, 181;
|
|
359
|
-
|
|
360
|
-
// Theme-specific leaf tokens (light/dark declare these in their own blocks,
|
|
361
|
-
// so aura must supply its own — they are not inherited from :root).
|
|
362
|
-
--zn-panel-opacity: 1;
|
|
363
|
-
--zn-shadow: 232, 226, 250;
|
|
364
|
-
--zn-panel-secondary: 248 246 255;
|
|
365
|
-
--zn-panel-highlight: 245, 242, 255;
|
|
366
|
-
--zn-panel-highlight-opacity: 1;
|
|
367
|
-
--zn-input-bg-accent: 240, 236, 252;
|
|
368
|
-
--zn-bright-bg: 255, 255, 255;
|
|
369
|
-
--zn-light-text: 130, 120, 160;
|
|
370
|
-
--zn-dark-text: 60, 44, 110;
|
|
371
|
-
--zn-purple-text: 124, 92, 246;
|
|
372
|
-
--zn-accent: 200, 130, 230;
|
|
373
|
-
|
|
374
|
-
// Frosted-glass inactive tabs for the zn-page tab navbar (consumed in
|
|
375
|
-
// components/navbar/navbar.scss, scoped there to :host-context(zn-page)).
|
|
376
|
-
//
|
|
377
|
-
// The translucent background carries the frosted look on its own. Do NOT put a
|
|
378
|
-
// backdrop-filter here: navbar.scss applies it per inactive tab, so each tab
|
|
379
|
-
// becomes its own render surface and re-samples + re-blurs its backdrop every
|
|
380
|
-
// frame. On a page with a normal number of tabs that alone pushed GPU draw to
|
|
381
|
-
// ~8ms/frame and dropped frames on every scroll.
|
|
382
|
-
--navbar-page-inactive-tab-background: rgba(255, 255, 255, 0.5);
|
|
383
|
-
--navbar-page-inactive-tab-filter: none;
|
|
384
|
-
|
|
385
|
-
// Aurora gradient behind the zn-page header, plus the weight of the wave
|
|
386
|
-
// artwork layered on top of it (components/page/page.scss). Held still — see
|
|
387
|
-
// the PERF note there before reintroducing any drift.
|
|
388
|
-
--zn-page-header-aurora: linear-gradient(225deg, rgba(233, 227, 255, 1) 0%, rgba(214, 246, 245, 1) 40%, rgba(233, 227, 255, 1) 100%), linear-gradient(180deg, rgba(129, 153, 217, 0) 0%, rgba(0, 0, 0, 1) 100%);
|
|
389
|
-
--zn-page-header-wave-opacity: 0.04;
|
|
390
|
-
|
|
391
|
-
.zn-primary {
|
|
392
|
-
color: rgb(var(--zn-color-primary));
|
|
393
|
-
}
|
|
394
|
-
}
|
|
395
|
-
|
|
396
|
-
// Aura dark — the same violet identity drawn over the dark primitives, on a
|
|
397
|
-
// deep navy canvas rather than a bespoke hue.
|
|
398
|
-
//
|
|
399
|
-
// The canvas colour is deliberate: `--zn-color-body` is the exact navy the
|
|
400
|
-
// rubix shell chrome paints itself (`--rx-shell-header-bg: 19, 29, 45`, set in
|
|
401
|
-
// the aura-dark block of static/src/scss/shell/_header.scss — deeper than the
|
|
402
|
-
// 40, 55, 80 aura light mode uses), so the top bar, the app navigation and the
|
|
403
|
-
// page body read as one continuous surface with panels lifted above it.
|
|
404
|
-
//
|
|
405
|
-
// Specificity note: the selectors are deliberately `html[…]`/`body[…]` (a type
|
|
406
|
-
// selector plus attributes) rather than `:root[…]`. That keeps the ordering the
|
|
407
|
-
// bare selectors used to have: `html[t="aura"][m="dark"]` (0,2,1) outranks both
|
|
408
|
-
// `:root[m="dark"]` (0,2,0) from `#{modes.$dark}` and the mode-agnostic
|
|
409
|
-
// `html[t="aura"]` (0,1,1), which in turn still loses to `:root[m="dark"]` the
|
|
410
|
-
// way `[t="aura"]` (0,1,0) did. `:root[t="aura"]` would have been (0,2,0) and
|
|
411
|
-
// silently started beating the dark block. This one stays last in the file.
|
|
412
|
-
html[t="aura"][m="dark"], body[t="aura"][m="dark"],
|
|
413
|
-
html.theme-aura.theme-dark, body.theme-aura.theme-dark {
|
|
414
|
-
--zn-backdrop-color: rgba(8, 12, 24, 0.65);
|
|
415
|
-
|
|
416
|
-
--zn-color-text: 226, 228, 242;
|
|
417
|
-
--zn-color-muted-text: 154, 163, 190;
|
|
418
|
-
|
|
419
|
-
--zn-color-base: 30, 41, 61;
|
|
420
|
-
// Matches --rx-shell-header-bg in the rubix shell (its aura-dark block in
|
|
421
|
-
// static/src/scss/shell/_header.scss) — change both together.
|
|
422
|
-
--zn-color-body: 19, 29, 45;
|
|
423
|
-
--zn-color-navigation: var(--zn-color-base);
|
|
424
|
-
--zn-color-navigation-hightlight: 35, 47, 70;
|
|
425
|
-
--zn-color-border: 64, 82, 113;
|
|
426
|
-
--zn-color-border-active: 92, 111, 145;
|
|
427
|
-
--zn-color-tab: 33, 45, 66;
|
|
428
|
-
// A few points of lift reads as an outline rather than a surface, so the
|
|
429
|
-
// panel steps well clear of the body. #223555 — the top of the ladder:
|
|
430
|
-
// body 19,29,45 -> page canvas 31,45,70 -> panel 34,53,85.
|
|
431
|
-
--zn-color-panel: 34, 53, 85;
|
|
432
|
-
|
|
433
|
-
--zn-color-primary: 163, 140, 250;
|
|
434
|
-
--zn-color-info: 96, 148, 232;
|
|
435
|
-
--zn-color-success: 116, 199, 140;
|
|
436
|
-
--zn-color-warning: 245, 183, 105;
|
|
437
|
-
--zn-color-error: 244, 106, 126;
|
|
438
|
-
--zn-color-disabled: 118, 130, 152;
|
|
439
|
-
|
|
440
|
-
// Theme-specific leaf tokens — the mirror of the light block above.
|
|
441
|
-
--zn-panel-opacity: 1;
|
|
442
|
-
--zn-shadow: 12, 18, 32;
|
|
443
|
-
--zn-panel-secondary: 46 61 88;
|
|
444
|
-
--zn-panel-highlight: 66, 86, 120;
|
|
445
|
-
// NOT the classic dark 0.1: on a lifted palette a 10% wash leaves hover and
|
|
446
|
-
// selected rows indistinguishable from the panel they sit on.
|
|
447
|
-
--zn-panel-highlight-opacity: 1;
|
|
448
|
-
--zn-input-bg-accent: 34, 46, 68;
|
|
449
|
-
--zn-bright-bg: 52, 69, 99;
|
|
450
|
-
--zn-light-text: 168, 176, 201;
|
|
451
|
-
--zn-dark-text: 226, 228, 242;
|
|
452
|
-
--zn-purple-text: 178, 158, 252;
|
|
453
|
-
--zn-accent: 96, 196, 220;
|
|
454
|
-
|
|
455
|
-
// #{modes.$dark} hardcodes the base dark theme's own accent here; aura owns
|
|
456
|
-
// its accent in both modes, so re-point both this and .zn-primary below.
|
|
457
|
-
//
|
|
458
|
-
// Deliberately NOT var(--zn-color-primary): aura dark's *interactive* accent is
|
|
459
|
-
// a cyan, while its identity accent stays violet. --zn-primary is what buttons,
|
|
460
|
-
// the navbar, tabs, toggles, radios, progress bars, steppers and pagination
|
|
461
|
-
// read; --zn-color-primary (still violet above) is what inputs, checkboxes,
|
|
462
|
-
// selects, dialogs and the .zn-primary text utility read.
|
|
463
|
-
--zn-primary: 126, 238, 255;
|
|
464
|
-
// A fill this light is unreadable under the default white ink (1.35:1), so the
|
|
465
|
-
// paired ink drops to the shell navy — 12.6:1 on the cyan. zn-button declares
|
|
466
|
-
// the pair as --btn-color / --btn-ink for exactly this case.
|
|
467
|
-
--zn-color-on-primary: 19, 29, 45;
|
|
468
|
-
|
|
469
|
-
--base: 0, 0, 0;
|
|
470
|
-
--inverse-base: 255, 255, 255;
|
|
471
|
-
|
|
472
|
-
// Frosted-glass inactive tabs — see the light block for why there is no
|
|
473
|
-
// backdrop-filter. Inverted against the light block: on the deep aurora an
|
|
474
|
-
// inactive tab recedes by being *darker* than the gradient, not lighter.
|
|
475
|
-
--navbar-page-inactive-tab-background: rgba(0, 0, 0, 0.30);
|
|
476
|
-
--navbar-page-inactive-tab-filter: none;
|
|
477
|
-
|
|
478
|
-
// The page canvas sits a step above the navy shell surface, so the page reads
|
|
479
|
-
// as a sheet laid on the chrome rather than a hole in it (components/page/page.scss).
|
|
480
|
-
--zn-page-canvas: 31, 45, 70;
|
|
481
|
-
|
|
482
|
-
// The dark aurora: the light gradient's violet -> teal -> violet sweep taken
|
|
483
|
-
// down to full-strength indigo/teal so the page title's light ink reads on it.
|
|
484
|
-
--zn-page-header-aurora: linear-gradient(225deg, rgb(76 42 202) 0%, rgb(0 100 150) 40%, rgb(56 40 115) 100%), linear-gradient(180deg, rgb(31 50 103 / 0%) 0%, rgb(0, 0, 0) 100%);
|
|
485
|
-
// The violet wave artwork lifts rather than darkens here, so it can carry
|
|
486
|
-
// more weight than the 0.04 the pale light gradient tolerates.
|
|
487
|
-
--zn-page-header-wave-opacity: 0.10;
|
|
488
|
-
|
|
489
|
-
.zn-primary {
|
|
490
|
-
// !important to beat #{modes.$dark}'s own `.zn-primary { ... !important }`,
|
|
491
|
-
// which ties on specificity.
|
|
492
|
-
color: rgb(var(--zn-color-primary)) !important;
|
|
493
|
-
}
|
|
494
|
-
}
|
package/scss/boot.scss
CHANGED
|
@@ -25,3 +25,17 @@
|
|
|
25
25
|
opacity: 1;
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
|
+
|
|
29
|
+
// A pull-tab navbar hangs over the bottom of the pane above it, so the scroller there can scroll its end clear of the
|
|
30
|
+
// tabs. 37px is an icon-only pull-tab strip, the taller of the two kinds; hide-one hides a lone tab with an inline style.
|
|
31
|
+
zn-split-pane[vertical]:has(> [slot="secondary"] zn-navbar[hover]:not([style*="display: none"])) > [slot="primary"] {
|
|
32
|
+
--zn-pane-end-inset: 37px;
|
|
33
|
+
|
|
34
|
+
// A tab's content can overflow its panel, so the room goes after the content; a scroll container or app container
|
|
35
|
+
// leaves its own
|
|
36
|
+
zn-tab:not(:has(zn-scroll-container, .app-container))::after {
|
|
37
|
+
content: "";
|
|
38
|
+
display: block;
|
|
39
|
+
height: var(--zn-pane-end-inset);
|
|
40
|
+
}
|
|
41
|
+
}
|