@furystack/shades-common-components 11.0.0 → 12.0.1
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/CHANGELOG.md +443 -0
- package/esm/components/accordion/accordion-item.d.ts +31 -0
- package/esm/components/accordion/accordion-item.d.ts.map +1 -0
- package/esm/components/accordion/accordion-item.js +147 -0
- package/esm/components/accordion/accordion-item.js.map +1 -0
- package/esm/components/accordion/accordion.d.ts +27 -0
- package/esm/components/accordion/accordion.d.ts.map +1 -0
- package/esm/components/accordion/accordion.js +39 -0
- package/esm/components/accordion/accordion.js.map +1 -0
- package/esm/components/accordion/accordion.spec.d.ts +2 -0
- package/esm/components/accordion/accordion.spec.d.ts.map +1 -0
- package/esm/components/accordion/accordion.spec.js +284 -0
- package/esm/components/accordion/accordion.spec.js.map +1 -0
- package/esm/components/accordion/index.d.ts +3 -0
- package/esm/components/accordion/index.d.ts.map +1 -0
- package/esm/components/accordion/index.js +3 -0
- package/esm/components/accordion/index.js.map +1 -0
- package/esm/components/alert.d.ts +21 -0
- package/esm/components/alert.d.ts.map +1 -0
- package/esm/components/alert.js +131 -0
- package/esm/components/alert.js.map +1 -0
- package/esm/components/alert.spec.d.ts +2 -0
- package/esm/components/alert.spec.d.ts.map +1 -0
- package/esm/components/alert.spec.js +177 -0
- package/esm/components/alert.spec.js.map +1 -0
- package/esm/components/app-bar-link.d.ts +22 -2
- package/esm/components/app-bar-link.d.ts.map +1 -1
- package/esm/components/app-bar-link.js +20 -7
- package/esm/components/app-bar-link.js.map +1 -1
- package/esm/components/app-bar-link.spec.js +22 -19
- package/esm/components/app-bar-link.spec.js.map +1 -1
- package/esm/components/app-bar.d.ts +2 -0
- package/esm/components/app-bar.d.ts.map +1 -1
- package/esm/components/app-bar.js +16 -11
- package/esm/components/app-bar.js.map +1 -1
- package/esm/components/app-bar.spec.js +67 -52
- package/esm/components/app-bar.spec.js.map +1 -1
- package/esm/components/avatar.d.ts +2 -0
- package/esm/components/avatar.d.ts.map +1 -1
- package/esm/components/avatar.js +40 -37
- package/esm/components/avatar.js.map +1 -1
- package/esm/components/badge.d.ts +35 -0
- package/esm/components/badge.d.ts.map +1 -0
- package/esm/components/badge.js +68 -0
- package/esm/components/badge.js.map +1 -0
- package/esm/components/badge.spec.d.ts +2 -0
- package/esm/components/badge.spec.d.ts.map +1 -0
- package/esm/components/badge.spec.js +157 -0
- package/esm/components/badge.spec.js.map +1 -0
- package/esm/components/breadcrumb.d.ts +103 -0
- package/esm/components/breadcrumb.d.ts.map +1 -0
- package/esm/components/breadcrumb.js +121 -0
- package/esm/components/breadcrumb.js.map +1 -0
- package/esm/components/breadcrumb.spec.d.ts +2 -0
- package/esm/components/breadcrumb.spec.d.ts.map +1 -0
- package/esm/components/breadcrumb.spec.js +251 -0
- package/esm/components/breadcrumb.spec.js.map +1 -0
- package/esm/components/button-group.d.ts +85 -0
- package/esm/components/button-group.d.ts.map +1 -0
- package/esm/components/button-group.js +290 -0
- package/esm/components/button-group.js.map +1 -0
- package/esm/components/button-group.spec.d.ts +2 -0
- package/esm/components/button-group.spec.d.ts.map +1 -0
- package/esm/components/button-group.spec.js +502 -0
- package/esm/components/button-group.spec.js.map +1 -0
- package/esm/components/button.d.ts +44 -2
- package/esm/components/button.d.ts.map +1 -1
- package/esm/components/button.js +82 -73
- package/esm/components/button.js.map +1 -1
- package/esm/components/button.spec.js +205 -50
- package/esm/components/button.spec.js.map +1 -1
- package/esm/components/card.d.ts +117 -0
- package/esm/components/card.d.ts.map +1 -0
- package/esm/components/card.js +181 -0
- package/esm/components/card.js.map +1 -0
- package/esm/components/card.spec.d.ts +2 -0
- package/esm/components/card.spec.d.ts.map +1 -0
- package/esm/components/card.spec.js +278 -0
- package/esm/components/card.spec.js.map +1 -0
- package/esm/components/carousel.d.ts +50 -0
- package/esm/components/carousel.d.ts.map +1 -0
- package/esm/components/carousel.js +263 -0
- package/esm/components/carousel.js.map +1 -0
- package/esm/components/carousel.spec.d.ts +2 -0
- package/esm/components/carousel.spec.d.ts.map +1 -0
- package/esm/components/carousel.spec.js +677 -0
- package/esm/components/carousel.spec.js.map +1 -0
- package/esm/components/chip.d.ts +23 -0
- package/esm/components/chip.d.ts.map +1 -0
- package/esm/components/chip.js +139 -0
- package/esm/components/chip.js.map +1 -0
- package/esm/components/chip.spec.d.ts +2 -0
- package/esm/components/chip.spec.d.ts.map +1 -0
- package/esm/components/chip.spec.js +142 -0
- package/esm/components/chip.spec.js.map +1 -0
- package/esm/components/circular-progress.d.ts +37 -0
- package/esm/components/circular-progress.d.ts.map +1 -0
- package/esm/components/circular-progress.js +84 -0
- package/esm/components/circular-progress.js.map +1 -0
- package/esm/components/circular-progress.spec.d.ts +2 -0
- package/esm/components/circular-progress.spec.d.ts.map +1 -0
- package/esm/components/circular-progress.spec.js +228 -0
- package/esm/components/circular-progress.spec.js.map +1 -0
- package/esm/components/command-palette/command-palette-input.d.ts +3 -0
- package/esm/components/command-palette/command-palette-input.d.ts.map +1 -1
- package/esm/components/command-palette/command-palette-input.js +17 -9
- package/esm/components/command-palette/command-palette-input.js.map +1 -1
- package/esm/components/command-palette/command-palette-input.spec.js +172 -161
- package/esm/components/command-palette/command-palette-input.spec.js.map +1 -1
- package/esm/components/command-palette/command-palette-manager.spec.js +130 -114
- package/esm/components/command-palette/command-palette-manager.spec.js.map +1 -1
- package/esm/components/command-palette/command-palette-suggestion-list.d.ts +2 -0
- package/esm/components/command-palette/command-palette-suggestion-list.d.ts.map +1 -1
- package/esm/components/command-palette/command-palette-suggestion-list.js +20 -20
- package/esm/components/command-palette/command-palette-suggestion-list.js.map +1 -1
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js +296 -278
- package/esm/components/command-palette/command-palette-suggestion-list.spec.js.map +1 -1
- package/esm/components/command-palette/index.d.ts +2 -0
- package/esm/components/command-palette/index.d.ts.map +1 -1
- package/esm/components/command-palette/index.js +25 -94
- package/esm/components/command-palette/index.js.map +1 -1
- package/esm/components/command-palette/index.spec.js +12 -12
- package/esm/components/command-palette/index.spec.js.map +1 -1
- package/esm/components/context-menu/context-menu-item.d.ts +9 -0
- package/esm/components/context-menu/context-menu-item.d.ts.map +1 -0
- package/esm/components/context-menu/context-menu-item.js +56 -0
- package/esm/components/context-menu/context-menu-item.js.map +1 -0
- package/esm/components/context-menu/context-menu-manager.d.ts +52 -0
- package/esm/components/context-menu/context-menu-manager.d.ts.map +1 -0
- package/esm/components/context-menu/context-menu-manager.js +128 -0
- package/esm/components/context-menu/context-menu-manager.js.map +1 -0
- package/esm/components/context-menu/context-menu-manager.spec.d.ts +2 -0
- package/esm/components/context-menu/context-menu-manager.spec.d.ts.map +1 -0
- package/esm/components/context-menu/context-menu-manager.spec.js +326 -0
- package/esm/components/context-menu/context-menu-manager.spec.js.map +1 -0
- package/esm/components/context-menu/context-menu.d.ts +8 -0
- package/esm/components/context-menu/context-menu.d.ts.map +1 -0
- package/esm/components/context-menu/context-menu.js +79 -0
- package/esm/components/context-menu/context-menu.js.map +1 -0
- package/esm/components/context-menu/context-menu.spec.d.ts +2 -0
- package/esm/components/context-menu/context-menu.spec.d.ts.map +1 -0
- package/esm/components/context-menu/context-menu.spec.js +282 -0
- package/esm/components/context-menu/context-menu.spec.js.map +1 -0
- package/esm/components/context-menu/index.d.ts +4 -0
- package/esm/components/context-menu/index.d.ts.map +1 -0
- package/esm/components/context-menu/index.js +4 -0
- package/esm/components/context-menu/index.js.map +1 -0
- package/esm/components/data-grid/body.spec.js +194 -184
- package/esm/components/data-grid/body.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid-row.d.ts.map +1 -1
- package/esm/components/data-grid/data-grid-row.js +66 -54
- package/esm/components/data-grid/data-grid-row.js.map +1 -1
- package/esm/components/data-grid/data-grid-row.spec.js +127 -95
- package/esm/components/data-grid/data-grid-row.spec.js.map +1 -1
- package/esm/components/data-grid/data-grid.d.ts.map +1 -1
- package/esm/components/data-grid/data-grid.js +17 -16
- package/esm/components/data-grid/data-grid.js.map +1 -1
- package/esm/components/data-grid/data-grid.spec.js +364 -430
- package/esm/components/data-grid/data-grid.spec.js.map +1 -1
- package/esm/components/data-grid/footer.spec.js +215 -203
- package/esm/components/data-grid/footer.spec.js.map +1 -1
- package/esm/components/data-grid/header.d.ts +3 -1
- package/esm/components/data-grid/header.d.ts.map +1 -1
- package/esm/components/data-grid/header.js +42 -30
- package/esm/components/data-grid/header.js.map +1 -1
- package/esm/components/data-grid/header.spec.js +330 -307
- package/esm/components/data-grid/header.spec.js.map +1 -1
- package/esm/components/data-grid/selection-cell.d.ts +2 -0
- package/esm/components/data-grid/selection-cell.d.ts.map +1 -1
- package/esm/components/data-grid/selection-cell.js +2 -7
- package/esm/components/data-grid/selection-cell.js.map +1 -1
- package/esm/components/data-grid/selection-cell.spec.js +45 -36
- package/esm/components/data-grid/selection-cell.spec.js.map +1 -1
- package/esm/components/dialog.d.ts +46 -0
- package/esm/components/dialog.d.ts.map +1 -0
- package/esm/components/dialog.js +178 -0
- package/esm/components/dialog.js.map +1 -0
- package/esm/components/dialog.spec.d.ts +2 -0
- package/esm/components/dialog.spec.d.ts.map +1 -0
- package/esm/components/dialog.spec.js +113 -0
- package/esm/components/dialog.spec.js.map +1 -0
- package/esm/components/divider.d.ts +22 -0
- package/esm/components/divider.d.ts.map +1 -0
- package/esm/components/divider.js +113 -0
- package/esm/components/divider.js.map +1 -0
- package/esm/components/divider.spec.d.ts +2 -0
- package/esm/components/divider.spec.d.ts.map +1 -0
- package/esm/components/divider.spec.js +136 -0
- package/esm/components/divider.spec.js.map +1 -0
- package/esm/components/drawer/drawer-toggle-button.d.ts +36 -0
- package/esm/components/drawer/drawer-toggle-button.d.ts.map +1 -0
- package/esm/components/drawer/drawer-toggle-button.js +94 -0
- package/esm/components/drawer/drawer-toggle-button.js.map +1 -0
- package/esm/components/drawer/drawer-toggle-button.spec.d.ts +2 -0
- package/esm/components/drawer/drawer-toggle-button.spec.d.ts.map +1 -0
- package/esm/components/drawer/drawer-toggle-button.spec.js +306 -0
- package/esm/components/drawer/drawer-toggle-button.spec.js.map +1 -0
- package/esm/components/drawer/index.d.ts +56 -0
- package/esm/components/drawer/index.d.ts.map +1 -0
- package/esm/components/drawer/index.js +172 -0
- package/esm/components/drawer/index.js.map +1 -0
- package/esm/components/drawer/index.spec.d.ts +2 -0
- package/esm/components/drawer/index.spec.d.ts.map +1 -0
- package/esm/components/drawer/index.spec.js +538 -0
- package/esm/components/drawer/index.spec.js.map +1 -0
- package/esm/components/dropdown.d.ts +15 -0
- package/esm/components/dropdown.d.ts.map +1 -0
- package/esm/components/dropdown.js +262 -0
- package/esm/components/dropdown.js.map +1 -0
- package/esm/components/dropdown.spec.d.ts +2 -0
- package/esm/components/dropdown.spec.d.ts.map +1 -0
- package/esm/components/dropdown.spec.js +372 -0
- package/esm/components/dropdown.spec.js.map +1 -0
- package/esm/components/fab.d.ts +10 -1
- package/esm/components/fab.d.ts.map +1 -1
- package/esm/components/fab.js +24 -8
- package/esm/components/fab.js.map +1 -1
- package/esm/components/fab.spec.js +50 -39
- package/esm/components/fab.spec.js.map +1 -1
- package/esm/components/form.d.ts.map +1 -1
- package/esm/components/form.js +9 -7
- package/esm/components/form.js.map +1 -1
- package/esm/components/form.spec.js +209 -199
- package/esm/components/form.spec.js.map +1 -1
- package/esm/components/grid.js +10 -10
- package/esm/components/grid.js.map +1 -1
- package/esm/components/grid.spec.js +109 -85
- package/esm/components/grid.spec.js.map +1 -1
- package/esm/components/icons/icon-definitions.d.ts +140 -0
- package/esm/components/icons/icon-definitions.d.ts.map +1 -0
- package/esm/components/icons/icon-definitions.js +432 -0
- package/esm/components/icons/icon-definitions.js.map +1 -0
- package/esm/components/icons/icon-definitions.spec.d.ts +2 -0
- package/esm/components/icons/icon-definitions.spec.d.ts.map +1 -0
- package/esm/components/icons/icon-definitions.spec.js +59 -0
- package/esm/components/icons/icon-definitions.spec.js.map +1 -0
- package/esm/components/icons/icon-types.d.ts +48 -0
- package/esm/components/icons/icon-types.d.ts.map +1 -0
- package/esm/components/icons/icon-types.js +2 -0
- package/esm/components/icons/icon-types.js.map +1 -0
- package/esm/components/icons/icon.d.ts +56 -0
- package/esm/components/icons/icon.d.ts.map +1 -0
- package/esm/components/icons/icon.js +61 -0
- package/esm/components/icons/icon.js.map +1 -0
- package/esm/components/icons/icon.spec.d.ts +2 -0
- package/esm/components/icons/icon.spec.d.ts.map +1 -0
- package/esm/components/icons/icon.spec.js +224 -0
- package/esm/components/icons/icon.spec.js.map +1 -0
- package/esm/components/icons/index.d.ts +5 -0
- package/esm/components/icons/index.d.ts.map +1 -0
- package/esm/components/icons/index.js +3 -0
- package/esm/components/icons/index.js.map +1 -0
- package/esm/components/image.d.ts +62 -0
- package/esm/components/image.d.ts.map +1 -0
- package/esm/components/image.js +348 -0
- package/esm/components/image.js.map +1 -0
- package/esm/components/image.spec.d.ts +2 -0
- package/esm/components/image.spec.d.ts.map +1 -0
- package/esm/components/image.spec.js +542 -0
- package/esm/components/image.spec.js.map +1 -0
- package/esm/components/index.d.ts +32 -4
- package/esm/components/index.d.ts.map +1 -1
- package/esm/components/index.js +32 -4
- package/esm/components/index.js.map +1 -1
- package/esm/components/inputs/autocomplete.d.ts +2 -0
- package/esm/components/inputs/autocomplete.d.ts.map +1 -1
- package/esm/components/inputs/autocomplete.js +10 -6
- package/esm/components/inputs/autocomplete.js.map +1 -1
- package/esm/components/inputs/autocomplete.spec.js +10 -1
- package/esm/components/inputs/autocomplete.spec.js.map +1 -1
- package/esm/components/inputs/checkbox.d.ts +50 -0
- package/esm/components/inputs/checkbox.d.ts.map +1 -0
- package/esm/components/inputs/checkbox.js +126 -0
- package/esm/components/inputs/checkbox.js.map +1 -0
- package/esm/components/inputs/checkbox.spec.d.ts +2 -0
- package/esm/components/inputs/checkbox.spec.d.ts.map +1 -0
- package/esm/components/inputs/checkbox.spec.js +287 -0
- package/esm/components/inputs/checkbox.spec.js.map +1 -0
- package/esm/components/inputs/index.d.ts +7 -0
- package/esm/components/inputs/index.d.ts.map +1 -1
- package/esm/components/inputs/index.js +7 -0
- package/esm/components/inputs/index.js.map +1 -1
- package/esm/components/inputs/input-number.d.ts +79 -0
- package/esm/components/inputs/input-number.d.ts.map +1 -0
- package/esm/components/inputs/input-number.js +232 -0
- package/esm/components/inputs/input-number.js.map +1 -0
- package/esm/components/inputs/input-number.spec.d.ts +2 -0
- package/esm/components/inputs/input-number.spec.d.ts.map +1 -0
- package/esm/components/inputs/input-number.spec.js +516 -0
- package/esm/components/inputs/input-number.spec.js.map +1 -0
- package/esm/components/inputs/input.d.ts +2 -1
- package/esm/components/inputs/input.d.ts.map +1 -1
- package/esm/components/inputs/input.js +86 -116
- package/esm/components/inputs/input.js.map +1 -1
- package/esm/components/inputs/input.spec.js +461 -427
- package/esm/components/inputs/input.spec.js.map +1 -1
- package/esm/components/inputs/radio-group.d.ts +38 -0
- package/esm/components/inputs/radio-group.d.ts.map +1 -0
- package/esm/components/inputs/radio-group.js +58 -0
- package/esm/components/inputs/radio-group.js.map +1 -0
- package/esm/components/inputs/radio-group.spec.d.ts +2 -0
- package/esm/components/inputs/radio-group.spec.d.ts.map +1 -0
- package/esm/components/inputs/radio-group.spec.js +201 -0
- package/esm/components/inputs/radio-group.spec.js.map +1 -0
- package/esm/components/inputs/radio.d.ts +42 -0
- package/esm/components/inputs/radio.d.ts.map +1 -0
- package/esm/components/inputs/radio.js +134 -0
- package/esm/components/inputs/radio.js.map +1 -0
- package/esm/components/inputs/radio.spec.d.ts +2 -0
- package/esm/components/inputs/radio.spec.d.ts.map +1 -0
- package/esm/components/inputs/radio.spec.js +211 -0
- package/esm/components/inputs/radio.spec.js.map +1 -0
- package/esm/components/inputs/select.d.ts +67 -0
- package/esm/components/inputs/select.d.ts.map +1 -0
- package/esm/components/inputs/select.js +581 -0
- package/esm/components/inputs/select.js.map +1 -0
- package/esm/components/inputs/select.spec.d.ts +2 -0
- package/esm/components/inputs/select.spec.d.ts.map +1 -0
- package/esm/components/inputs/select.spec.js +1009 -0
- package/esm/components/inputs/select.spec.js.map +1 -0
- package/esm/components/inputs/slider.d.ts +66 -0
- package/esm/components/inputs/slider.d.ts.map +1 -0
- package/esm/components/inputs/slider.js +526 -0
- package/esm/components/inputs/slider.js.map +1 -0
- package/esm/components/inputs/slider.spec.d.ts +2 -0
- package/esm/components/inputs/slider.spec.d.ts.map +1 -0
- package/esm/components/inputs/slider.spec.js +812 -0
- package/esm/components/inputs/slider.spec.js.map +1 -0
- package/esm/components/inputs/switch.d.ts +50 -0
- package/esm/components/inputs/switch.d.ts.map +1 -0
- package/esm/components/inputs/switch.js +138 -0
- package/esm/components/inputs/switch.js.map +1 -0
- package/esm/components/inputs/switch.spec.d.ts +2 -0
- package/esm/components/inputs/switch.spec.d.ts.map +1 -0
- package/esm/components/inputs/switch.spec.js +313 -0
- package/esm/components/inputs/switch.spec.js.map +1 -0
- package/esm/components/inputs/text-area.d.ts +2 -0
- package/esm/components/inputs/text-area.d.ts.map +1 -1
- package/esm/components/inputs/text-area.js +13 -21
- package/esm/components/inputs/text-area.js.map +1 -1
- package/esm/components/inputs/text-area.spec.js +171 -156
- package/esm/components/inputs/text-area.spec.js.map +1 -1
- package/esm/components/linear-progress.d.ts +32 -0
- package/esm/components/linear-progress.d.ts.map +1 -0
- package/esm/components/linear-progress.js +79 -0
- package/esm/components/linear-progress.js.map +1 -0
- package/esm/components/linear-progress.spec.d.ts +2 -0
- package/esm/components/linear-progress.spec.d.ts.map +1 -0
- package/esm/components/linear-progress.spec.js +251 -0
- package/esm/components/linear-progress.spec.js.map +1 -0
- package/esm/components/list/index.d.ts +3 -0
- package/esm/components/list/index.d.ts.map +1 -0
- package/esm/components/list/index.js +3 -0
- package/esm/components/list/index.js.map +1 -0
- package/esm/components/list/list-item.d.ts +13 -0
- package/esm/components/list/list-item.d.ts.map +1 -0
- package/esm/components/list/list-item.js +81 -0
- package/esm/components/list/list-item.js.map +1 -0
- package/esm/components/list/list.d.ts +18 -0
- package/esm/components/list/list.d.ts.map +1 -0
- package/esm/components/list/list.js +42 -0
- package/esm/components/list/list.js.map +1 -0
- package/esm/components/list/list.spec.d.ts +2 -0
- package/esm/components/list/list.spec.d.ts.map +1 -0
- package/esm/components/list/list.spec.js +540 -0
- package/esm/components/list/list.spec.js.map +1 -0
- package/esm/components/loader.d.ts +2 -0
- package/esm/components/loader.d.ts.map +1 -1
- package/esm/components/loader.js +18 -10
- package/esm/components/loader.js.map +1 -1
- package/esm/components/loader.spec.js +191 -175
- package/esm/components/loader.spec.js.map +1 -1
- package/esm/components/menu/index.d.ts +3 -0
- package/esm/components/menu/index.d.ts.map +1 -0
- package/esm/components/menu/index.js +3 -0
- package/esm/components/menu/index.js.map +1 -0
- package/esm/components/menu/menu-types.d.ts +27 -0
- package/esm/components/menu/menu-types.d.ts.map +1 -0
- package/esm/components/menu/menu-types.js +22 -0
- package/esm/components/menu/menu-types.js.map +1 -0
- package/esm/components/menu/menu-types.spec.d.ts +2 -0
- package/esm/components/menu/menu-types.spec.d.ts.map +1 -0
- package/esm/components/menu/menu-types.spec.js +103 -0
- package/esm/components/menu/menu-types.spec.js.map +1 -0
- package/esm/components/menu/menu.d.ts +17 -0
- package/esm/components/menu/menu.d.ts.map +1 -0
- package/esm/components/menu/menu.js +240 -0
- package/esm/components/menu/menu.js.map +1 -0
- package/esm/components/menu/menu.spec.d.ts +2 -0
- package/esm/components/menu/menu.spec.d.ts.map +1 -0
- package/esm/components/menu/menu.spec.js +427 -0
- package/esm/components/menu/menu.spec.js.map +1 -0
- package/esm/components/modal.d.ts +3 -2
- package/esm/components/modal.d.ts.map +1 -1
- package/esm/components/modal.js +8 -5
- package/esm/components/modal.js.map +1 -1
- package/esm/components/modal.spec.js +50 -43
- package/esm/components/modal.spec.js.map +1 -1
- package/esm/components/noty-list.d.ts +4 -0
- package/esm/components/noty-list.d.ts.map +1 -1
- package/esm/components/noty-list.js +65 -53
- package/esm/components/noty-list.js.map +1 -1
- package/esm/components/noty-list.spec.js +71 -68
- package/esm/components/noty-list.spec.js.map +1 -1
- package/esm/components/page-container/index.d.ts +54 -0
- package/esm/components/page-container/index.d.ts.map +1 -0
- package/esm/components/page-container/index.js +63 -0
- package/esm/components/page-container/index.js.map +1 -0
- package/esm/components/page-container/index.spec.d.ts +2 -0
- package/esm/components/page-container/index.spec.d.ts.map +1 -0
- package/esm/components/page-container/index.spec.js +217 -0
- package/esm/components/page-container/index.spec.js.map +1 -0
- package/esm/components/page-container/page-header.d.ts +57 -0
- package/esm/components/page-container/page-header.d.ts.map +1 -0
- package/esm/components/page-container/page-header.js +93 -0
- package/esm/components/page-container/page-header.js.map +1 -0
- package/esm/components/page-container/page-header.spec.d.ts +2 -0
- package/esm/components/page-container/page-header.spec.d.ts.map +1 -0
- package/esm/components/page-container/page-header.spec.js +230 -0
- package/esm/components/page-container/page-header.spec.js.map +1 -0
- package/esm/components/page-layout/index.d.ts +83 -0
- package/esm/components/page-layout/index.d.ts.map +1 -0
- package/esm/components/page-layout/index.js +288 -0
- package/esm/components/page-layout/index.js.map +1 -0
- package/esm/components/page-layout/index.spec.d.ts +2 -0
- package/esm/components/page-layout/index.spec.d.ts.map +1 -0
- package/esm/components/page-layout/index.spec.js +637 -0
- package/esm/components/page-layout/index.spec.js.map +1 -0
- package/esm/components/pagination.d.ts +43 -0
- package/esm/components/pagination.d.ts.map +1 -0
- package/esm/components/pagination.js +165 -0
- package/esm/components/pagination.js.map +1 -0
- package/esm/components/pagination.spec.d.ts +2 -0
- package/esm/components/pagination.spec.d.ts.map +1 -0
- package/esm/components/pagination.spec.js +195 -0
- package/esm/components/pagination.spec.js.map +1 -0
- package/esm/components/paper.d.ts +3 -1
- package/esm/components/paper.d.ts.map +1 -1
- package/esm/components/paper.js +11 -9
- package/esm/components/paper.js.map +1 -1
- package/esm/components/paper.spec.js +26 -18
- package/esm/components/paper.spec.js.map +1 -1
- package/esm/components/rating.d.ts +62 -0
- package/esm/components/rating.d.ts.map +1 -0
- package/esm/components/rating.js +201 -0
- package/esm/components/rating.js.map +1 -0
- package/esm/components/rating.spec.d.ts +2 -0
- package/esm/components/rating.spec.d.ts.map +1 -0
- package/esm/components/rating.spec.js +663 -0
- package/esm/components/rating.spec.js.map +1 -0
- package/esm/components/result.d.ts +37 -0
- package/esm/components/result.d.ts.map +1 -0
- package/esm/components/result.js +109 -0
- package/esm/components/result.js.map +1 -0
- package/esm/components/result.spec.d.ts +2 -0
- package/esm/components/result.spec.d.ts.map +1 -0
- package/esm/components/result.spec.js +159 -0
- package/esm/components/result.spec.js.map +1 -0
- package/esm/components/searchable-input-styles.d.ts +8 -0
- package/esm/components/searchable-input-styles.d.ts.map +1 -0
- package/esm/components/searchable-input-styles.js +71 -0
- package/esm/components/searchable-input-styles.js.map +1 -0
- package/esm/components/skeleton.d.ts +2 -0
- package/esm/components/skeleton.d.ts.map +1 -1
- package/esm/components/skeleton.js +19 -6
- package/esm/components/skeleton.js.map +1 -1
- package/esm/components/skeleton.spec.js +103 -95
- package/esm/components/skeleton.spec.js.map +1 -1
- package/esm/components/styles.d.ts.map +1 -1
- package/esm/components/styles.js +14 -13
- package/esm/components/styles.js.map +1 -1
- package/esm/components/styles.spec.js +27 -26
- package/esm/components/styles.spec.js.map +1 -1
- package/esm/components/suggest/index.d.ts.map +1 -1
- package/esm/components/suggest/index.js +24 -85
- package/esm/components/suggest/index.js.map +1 -1
- package/esm/components/suggest/index.spec.js +402 -378
- package/esm/components/suggest/index.spec.js.map +1 -1
- package/esm/components/suggest/suggest-input.d.ts +2 -0
- package/esm/components/suggest/suggest-input.d.ts.map +1 -1
- package/esm/components/suggest/suggest-input.js +10 -8
- package/esm/components/suggest/suggest-input.js.map +1 -1
- package/esm/components/suggest/suggest-input.spec.js +83 -71
- package/esm/components/suggest/suggest-input.spec.js.map +1 -1
- package/esm/components/suggest/suggest-manager.spec.js +102 -92
- package/esm/components/suggest/suggest-manager.spec.js.map +1 -1
- package/esm/components/suggest/suggestion-list.d.ts.map +1 -1
- package/esm/components/suggest/suggestion-list.js +21 -22
- package/esm/components/suggest/suggestion-list.js.map +1 -1
- package/esm/components/suggest/suggestion-list.spec.js +165 -146
- package/esm/components/suggest/suggestion-list.spec.js.map +1 -1
- package/esm/components/tabs.d.ts +18 -2
- package/esm/components/tabs.d.ts.map +1 -1
- package/esm/components/tabs.js +154 -14
- package/esm/components/tabs.js.map +1 -1
- package/esm/components/tabs.spec.js +295 -7
- package/esm/components/tabs.spec.js.map +1 -1
- package/esm/components/timeline.d.ts +53 -0
- package/esm/components/timeline.d.ts.map +1 -0
- package/esm/components/timeline.js +162 -0
- package/esm/components/timeline.js.map +1 -0
- package/esm/components/timeline.spec.d.ts +2 -0
- package/esm/components/timeline.spec.d.ts.map +1 -0
- package/esm/components/timeline.spec.js +209 -0
- package/esm/components/timeline.spec.js.map +1 -0
- package/esm/components/tooltip.d.ts +25 -0
- package/esm/components/tooltip.d.ts.map +1 -0
- package/esm/components/tooltip.js +113 -0
- package/esm/components/tooltip.js.map +1 -0
- package/esm/components/tooltip.spec.d.ts +2 -0
- package/esm/components/tooltip.spec.d.ts.map +1 -0
- package/esm/components/tooltip.spec.js +152 -0
- package/esm/components/tooltip.spec.js.map +1 -0
- package/esm/components/tree/index.d.ts +3 -0
- package/esm/components/tree/index.d.ts.map +1 -0
- package/esm/components/tree/index.js +3 -0
- package/esm/components/tree/index.js.map +1 -0
- package/esm/components/tree/tree-item.d.ts +14 -0
- package/esm/components/tree/tree-item.d.ts.map +1 -0
- package/esm/components/tree/tree-item.js +118 -0
- package/esm/components/tree/tree-item.js.map +1 -0
- package/esm/components/tree/tree.d.ts +20 -0
- package/esm/components/tree/tree.d.ts.map +1 -0
- package/esm/components/tree/tree.js +66 -0
- package/esm/components/tree/tree.js.map +1 -0
- package/esm/components/tree/tree.spec.d.ts +2 -0
- package/esm/components/tree/tree.spec.d.ts.map +1 -0
- package/esm/components/tree/tree.spec.js +427 -0
- package/esm/components/tree/tree.spec.js.map +1 -0
- package/esm/components/typography.d.ts +48 -0
- package/esm/components/typography.d.ts.map +1 -0
- package/esm/components/typography.js +223 -0
- package/esm/components/typography.js.map +1 -0
- package/esm/components/typography.spec.d.ts +2 -0
- package/esm/components/typography.spec.d.ts.map +1 -0
- package/esm/components/typography.spec.js +199 -0
- package/esm/components/typography.spec.js.map +1 -0
- package/esm/components/wizard/index.d.ts +2 -0
- package/esm/components/wizard/index.d.ts.map +1 -1
- package/esm/components/wizard/index.spec.js +70 -56
- package/esm/components/wizard/index.spec.js.map +1 -1
- package/esm/services/click-away-service.d.ts +5 -2
- package/esm/services/click-away-service.d.ts.map +1 -1
- package/esm/services/click-away-service.js +7 -1
- package/esm/services/click-away-service.js.map +1 -1
- package/esm/services/click-away-service.spec.js +14 -12
- package/esm/services/click-away-service.spec.js.map +1 -1
- package/esm/services/css-variable-theme.d.ts +167 -1
- package/esm/services/css-variable-theme.d.ts.map +1 -1
- package/esm/services/css-variable-theme.js +102 -0
- package/esm/services/css-variable-theme.js.map +1 -1
- package/esm/services/css-variable-theme.spec.js +131 -1
- package/esm/services/css-variable-theme.spec.js.map +1 -1
- package/esm/services/default-dark-theme.d.ts +107 -2
- package/esm/services/default-dark-theme.d.ts.map +1 -1
- package/esm/services/default-dark-theme.js +87 -1
- package/esm/services/default-dark-theme.js.map +1 -1
- package/esm/services/default-light-theme.d.ts +107 -2
- package/esm/services/default-light-theme.d.ts.map +1 -1
- package/esm/services/default-light-theme.js +86 -0
- package/esm/services/default-light-theme.js.map +1 -1
- package/esm/services/index.d.ts +6 -2
- package/esm/services/index.d.ts.map +1 -1
- package/esm/services/index.js +6 -2
- package/esm/services/index.js.map +1 -1
- package/esm/services/layout-service.d.ts +217 -0
- package/esm/services/layout-service.d.ts.map +1 -0
- package/esm/services/layout-service.js +331 -0
- package/esm/services/layout-service.js.map +1 -0
- package/esm/services/layout-service.spec.d.ts +2 -0
- package/esm/services/layout-service.spec.d.ts.map +1 -0
- package/esm/services/layout-service.spec.js +425 -0
- package/esm/services/layout-service.spec.js.map +1 -0
- package/esm/services/list-service.d.ts +31 -0
- package/esm/services/list-service.d.ts.map +1 -0
- package/esm/services/list-service.js +149 -0
- package/esm/services/list-service.js.map +1 -0
- package/esm/services/list-service.spec.d.ts +2 -0
- package/esm/services/list-service.spec.d.ts.map +1 -0
- package/esm/services/list-service.spec.js +283 -0
- package/esm/services/list-service.spec.js.map +1 -0
- package/esm/services/palette-css-vars.d.ts +12 -0
- package/esm/services/palette-css-vars.d.ts.map +1 -0
- package/esm/services/palette-css-vars.js +44 -0
- package/esm/services/palette-css-vars.js.map +1 -0
- package/esm/services/theme-provider-service.d.ts +387 -2
- package/esm/services/theme-provider-service.d.ts.map +1 -1
- package/esm/services/theme-provider-service.js.map +1 -1
- package/esm/services/tree-service.d.ts +61 -0
- package/esm/services/tree-service.d.ts.map +1 -0
- package/esm/services/tree-service.js +149 -0
- package/esm/services/tree-service.js.map +1 -0
- package/esm/services/tree-service.spec.d.ts +2 -0
- package/esm/services/tree-service.spec.d.ts.map +1 -0
- package/esm/services/tree-service.spec.js +338 -0
- package/esm/services/tree-service.spec.js.map +1 -0
- package/esm/utils/promisify-animation.d.ts.map +1 -1
- package/esm/utils/promisify-animation.js +6 -1
- package/esm/utils/promisify-animation.js.map +1 -1
- package/package.json +7 -8
- package/src/components/accordion/accordion-item.tsx +197 -0
- package/src/components/accordion/accordion.spec.tsx +418 -0
- package/src/components/accordion/accordion.tsx +50 -0
- package/src/components/accordion/index.ts +2 -0
- package/src/components/alert.spec.tsx +256 -0
- package/src/components/alert.tsx +186 -0
- package/src/components/app-bar-link.spec.tsx +22 -19
- package/src/components/app-bar-link.tsx +29 -10
- package/src/components/app-bar.spec.tsx +73 -58
- package/src/components/app-bar.tsx +19 -12
- package/src/components/avatar.tsx +46 -47
- package/src/components/badge.spec.tsx +228 -0
- package/src/components/badge.tsx +104 -0
- package/src/components/breadcrumb.spec.tsx +396 -0
- package/src/components/breadcrumb.tsx +188 -0
- package/src/components/button-group.spec.tsx +611 -0
- package/src/components/button-group.tsx +423 -0
- package/src/components/button.spec.tsx +257 -67
- package/src/components/button.tsx +130 -80
- package/src/components/card.spec.tsx +389 -0
- package/src/components/card.tsx +261 -0
- package/src/components/carousel.spec.tsx +894 -0
- package/src/components/carousel.tsx +376 -0
- package/src/components/chip.spec.tsx +200 -0
- package/src/components/chip.tsx +188 -0
- package/src/components/circular-progress.spec.tsx +289 -0
- package/src/components/circular-progress.tsx +145 -0
- package/src/components/command-palette/command-palette-input.spec.tsx +219 -219
- package/src/components/command-palette/command-palette-input.tsx +25 -9
- package/src/components/command-palette/command-palette-manager.spec.ts +132 -117
- package/src/components/command-palette/command-palette-suggestion-list.spec.tsx +358 -358
- package/src/components/command-palette/command-palette-suggestion-list.tsx +22 -20
- package/src/components/command-palette/index.spec.tsx +12 -12
- package/src/components/command-palette/index.tsx +25 -102
- package/src/components/context-menu/context-menu-item.tsx +85 -0
- package/src/components/context-menu/context-menu-manager.spec.ts +433 -0
- package/src/components/context-menu/context-menu-manager.ts +148 -0
- package/src/components/context-menu/context-menu.spec.tsx +352 -0
- package/src/components/context-menu/context-menu.tsx +116 -0
- package/src/components/context-menu/index.ts +3 -0
- package/src/components/data-grid/body.spec.tsx +287 -283
- package/src/components/data-grid/data-grid-row.spec.tsx +165 -140
- package/src/components/data-grid/data-grid-row.tsx +72 -55
- package/src/components/data-grid/data-grid.spec.tsx +659 -729
- package/src/components/data-grid/data-grid.tsx +19 -15
- package/src/components/data-grid/footer.spec.tsx +249 -237
- package/src/components/data-grid/header.spec.tsx +374 -351
- package/src/components/data-grid/header.tsx +58 -39
- package/src/components/data-grid/selection-cell.spec.tsx +46 -45
- package/src/components/data-grid/selection-cell.tsx +2 -6
- package/src/components/dialog.spec.tsx +135 -0
- package/src/components/dialog.tsx +277 -0
- package/src/components/divider.spec.tsx +197 -0
- package/src/components/divider.tsx +147 -0
- package/src/components/drawer/drawer-toggle-button.spec.tsx +374 -0
- package/src/components/drawer/drawer-toggle-button.tsx +124 -0
- package/src/components/drawer/index.spec.tsx +748 -0
- package/src/components/drawer/index.tsx +227 -0
- package/src/components/dropdown.spec.tsx +445 -0
- package/src/components/dropdown.tsx +343 -0
- package/src/components/fab.spec.tsx +51 -40
- package/src/components/fab.tsx +32 -9
- package/src/components/form.spec.tsx +303 -293
- package/src/components/form.tsx +10 -7
- package/src/components/grid.spec.tsx +276 -183
- package/src/components/grid.tsx +10 -10
- package/src/components/icons/icon-definitions.spec.ts +68 -0
- package/src/components/icons/icon-definitions.ts +509 -0
- package/src/components/icons/icon-types.ts +48 -0
- package/src/components/icons/icon.spec.tsx +314 -0
- package/src/components/icons/icon.tsx +111 -0
- package/src/components/icons/index.ts +4 -0
- package/src/components/image.spec.tsx +748 -0
- package/src/components/image.tsx +520 -0
- package/src/components/index.ts +32 -4
- package/src/components/inputs/autocomplete.spec.tsx +10 -1
- package/src/components/inputs/autocomplete.tsx +13 -7
- package/src/components/inputs/checkbox.spec.tsx +377 -0
- package/src/components/inputs/checkbox.tsx +198 -0
- package/src/components/inputs/index.ts +7 -0
- package/src/components/inputs/input-number.spec.tsx +686 -0
- package/src/components/inputs/input-number.tsx +387 -0
- package/src/components/inputs/input.spec.tsx +544 -508
- package/src/components/inputs/input.tsx +91 -132
- package/src/components/inputs/radio-group.spec.tsx +281 -0
- package/src/components/inputs/radio-group.tsx +108 -0
- package/src/components/inputs/radio.spec.tsx +273 -0
- package/src/components/inputs/radio.tsx +199 -0
- package/src/components/inputs/select.spec.tsx +1237 -0
- package/src/components/inputs/select.tsx +775 -0
- package/src/components/inputs/slider.spec.tsx +1020 -0
- package/src/components/inputs/slider.tsx +696 -0
- package/src/components/inputs/switch.spec.tsx +410 -0
- package/src/components/inputs/switch.tsx +218 -0
- package/src/components/inputs/text-area.spec.tsx +186 -171
- package/src/components/inputs/text-area.tsx +13 -19
- package/src/components/linear-progress.spec.tsx +320 -0
- package/src/components/linear-progress.tsx +127 -0
- package/src/components/list/index.ts +2 -0
- package/src/components/list/list-item.tsx +106 -0
- package/src/components/list/list.spec.tsx +817 -0
- package/src/components/list/list.tsx +92 -0
- package/src/components/loader.spec.tsx +220 -204
- package/src/components/loader.tsx +17 -9
- package/src/components/menu/index.ts +2 -0
- package/src/components/menu/menu-types.spec.ts +122 -0
- package/src/components/menu/menu-types.ts +43 -0
- package/src/components/menu/menu.spec.tsx +483 -0
- package/src/components/menu/menu.tsx +326 -0
- package/src/components/modal.spec.tsx +65 -55
- package/src/components/modal.tsx +9 -6
- package/src/components/noty-list.spec.tsx +78 -75
- package/src/components/noty-list.tsx +76 -68
- package/src/components/page-container/index.spec.tsx +274 -0
- package/src/components/page-container/index.tsx +82 -0
- package/src/components/page-container/page-header.spec.tsx +308 -0
- package/src/components/page-container/page-header.tsx +127 -0
- package/src/components/page-layout/index.spec.tsx +882 -0
- package/src/components/page-layout/index.tsx +392 -0
- package/src/components/pagination.spec.tsx +275 -0
- package/src/components/pagination.tsx +249 -0
- package/src/components/paper.spec.tsx +26 -18
- package/src/components/paper.tsx +12 -10
- package/src/components/rating.spec.tsx +866 -0
- package/src/components/rating.tsx +286 -0
- package/src/components/result.spec.tsx +221 -0
- package/src/components/result.tsx +155 -0
- package/src/components/searchable-input-styles.ts +81 -0
- package/src/components/skeleton.spec.tsx +126 -118
- package/src/components/skeleton.tsx +23 -6
- package/src/components/styles.spec.ts +27 -28
- package/src/components/styles.tsx +15 -13
- package/src/components/suggest/index.spec.tsx +611 -587
- package/src/components/suggest/index.tsx +28 -95
- package/src/components/suggest/suggest-input.spec.tsx +95 -81
- package/src/components/suggest/suggest-input.tsx +9 -7
- package/src/components/suggest/suggest-manager.spec.ts +103 -93
- package/src/components/suggest/suggestion-list.spec.tsx +194 -173
- package/src/components/suggest/suggestion-list.tsx +23 -22
- package/src/components/tabs.spec.tsx +369 -7
- package/src/components/tabs.tsx +221 -18
- package/src/components/timeline.spec.tsx +294 -0
- package/src/components/timeline.tsx +221 -0
- package/src/components/tooltip.spec.tsx +223 -0
- package/src/components/tooltip.tsx +155 -0
- package/src/components/tree/index.ts +2 -0
- package/src/components/tree/tree-item.tsx +161 -0
- package/src/components/tree/tree.spec.tsx +677 -0
- package/src/components/tree/tree.tsx +111 -0
- package/src/components/typography.spec.tsx +235 -0
- package/src/components/typography.tsx +292 -0
- package/src/components/wizard/index.spec.tsx +77 -68
- package/src/services/click-away-service.spec.ts +14 -16
- package/src/services/click-away-service.ts +9 -3
- package/src/services/css-variable-theme.spec.ts +169 -1
- package/src/services/css-variable-theme.ts +107 -2
- package/src/services/default-dark-theme.ts +89 -3
- package/src/services/default-light-theme.ts +88 -2
- package/src/services/index.ts +6 -2
- package/src/services/layout-service.spec.ts +535 -0
- package/src/services/layout-service.ts +391 -0
- package/src/services/list-service.spec.ts +362 -0
- package/src/services/list-service.ts +169 -0
- package/src/services/palette-css-vars.ts +46 -0
- package/src/services/theme-provider-service.ts +246 -1
- package/src/services/tree-service.spec.ts +412 -0
- package/src/services/tree-service.ts +179 -0
- package/src/utils/promisify-animation.ts +7 -1
|
@@ -0,0 +1,391 @@
|
|
|
1
|
+
import { Injectable } from '@furystack/inject'
|
|
2
|
+
import { ObservableValue, type ValueObserver } from '@furystack/utils'
|
|
3
|
+
|
|
4
|
+
/**
|
|
5
|
+
* Drawer variant that determines how the drawer affects content layout.
|
|
6
|
+
* - 'permanent': Always visible and pushes content
|
|
7
|
+
* - 'collapsible': Pushes content when open, collapses when closed
|
|
8
|
+
* - 'temporary': Overlays content without pushing (like a modal drawer)
|
|
9
|
+
*/
|
|
10
|
+
export type DrawerVariant = 'permanent' | 'collapsible' | 'temporary'
|
|
11
|
+
|
|
12
|
+
/**
|
|
13
|
+
* AppBar variant that determines visibility behavior.
|
|
14
|
+
* - 'permanent': Always visible, pushes content down
|
|
15
|
+
* - 'auto-hide': Hidden by default, overlays content when visible (on hover or programmatically)
|
|
16
|
+
*/
|
|
17
|
+
export type AppBarVariant = 'permanent' | 'auto-hide'
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* Drawer configuration for a single side (left or right).
|
|
21
|
+
*/
|
|
22
|
+
export type DrawerSideState = {
|
|
23
|
+
/** Whether the drawer is currently open */
|
|
24
|
+
open: boolean
|
|
25
|
+
/** Width of the drawer (CSS value, e.g., '240px') */
|
|
26
|
+
width: string
|
|
27
|
+
/** Variant that determines how the drawer affects content layout */
|
|
28
|
+
variant: DrawerVariant
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/**
|
|
32
|
+
* State for all drawers in the layout.
|
|
33
|
+
*/
|
|
34
|
+
export type DrawerState = {
|
|
35
|
+
/** Left drawer configuration */
|
|
36
|
+
left?: DrawerSideState
|
|
37
|
+
/** Right drawer configuration */
|
|
38
|
+
right?: DrawerSideState
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
/**
|
|
42
|
+
* CSS variable names managed by LayoutService.
|
|
43
|
+
* These variables are set on the PageLayout host element for scoped access.
|
|
44
|
+
*
|
|
45
|
+
* Use these to access layout dimensions in your components:
|
|
46
|
+
* ```typescript
|
|
47
|
+
* // In Shade css property
|
|
48
|
+
* css: {
|
|
49
|
+
* height: `var(${LAYOUT_CSS_VARIABLES.contentAvailableHeight})`,
|
|
50
|
+
* marginLeft: `var(${LAYOUT_CSS_VARIABLES.contentMarginLeft})`,
|
|
51
|
+
* }
|
|
52
|
+
*
|
|
53
|
+
* // In inline styles
|
|
54
|
+
* style={{ height: `var(${LAYOUT_CSS_VARIABLES.contentAvailableHeight})` }}
|
|
55
|
+
* ```
|
|
56
|
+
*/
|
|
57
|
+
export const LAYOUT_CSS_VARIABLES = {
|
|
58
|
+
/** Height of the AppBar (e.g., '48px') */
|
|
59
|
+
appBarHeight: '--layout-appbar-height',
|
|
60
|
+
/** Top gap spacing between AppBar and content */
|
|
61
|
+
topGap: '--layout-top-gap',
|
|
62
|
+
/** Side gap spacing for content padding */
|
|
63
|
+
sideGap: '--layout-side-gap',
|
|
64
|
+
/** Total padding from top (appBarHeight + topGap) */
|
|
65
|
+
contentPaddingTop: '--layout-content-padding-top',
|
|
66
|
+
/** Current width of the left drawer (0 when closed for collapsible/temporary) */
|
|
67
|
+
drawerLeftWidth: '--layout-drawer-left-width',
|
|
68
|
+
/** Current width of the right drawer (0 when closed for collapsible/temporary) */
|
|
69
|
+
drawerRightWidth: '--layout-drawer-right-width',
|
|
70
|
+
/** Configured width of the left drawer (always set, even when closed) */
|
|
71
|
+
drawerLeftConfiguredWidth: '--layout-drawer-left-configured-width',
|
|
72
|
+
/** Configured width of the right drawer (always set, even when closed) */
|
|
73
|
+
drawerRightConfiguredWidth: '--layout-drawer-right-configured-width',
|
|
74
|
+
/** Top margin for content (deprecated, use contentPaddingTop instead) */
|
|
75
|
+
contentMarginTop: '--layout-content-margin-top',
|
|
76
|
+
/** Left margin for content (considers drawer variant) */
|
|
77
|
+
contentMarginLeft: '--layout-content-margin-left',
|
|
78
|
+
/** Right margin for content (considers drawer variant) */
|
|
79
|
+
contentMarginRight: '--layout-content-margin-right',
|
|
80
|
+
} as const
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Scoped service for managing layout state within a PageLayout component.
|
|
84
|
+
*
|
|
85
|
+
* This service is created per PageLayout instance and sets CSS variables on the
|
|
86
|
+
* host element rather than document.documentElement, providing proper scoping.
|
|
87
|
+
*
|
|
88
|
+
* Manages:
|
|
89
|
+
* - Drawer open/close state and widths
|
|
90
|
+
* - AppBar visibility (for auto-hide mode)
|
|
91
|
+
* - CSS custom properties for layout dimensions (scoped to the PageLayout)
|
|
92
|
+
*
|
|
93
|
+
* **Note:** For responsive breakpoint detection, use `ScreenService` from `@furystack/shades`.
|
|
94
|
+
* ScreenService provides `screenSize.atLeast[size]` observables for responsive behavior.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* // Get layout service from injector (must be inside PageLayout)
|
|
99
|
+
* const layoutService = injector.getInstance(LayoutService);
|
|
100
|
+
*
|
|
101
|
+
* // Toggle left drawer
|
|
102
|
+
* layoutService.toggleDrawer('left');
|
|
103
|
+
* ```
|
|
104
|
+
*/
|
|
105
|
+
@Injectable({ lifetime: 'explicit' })
|
|
106
|
+
export class LayoutService implements Disposable {
|
|
107
|
+
/**
|
|
108
|
+
* Observable state for all drawers.
|
|
109
|
+
* Subscribe to receive updates when any drawer opens, closes, or changes width.
|
|
110
|
+
*/
|
|
111
|
+
public drawerState = new ObservableValue<DrawerState>({})
|
|
112
|
+
|
|
113
|
+
/**
|
|
114
|
+
* AppBar visibility state.
|
|
115
|
+
* Used for auto-hide AppBar mode - set to false to hide the AppBar.
|
|
116
|
+
*/
|
|
117
|
+
public appBarVisible = new ObservableValue<boolean>(true)
|
|
118
|
+
|
|
119
|
+
/**
|
|
120
|
+
* AppBar variant that determines visibility behavior.
|
|
121
|
+
* - 'permanent': Always visible, content has padding for appbar
|
|
122
|
+
* - 'auto-hide': Hidden by default, overlays content when visible
|
|
123
|
+
*/
|
|
124
|
+
public appBarVariant = new ObservableValue<AppBarVariant>('permanent')
|
|
125
|
+
|
|
126
|
+
/**
|
|
127
|
+
* Current AppBar height.
|
|
128
|
+
* Used for calculating content margins.
|
|
129
|
+
*/
|
|
130
|
+
public appBarHeight = new ObservableValue<string>('48px')
|
|
131
|
+
|
|
132
|
+
/**
|
|
133
|
+
* Top gap spacing between AppBar and content.
|
|
134
|
+
* CSS value (e.g., '0px', '16px').
|
|
135
|
+
*/
|
|
136
|
+
public topGap = new ObservableValue<string>('0px')
|
|
137
|
+
|
|
138
|
+
/**
|
|
139
|
+
* Side gap spacing for content padding.
|
|
140
|
+
* CSS value (e.g., '0px', '16px').
|
|
141
|
+
*/
|
|
142
|
+
public sideGap = new ObservableValue<string>('0px')
|
|
143
|
+
|
|
144
|
+
private drawerStateSubscription: ValueObserver<DrawerState> | null = null
|
|
145
|
+
private appBarHeightSubscription: ValueObserver<string> | null = null
|
|
146
|
+
private appBarVariantSubscription: ValueObserver<AppBarVariant> | null = null
|
|
147
|
+
private topGapSubscription: ValueObserver<string> | null = null
|
|
148
|
+
private sideGapSubscription: ValueObserver<string> | null = null
|
|
149
|
+
|
|
150
|
+
/**
|
|
151
|
+
* Creates a new LayoutService instance scoped to the given element or ref.
|
|
152
|
+
*
|
|
153
|
+
* @param targetElement - The element (or ref) to set CSS variables on (typically the PageLayout host).
|
|
154
|
+
* If undefined (e.g., in SSR), CSS variables won't be set.
|
|
155
|
+
*/
|
|
156
|
+
constructor(private targetElement?: HTMLElement | { readonly current: HTMLElement | null }) {
|
|
157
|
+
this.setupCssVariableSync()
|
|
158
|
+
this.updateCssVariables()
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
private getTarget(): HTMLElement | undefined {
|
|
162
|
+
if (!this.targetElement) return undefined
|
|
163
|
+
if ('current' in this.targetElement) return this.targetElement.current ?? undefined
|
|
164
|
+
return this.targetElement
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
/**
|
|
168
|
+
* Toggles the open/close state of a drawer.
|
|
169
|
+
* If the drawer doesn't exist in the state, this is a no-op.
|
|
170
|
+
*
|
|
171
|
+
* @param position - Which drawer to toggle ('left' or 'right')
|
|
172
|
+
*/
|
|
173
|
+
public toggleDrawer(position: 'left' | 'right'): void {
|
|
174
|
+
const currentState = this.drawerState.getValue()
|
|
175
|
+
const drawerConfig = currentState[position]
|
|
176
|
+
|
|
177
|
+
if (drawerConfig) {
|
|
178
|
+
this.setDrawerOpen(position, !drawerConfig.open)
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/**
|
|
183
|
+
* Sets the open state of a drawer.
|
|
184
|
+
* Creates the drawer entry if it doesn't exist.
|
|
185
|
+
*
|
|
186
|
+
* @param position - Which drawer to modify ('left' or 'right')
|
|
187
|
+
* @param open - Whether the drawer should be open
|
|
188
|
+
*/
|
|
189
|
+
public setDrawerOpen(position: 'left' | 'right', open: boolean): void {
|
|
190
|
+
const currentState = this.drawerState.getValue()
|
|
191
|
+
const existingConfig = currentState[position]
|
|
192
|
+
|
|
193
|
+
this.drawerState.setValue({
|
|
194
|
+
...currentState,
|
|
195
|
+
[position]: {
|
|
196
|
+
width: existingConfig?.width ?? '240px',
|
|
197
|
+
variant: existingConfig?.variant ?? 'collapsible',
|
|
198
|
+
open,
|
|
199
|
+
},
|
|
200
|
+
})
|
|
201
|
+
}
|
|
202
|
+
|
|
203
|
+
/**
|
|
204
|
+
* Sets the width of a drawer.
|
|
205
|
+
* Creates the drawer entry if it doesn't exist (defaults to closed).
|
|
206
|
+
*
|
|
207
|
+
* @param position - Which drawer to modify ('left' or 'right')
|
|
208
|
+
* @param width - The CSS width value (e.g., '240px', '20rem')
|
|
209
|
+
*/
|
|
210
|
+
public setDrawerWidth(position: 'left' | 'right', width: string): void {
|
|
211
|
+
const currentState = this.drawerState.getValue()
|
|
212
|
+
const existingConfig = currentState[position]
|
|
213
|
+
|
|
214
|
+
this.drawerState.setValue({
|
|
215
|
+
...currentState,
|
|
216
|
+
[position]: {
|
|
217
|
+
open: existingConfig?.open ?? false,
|
|
218
|
+
variant: existingConfig?.variant ?? 'collapsible',
|
|
219
|
+
width,
|
|
220
|
+
},
|
|
221
|
+
})
|
|
222
|
+
}
|
|
223
|
+
|
|
224
|
+
/**
|
|
225
|
+
* Initializes a drawer with the given configuration.
|
|
226
|
+
* Use this when setting up a drawer for the first time.
|
|
227
|
+
*
|
|
228
|
+
* @param position - Which drawer to initialize ('left' or 'right')
|
|
229
|
+
* @param config - Initial drawer configuration
|
|
230
|
+
*/
|
|
231
|
+
public initDrawer(position: 'left' | 'right', config: DrawerSideState): void {
|
|
232
|
+
const currentState = this.drawerState.getValue()
|
|
233
|
+
|
|
234
|
+
this.drawerState.setValue({
|
|
235
|
+
...currentState,
|
|
236
|
+
[position]: config,
|
|
237
|
+
})
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/**
|
|
241
|
+
* Sets the top gap spacing between AppBar and content.
|
|
242
|
+
*
|
|
243
|
+
* @param gap - CSS value for the gap (e.g., '0px', '16px')
|
|
244
|
+
*/
|
|
245
|
+
public setTopGap(gap: string): void {
|
|
246
|
+
this.topGap.setValue(gap)
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Sets the side gap spacing for content padding.
|
|
251
|
+
*
|
|
252
|
+
* @param gap - CSS value for the gap (e.g., '0px', '16px')
|
|
253
|
+
*/
|
|
254
|
+
public setSideGap(gap: string): void {
|
|
255
|
+
this.sideGap.setValue(gap)
|
|
256
|
+
}
|
|
257
|
+
|
|
258
|
+
/**
|
|
259
|
+
* Calculates the content margin for a drawer based on its variant and open state.
|
|
260
|
+
*
|
|
261
|
+
* - 'temporary': always '0px' (overlay, doesn't push content)
|
|
262
|
+
* - 'permanent': always drawer width (always visible)
|
|
263
|
+
* - 'collapsible': drawer width when open, '0px' when closed
|
|
264
|
+
*
|
|
265
|
+
* @param drawerState - The drawer state (may be undefined)
|
|
266
|
+
* @returns The margin value to use
|
|
267
|
+
*/
|
|
268
|
+
public getContentMarginForPosition(position: 'left' | 'right'): string {
|
|
269
|
+
return this.getContentMarginForDrawer(this.drawerState.getValue()[position])
|
|
270
|
+
}
|
|
271
|
+
|
|
272
|
+
private getContentMarginForDrawer(drawerState: DrawerSideState | undefined): string {
|
|
273
|
+
if (!drawerState) return '0px'
|
|
274
|
+
|
|
275
|
+
switch (drawerState.variant) {
|
|
276
|
+
case 'temporary':
|
|
277
|
+
// Temporary drawers overlay content, never push
|
|
278
|
+
return '0px'
|
|
279
|
+
case 'permanent':
|
|
280
|
+
// Permanent drawers always push content
|
|
281
|
+
return drawerState.width
|
|
282
|
+
case 'collapsible':
|
|
283
|
+
default:
|
|
284
|
+
// Collapsible drawers push content only when open
|
|
285
|
+
return drawerState.open ? drawerState.width : '0px'
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
/**
|
|
290
|
+
* Updates CSS custom properties based on current layout state.
|
|
291
|
+
* Called automatically when drawer state, AppBar height, variant, or gap values change.
|
|
292
|
+
*/
|
|
293
|
+
private updateCssVariables(): void {
|
|
294
|
+
const target = this.getTarget()
|
|
295
|
+
if (!target) return
|
|
296
|
+
|
|
297
|
+
const state = this.drawerState.getValue()
|
|
298
|
+
const appBarHeight = this.appBarHeight.getValue()
|
|
299
|
+
const appBarVariant = this.appBarVariant.getValue()
|
|
300
|
+
const topGap = this.topGap.getValue()
|
|
301
|
+
const sideGap = this.sideGap.getValue()
|
|
302
|
+
|
|
303
|
+
// AppBar and gap values
|
|
304
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.appBarHeight, appBarHeight)
|
|
305
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.topGap, topGap)
|
|
306
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.sideGap, sideGap)
|
|
307
|
+
|
|
308
|
+
// Content padding top:
|
|
309
|
+
// - For 'permanent' appbar: appBarHeight + topGap (content pushed below appbar)
|
|
310
|
+
// - For 'auto-hide' appbar: just topGap (appbar overlays content when visible)
|
|
311
|
+
const contentPaddingTop = appBarVariant === 'auto-hide' ? topGap : `calc(${appBarHeight} + ${topGap})`
|
|
312
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.contentPaddingTop, contentPaddingTop)
|
|
313
|
+
|
|
314
|
+
// Legacy content margin top (deprecated, kept for backward compatibility)
|
|
315
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.contentMarginTop, appBarHeight)
|
|
316
|
+
|
|
317
|
+
// Left drawer
|
|
318
|
+
const leftConfiguredWidth = state.left?.width ?? '0px'
|
|
319
|
+
const leftWidth = state.left?.open ? state.left.width : '0px'
|
|
320
|
+
const leftContentMargin = this.getContentMarginForDrawer(state.left)
|
|
321
|
+
|
|
322
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.drawerLeftConfiguredWidth, leftConfiguredWidth)
|
|
323
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.drawerLeftWidth, leftWidth)
|
|
324
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.contentMarginLeft, leftContentMargin)
|
|
325
|
+
|
|
326
|
+
// Right drawer
|
|
327
|
+
const rightConfiguredWidth = state.right?.width ?? '0px'
|
|
328
|
+
const rightWidth = state.right?.open ? state.right.width : '0px'
|
|
329
|
+
const rightContentMargin = this.getContentMarginForDrawer(state.right)
|
|
330
|
+
|
|
331
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.drawerRightConfiguredWidth, rightConfiguredWidth)
|
|
332
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.drawerRightWidth, rightWidth)
|
|
333
|
+
target.style.setProperty(LAYOUT_CSS_VARIABLES.contentMarginRight, rightContentMargin)
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/**
|
|
337
|
+
* Sets up subscriptions to automatically update CSS variables
|
|
338
|
+
* when drawer state, AppBar height, variant, or gap values change.
|
|
339
|
+
*/
|
|
340
|
+
private setupCssVariableSync(): void {
|
|
341
|
+
this.drawerStateSubscription = this.drawerState.subscribe(() => {
|
|
342
|
+
this.updateCssVariables()
|
|
343
|
+
})
|
|
344
|
+
|
|
345
|
+
this.appBarHeightSubscription = this.appBarHeight.subscribe(() => {
|
|
346
|
+
this.updateCssVariables()
|
|
347
|
+
})
|
|
348
|
+
|
|
349
|
+
this.appBarVariantSubscription = this.appBarVariant.subscribe(() => {
|
|
350
|
+
this.updateCssVariables()
|
|
351
|
+
})
|
|
352
|
+
|
|
353
|
+
this.topGapSubscription = this.topGap.subscribe(() => {
|
|
354
|
+
this.updateCssVariables()
|
|
355
|
+
})
|
|
356
|
+
|
|
357
|
+
this.sideGapSubscription = this.sideGap.subscribe(() => {
|
|
358
|
+
this.updateCssVariables()
|
|
359
|
+
})
|
|
360
|
+
}
|
|
361
|
+
|
|
362
|
+
/**
|
|
363
|
+
* Cleans up all resources held by the service.
|
|
364
|
+
* Disposes subscriptions and observables.
|
|
365
|
+
*/
|
|
366
|
+
public [Symbol.dispose](): void {
|
|
367
|
+
// Clean up subscriptions
|
|
368
|
+
this.drawerStateSubscription?.[Symbol.dispose]()
|
|
369
|
+
this.drawerStateSubscription = null
|
|
370
|
+
|
|
371
|
+
this.appBarHeightSubscription?.[Symbol.dispose]()
|
|
372
|
+
this.appBarHeightSubscription = null
|
|
373
|
+
|
|
374
|
+
this.appBarVariantSubscription?.[Symbol.dispose]()
|
|
375
|
+
this.appBarVariantSubscription = null
|
|
376
|
+
|
|
377
|
+
this.topGapSubscription?.[Symbol.dispose]()
|
|
378
|
+
this.topGapSubscription = null
|
|
379
|
+
|
|
380
|
+
this.sideGapSubscription?.[Symbol.dispose]()
|
|
381
|
+
this.sideGapSubscription = null
|
|
382
|
+
|
|
383
|
+
// Dispose observables
|
|
384
|
+
this.drawerState[Symbol.dispose]()
|
|
385
|
+
this.appBarVisible[Symbol.dispose]()
|
|
386
|
+
this.appBarVariant[Symbol.dispose]()
|
|
387
|
+
this.appBarHeight[Symbol.dispose]()
|
|
388
|
+
this.topGap[Symbol.dispose]()
|
|
389
|
+
this.sideGap[Symbol.dispose]()
|
|
390
|
+
}
|
|
391
|
+
}
|