@cocoar/ui-components 0.1.0-beta.100 → 0.1.0-beta.109
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.
|
@@ -3933,6 +3933,61 @@ function cryptoRandomId() {
|
|
|
3933
3933
|
return `${Date.now().toString(16)}-${Math.random().toString(16).slice(2)}`;
|
|
3934
3934
|
}
|
|
3935
3935
|
|
|
3936
|
+
/**
|
|
3937
|
+
* CoarSidebar: A three-part layout component for navigation sidebars.
|
|
3938
|
+
*
|
|
3939
|
+
* Provides three distinct slots via content projection:
|
|
3940
|
+
* - **Header** (`[coar-sidebar-header]`): Fixed at top, for logo/title/branding
|
|
3941
|
+
* - **Content** (default slot): Scrollable area for navigation menu or other content
|
|
3942
|
+
* - **Footer** (`[coar-sidebar-footer]`): Fixed at bottom, for actions/settings/user info
|
|
3943
|
+
*
|
|
3944
|
+
* Responsibilities:
|
|
3945
|
+
* - Provide consistent sidebar layout structure
|
|
3946
|
+
* - Apply design tokens for width, spacing, colors
|
|
3947
|
+
* - Handle scrolling behavior (only content area scrolls)
|
|
3948
|
+
* - Support left/right positioning
|
|
3949
|
+
*
|
|
3950
|
+
* @example
|
|
3951
|
+
* ```html
|
|
3952
|
+
* <coar-sidebar>
|
|
3953
|
+
* <div coar-sidebar-header>
|
|
3954
|
+
* <h2>Navigation</h2>
|
|
3955
|
+
* </div>
|
|
3956
|
+
*
|
|
3957
|
+
* <coar-menu borderless>
|
|
3958
|
+
* <coar-menu-item routerLink="/home" routerLinkActive="active">Home</coar-menu-item>
|
|
3959
|
+
* <coar-menu-item routerLink="/about" routerLinkActive="active">About</coar-menu-item>
|
|
3960
|
+
* </coar-menu>
|
|
3961
|
+
*
|
|
3962
|
+
* <div coar-sidebar-footer>
|
|
3963
|
+
* <button>Settings</button>
|
|
3964
|
+
* </div>
|
|
3965
|
+
* </coar-sidebar>
|
|
3966
|
+
* ```
|
|
3967
|
+
*/
|
|
3968
|
+
class CoarSidebarComponent {
|
|
3969
|
+
/**
|
|
3970
|
+
* Sidebar position: left or right side of screen.
|
|
3971
|
+
* Default is 'left'.
|
|
3972
|
+
*/
|
|
3973
|
+
position = input('left', ...(ngDevMode ? [{ debugName: "position" }] : []));
|
|
3974
|
+
/**
|
|
3975
|
+
* Collapsed state for narrow/icon-only sidebar.
|
|
3976
|
+
* Use as boolean attribute: `<coar-sidebar collapsed>` or `[collapsed]="true"`
|
|
3977
|
+
*/
|
|
3978
|
+
collapsed = input(false, { ...(ngDevMode ? { debugName: "collapsed" } : {}), transform: booleanAttribute });
|
|
3979
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CoarSidebarComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
3980
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "21.0.6", type: CoarSidebarComponent, isStandalone: true, selector: "coar-sidebar", inputs: { position: { classPropertyName: "position", publicName: "position", isSignal: true, isRequired: false, transformFunction: null }, collapsed: { classPropertyName: "collapsed", publicName: "collapsed", isSignal: true, isRequired: false, transformFunction: null } }, host: { properties: { "class.coar-sidebar--collapsed": "collapsed()", "class.coar-sidebar--position-right": "position() === \"right\"" }, classAttribute: "coar-sidebar" }, ngImport: i0, template: "<div class=\"coar-sidebar__header\">\n <ng-content select=\"[coar-sidebar-header]\" />\n</div>\n\n<div class=\"coar-sidebar__content\" coarScrollbar [overflowX]=\"'hidden'\">\n <ng-content />\n</div>\n\n<div class=\"coar-sidebar__footer\">\n <ng-content select=\"[coar-sidebar-footer]\" />\n</div>\n", styles: [":host{display:flex;flex-direction:column;height:100%;width:var(--coar-sidebar-width, 16rem);min-width:var(--coar-sidebar-min-width, 12rem);max-width:var(--coar-sidebar-max-width, 20rem);background:var(--coar-sidebar-background, var(--coar-background-neutral-primary, #ffffff));border-right:var(--coar-sidebar-border, 1px solid var(--coar-border-neutral-tertiary, #d0d0d0))}:host(.coar-sidebar--position-right){border-right:none;border-left:var(--coar-sidebar-border, 1px solid var(--coar-border-neutral-tertiary, #d0d0d0))}:host(.coar-sidebar--collapsed){width:var(--coar-sidebar-collapsed-width, 4rem);min-width:var(--coar-sidebar-collapsed-width, 4rem)}:host(.coar-sidebar--collapsed) .coar-sidebar__header,:host(.coar-sidebar--collapsed) .coar-sidebar__content,:host(.coar-sidebar--collapsed) .coar-sidebar__footer{display:flex;align-items:center;justify-content:center;text-align:center}.coar-sidebar__header{flex-shrink:0}.coar-sidebar__header:empty{display:none}.coar-sidebar__content{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--coar-sidebar-content-padding, var(--coar-spacing-s, 8px))}.coar-sidebar__content ::ng-deep coar-menu{padding:0}.coar-sidebar__content ::ng-deep coar-menu-heading{margin-top:var(--coar-spacing-l, 16px);font-size:var(--coar-font-size-xs, 12px)}.coar-sidebar__content ::ng-deep coar-menu-item{border-radius:var(--coar-radius-xxs);margin:var(--coar-spacing-3xs, 2px) 0}.coar-sidebar__content ::ng-deep coar-menu-item:hover{background:var(--coar-background-neutral-tertiary)}.coar-sidebar__content ::ng-deep coar-menu-item.active{background:var(--coar-background-neutral-tertiary)}.coar-sidebar__footer{flex-shrink:0}.coar-sidebar__footer:empty{display:none}\n"], dependencies: [{ kind: "directive", type: CoarScrollbarDirective, selector: "[coarScrollbar]", inputs: ["theme", "autoHide", "autoHideDelay", "clickScroll", "overflowX", "overflowY", "defer", "overscrollBehavior"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
3981
|
+
}
|
|
3982
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImport: i0, type: CoarSidebarComponent, decorators: [{
|
|
3983
|
+
type: Component,
|
|
3984
|
+
args: [{ selector: 'coar-sidebar', standalone: true, imports: [CoarScrollbarDirective], changeDetection: ChangeDetectionStrategy.OnPush, host: {
|
|
3985
|
+
class: 'coar-sidebar',
|
|
3986
|
+
'[class.coar-sidebar--collapsed]': 'collapsed()',
|
|
3987
|
+
'[class.coar-sidebar--position-right]': 'position() === "right"',
|
|
3988
|
+
}, template: "<div class=\"coar-sidebar__header\">\n <ng-content select=\"[coar-sidebar-header]\" />\n</div>\n\n<div class=\"coar-sidebar__content\" coarScrollbar [overflowX]=\"'hidden'\">\n <ng-content />\n</div>\n\n<div class=\"coar-sidebar__footer\">\n <ng-content select=\"[coar-sidebar-footer]\" />\n</div>\n", styles: [":host{display:flex;flex-direction:column;height:100%;width:var(--coar-sidebar-width, 16rem);min-width:var(--coar-sidebar-min-width, 12rem);max-width:var(--coar-sidebar-max-width, 20rem);background:var(--coar-sidebar-background, var(--coar-background-neutral-primary, #ffffff));border-right:var(--coar-sidebar-border, 1px solid var(--coar-border-neutral-tertiary, #d0d0d0))}:host(.coar-sidebar--position-right){border-right:none;border-left:var(--coar-sidebar-border, 1px solid var(--coar-border-neutral-tertiary, #d0d0d0))}:host(.coar-sidebar--collapsed){width:var(--coar-sidebar-collapsed-width, 4rem);min-width:var(--coar-sidebar-collapsed-width, 4rem)}:host(.coar-sidebar--collapsed) .coar-sidebar__header,:host(.coar-sidebar--collapsed) .coar-sidebar__content,:host(.coar-sidebar--collapsed) .coar-sidebar__footer{display:flex;align-items:center;justify-content:center;text-align:center}.coar-sidebar__header{flex-shrink:0}.coar-sidebar__header:empty{display:none}.coar-sidebar__content{flex:1;overflow-y:auto;overflow-x:hidden;padding:var(--coar-sidebar-content-padding, var(--coar-spacing-s, 8px))}.coar-sidebar__content ::ng-deep coar-menu{padding:0}.coar-sidebar__content ::ng-deep coar-menu-heading{margin-top:var(--coar-spacing-l, 16px);font-size:var(--coar-font-size-xs, 12px)}.coar-sidebar__content ::ng-deep coar-menu-item{border-radius:var(--coar-radius-xxs);margin:var(--coar-spacing-3xs, 2px) 0}.coar-sidebar__content ::ng-deep coar-menu-item:hover{background:var(--coar-background-neutral-tertiary)}.coar-sidebar__content ::ng-deep coar-menu-item.active{background:var(--coar-background-neutral-tertiary)}.coar-sidebar__footer{flex-shrink:0}.coar-sidebar__footer:empty{display:none}\n"] }]
|
|
3989
|
+
}], propDecorators: { position: [{ type: i0.Input, args: [{ isSignal: true, alias: "position", required: false }] }], collapsed: [{ type: i0.Input, args: [{ isSignal: true, alias: "collapsed", required: false }] }] } });
|
|
3990
|
+
|
|
3936
3991
|
/**
|
|
3937
3992
|
* Standalone label component for consistent form labeling across the design system.
|
|
3938
3993
|
*
|
|
@@ -4852,5 +4907,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.0.6", ngImpor
|
|
|
4852
4907
|
* Generated bundle index. Do not edit.
|
|
4853
4908
|
*/
|
|
4854
4909
|
|
|
4855
|
-
export { COAR_BUILTIN_ICON_SOURCE_KEY, COAR_DEFAULT_ICON_SOURCE_KEY, COAR_ICON_SOURCE_ENTRY, COAR_LOCALE_SERVICE, CoarBadgeComponent, CoarButtonComponent, CoarCardComponent, CoarCheckboxComponent, CoarCodeBlockComponent, CoarControlValueAccessor, CoarDatePickerComponent, CoarDividerComponent, CoarIconComponent, CoarIconService, CoarLabelComponent, CoarLocaleService, CoarMultiSelectComponent, CoarNoteComponent, CoarNumberInputComponent, CoarPasswordInputComponent, CoarPopoverComponent, CoarPopoverGroupService, CoarScrollbarDirective, CoarSingleSelectComponent, CoarTabComponent, CoarTabGroupComponent, CoarTableComponent, CoarTagComponent, CoarTagSelectComponent, CoarTextInputComponent, CoarTooltipDirective, coarProvideValueAccessor, provideCoarDefaultIconSource, provideCoarHttpIconSource, provideCoarIconBuiltInOverrides, provideCoarIconMapSource, provideCoarIconSource };
|
|
4910
|
+
export { COAR_BUILTIN_ICON_SOURCE_KEY, COAR_DEFAULT_ICON_SOURCE_KEY, COAR_ICON_SOURCE_ENTRY, COAR_LOCALE_SERVICE, CoarBadgeComponent, CoarButtonComponent, CoarCardComponent, CoarCheckboxComponent, CoarCodeBlockComponent, CoarControlValueAccessor, CoarDatePickerComponent, CoarDividerComponent, CoarIconComponent, CoarIconService, CoarLabelComponent, CoarLocaleService, CoarMultiSelectComponent, CoarNoteComponent, CoarNumberInputComponent, CoarPasswordInputComponent, CoarPopoverComponent, CoarPopoverGroupService, CoarScrollbarDirective, CoarSidebarComponent, CoarSingleSelectComponent, CoarTabComponent, CoarTabGroupComponent, CoarTableComponent, CoarTagComponent, CoarTagSelectComponent, CoarTextInputComponent, CoarTooltipDirective, coarProvideValueAccessor, provideCoarDefaultIconSource, provideCoarHttpIconSource, provideCoarIconBuiltInOverrides, provideCoarIconMapSource, provideCoarIconSource };
|
|
4856
4911
|
//# sourceMappingURL=cocoar-ui-components.mjs.map
|