@memberjunction/ng-ui-components 0.0.1 → 5.23.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.
Files changed (69) hide show
  1. package/dist/lib/accordion/accordion.component.d.ts +58 -0
  2. package/dist/lib/accordion/accordion.component.d.ts.map +1 -0
  3. package/dist/lib/accordion/accordion.component.js +163 -0
  4. package/dist/lib/accordion/accordion.component.js.map +1 -0
  5. package/dist/lib/accordion/accordion.scss +45 -0
  6. package/dist/lib/button/button.directive.d.ts +45 -0
  7. package/dist/lib/button/button.directive.d.ts.map +1 -0
  8. package/dist/lib/button/button.directive.js +114 -0
  9. package/dist/lib/button/button.directive.js.map +1 -0
  10. package/dist/lib/button/button.scss +250 -0
  11. package/dist/lib/calendar/calendar-utils.d.ts +16 -0
  12. package/dist/lib/calendar/calendar-utils.d.ts.map +1 -0
  13. package/dist/lib/calendar/calendar-utils.js +41 -0
  14. package/dist/lib/calendar/calendar-utils.js.map +1 -0
  15. package/dist/lib/combobox/combobox.component.d.ts +83 -0
  16. package/dist/lib/combobox/combobox.component.d.ts.map +1 -0
  17. package/dist/lib/combobox/combobox.component.js +483 -0
  18. package/dist/lib/combobox/combobox.component.js.map +1 -0
  19. package/dist/lib/combobox/combobox.scss +86 -0
  20. package/dist/lib/datepicker/datepicker.component.d.ts +50 -0
  21. package/dist/lib/datepicker/datepicker.component.d.ts.map +1 -0
  22. package/dist/lib/datepicker/datepicker.component.js +279 -0
  23. package/dist/lib/datepicker/datepicker.component.js.map +1 -0
  24. package/dist/lib/datepicker/datepicker.scss +60 -0
  25. package/dist/lib/dialog/dialog.component.d.ts +84 -0
  26. package/dist/lib/dialog/dialog.component.d.ts.map +1 -0
  27. package/dist/lib/dialog/dialog.component.js +285 -0
  28. package/dist/lib/dialog/dialog.component.js.map +1 -0
  29. package/dist/lib/dialog/dialog.scss +134 -0
  30. package/dist/lib/dialog/dialog.service.d.ts +114 -0
  31. package/dist/lib/dialog/dialog.service.d.ts.map +1 -0
  32. package/dist/lib/dialog/dialog.service.js +282 -0
  33. package/dist/lib/dialog/dialog.service.js.map +1 -0
  34. package/dist/lib/dropdown/dropdown.component.d.ts +75 -0
  35. package/dist/lib/dropdown/dropdown.component.d.ts.map +1 -0
  36. package/dist/lib/dropdown/dropdown.component.js +445 -0
  37. package/dist/lib/dropdown/dropdown.component.js.map +1 -0
  38. package/dist/lib/dropdown/dropdown.scss +68 -0
  39. package/dist/lib/input/chip.scss +64 -0
  40. package/dist/lib/input/input-switch-progress.scss +57 -0
  41. package/dist/lib/input/input.scss +77 -0
  42. package/dist/lib/numeric-input/numeric-input.component.d.ts +31 -0
  43. package/dist/lib/numeric-input/numeric-input.component.d.ts.map +1 -0
  44. package/dist/lib/numeric-input/numeric-input.component.js +103 -0
  45. package/dist/lib/numeric-input/numeric-input.component.js.map +1 -0
  46. package/dist/lib/progress-bar/progress-bar.component.d.ts +14 -0
  47. package/dist/lib/progress-bar/progress-bar.component.d.ts.map +1 -0
  48. package/dist/lib/progress-bar/progress-bar.component.js +62 -0
  49. package/dist/lib/progress-bar/progress-bar.component.js.map +1 -0
  50. package/dist/lib/splitter/splitter.component.d.ts +23 -0
  51. package/dist/lib/splitter/splitter.component.d.ts.map +1 -0
  52. package/dist/lib/splitter/splitter.component.js +24 -0
  53. package/dist/lib/splitter/splitter.component.js.map +1 -0
  54. package/dist/lib/splitter/splitter.scss +29 -0
  55. package/dist/lib/switch/switch.component.d.ts +24 -0
  56. package/dist/lib/switch/switch.component.d.ts.map +1 -0
  57. package/dist/lib/switch/switch.component.js +82 -0
  58. package/dist/lib/switch/switch.component.js.map +1 -0
  59. package/dist/lib/window/window.component.d.ts +115 -0
  60. package/dist/lib/window/window.component.d.ts.map +1 -0
  61. package/dist/lib/window/window.component.js +502 -0
  62. package/dist/lib/window/window.component.js.map +1 -0
  63. package/dist/lib/window/window.scss +97 -0
  64. package/dist/public-api.d.ts +14 -0
  65. package/dist/public-api.d.ts.map +1 -0
  66. package/dist/public-api.js +16 -0
  67. package/dist/public-api.js.map +1 -0
  68. package/package.json +39 -6
  69. package/README.md +0 -45
@@ -0,0 +1 @@
1
+ {"version":3,"file":"window.component.js","sourceRoot":"","sources":["../../../src/lib/window/window.component.ts"],"names":[],"mappings":"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","sourcesContent":["import { Component, Input, Output, EventEmitter, HostListener, OnDestroy, ElementRef, ChangeDetectorRef, NgZone, inject } from '@angular/core';\n\n/**\n * mj-window — Floating window panel. Replaces `<kendo-window>`.\n *\n * Unlike mj-dialog, this does NOT have a backdrop and does NOT block interaction\n * with the rest of the page. It's a floating panel, similar to Kendo's Window.\n *\n * Supports dragging (via titlebar), resizing (via edges/corners), minimize, and maximize.\n *\n * @example\n * ```html\n * <mj-window [Visible]=\"showWindow\" Title=\"Details\" [Width]=\"600\" [Height]=\"400\"\n * [Draggable]=\"true\" [Resizable]=\"true\" (Close)=\"onClose()\"\n * (StateChange)=\"onStateChange($event)\">\n * <p>Window content</p>\n * </mj-window>\n * ```\n */\n@Component({\n selector: 'mj-window',\n standalone: true,\n template: `\n @if (Visible) {\n <div class=\"mj-window\"\n [class.mj-window--maximized]=\"State === 'maximized'\"\n [class.mj-window--draggable]=\"Draggable\"\n [class.mj-window--resizable]=\"Resizable && State !== 'maximized'\"\n [style.width]=\"State === 'maximized' ? '100vw' : resolvedWidth\"\n [style.height]=\"State === 'maximized' ? '100vh' : resolvedHeight\"\n [style.top]=\"State === 'maximized' ? '0' : resolvedTop\"\n [style.left]=\"State === 'maximized' ? '0' : resolvedLeft\"\n [style.transform]=\"ResolvedTransform\"\n [style.min-width]=\"MinWidth ? MinWidth + 'px' : null\"\n [style.min-height]=\"MinHeight ? MinHeight + 'px' : null\"\n [style.max-width]=\"State === 'maximized' ? '100vw' : '90vw'\"\n [style.max-height]=\"State === 'maximized' ? '100vh' : '90vh'\"\n [style.border-radius]=\"State === 'maximized' ? '0' : null\"\n role=\"dialog\"\n [attr.aria-labelledby]=\"Title ? 'mj-window-title-' + WindowId : null\">\n\n <!-- Resize handles -->\n @if (Resizable && State !== 'maximized') {\n <div class=\"mj-window-resize mj-window-resize--n\" (mousedown)=\"OnResizeStart($event, 'n')\"></div>\n <div class=\"mj-window-resize mj-window-resize--s\" (mousedown)=\"OnResizeStart($event, 's')\"></div>\n <div class=\"mj-window-resize mj-window-resize--e\" (mousedown)=\"OnResizeStart($event, 'e')\"></div>\n <div class=\"mj-window-resize mj-window-resize--w\" (mousedown)=\"OnResizeStart($event, 'w')\"></div>\n <div class=\"mj-window-resize mj-window-resize--ne\" (mousedown)=\"OnResizeStart($event, 'ne')\"></div>\n <div class=\"mj-window-resize mj-window-resize--nw\" (mousedown)=\"OnResizeStart($event, 'nw')\"></div>\n <div class=\"mj-window-resize mj-window-resize--se\" (mousedown)=\"OnResizeStart($event, 'se')\"></div>\n <div class=\"mj-window-resize mj-window-resize--sw\" (mousedown)=\"OnResizeStart($event, 'sw')\"></div>\n }\n\n <div class=\"mj-window-titlebar\"\n (mousedown)=\"OnDragStart($event)\">\n @if (Title) {\n <h3 class=\"mj-window-title\" [id]=\"'mj-window-title-' + WindowId\">{{ Title }}</h3>\n }\n <ng-content select=\"mj-window-titlebar\"></ng-content>\n <button class=\"mj-window-close\" (click)=\"OnCloseClick()\" (mousedown)=\"$event.stopPropagation()\" aria-label=\"Close window\">\n <i class=\"fa-solid fa-times\"></i>\n </button>\n </div>\n\n <div class=\"mj-window-body\">\n <ng-content></ng-content>\n </div>\n\n <ng-content select=\"mj-window-actions\"></ng-content>\n </div>\n }\n `\n})\nexport class MJWindowComponent implements OnDestroy {\n private _visible = false;\n private static nextId = 0;\n\n @Input()\n set Visible(value: boolean) { this._visible = value; }\n get Visible(): boolean { return this._visible; }\n\n @Input() Title = '';\n @Input()\n set Width(value: number | string | null) {\n this._width = value;\n if (value != null) this.currentWidth = this.parseSize(value);\n }\n get Width(): number | string | null { return this._width; }\n\n @Input()\n set Height(value: number | string | null) {\n this._height = value;\n if (value != null) this.currentHeight = this.parseSize(value);\n }\n get Height(): number | string | null { return this._height; }\n @Input()\n set Top(value: number | null) { if (value != null) this.currentTop = value; }\n get Top(): number | null { return this.currentTop; }\n\n @Input()\n set Left(value: number | null) { if (value != null) this.currentLeft = value; }\n get Left(): number | null { return this.currentLeft; }\n @Input() MinWidth: number | null = null;\n @Input() MinHeight: number | null = null;\n @Input() Draggable = false;\n @Input() Resizable = false;\n\n /** Window state: 'default' or 'maximized'. */\n @Input()\n set State(value: 'default' | 'maximized') {\n if (value !== this._state) {\n if (value === 'maximized') {\n this.savedTop = this.currentTop;\n this.savedLeft = this.currentLeft;\n this.savedWidth = this.currentWidth;\n this.savedHeight = this.currentHeight;\n } else if (this._state === 'maximized') {\n this.currentTop = this.savedTop;\n this.currentLeft = this.savedLeft;\n this.currentWidth = this.savedWidth;\n this.currentHeight = this.savedHeight;\n }\n this._state = value;\n this.StateChange.emit(value);\n }\n }\n get State(): 'default' | 'maximized' { return this._state; }\n\n @Output() Close = new EventEmitter<void>();\n @Output() StateChange = new EventEmitter<'default' | 'maximized'>();\n @Output() Resize = new EventEmitter<void>();\n\n WindowId = MJWindowComponent.nextId++;\n\n // Internal position/size tracking\n private _state: 'default' | 'maximized' = 'default';\n private _width: number | string | null = null;\n private _height: number | string | null = null;\n private currentTop: number | null = null;\n private currentLeft: number | null = null;\n private currentWidth: number | null = null;\n private currentHeight: number | null = null;\n\n // Saved dimensions for restore from maximize\n private savedTop: number | null = null;\n private savedLeft: number | null = null;\n private savedWidth: number | null = null;\n private savedHeight: number | null = null;\n\n // Drag state\n private isDragging = false;\n private dragStartX = 0;\n private dragStartY = 0;\n private dragStartTop = 0;\n private dragStartLeft = 0;\n\n // Resize state\n private isResizing = false;\n private resizeDirection = '';\n private resizeStartX = 0;\n private resizeStartY = 0;\n private resizeStartWidth = 0;\n private resizeStartHeight = 0;\n private resizeStartTop = 0;\n private resizeStartLeft = 0;\n\n private boundOnMouseMove: ((e: MouseEvent) => void) | null = null;\n private boundOnMouseUp: ((e: MouseEvent) => void) | null = null;\n\n private elementRef = inject(ElementRef);\n private cdr = inject(ChangeDetectorRef);\n private ngZone = inject(NgZone);\n\n get hasExplicitPosition(): boolean {\n return this.currentTop != null && this.currentLeft != null;\n }\n\n get ResolvedTransform(): string {\n if (this.State === 'maximized') return 'none';\n const hasTop = this.currentTop != null;\n const hasLeft = this.currentLeft != null;\n if (hasTop && hasLeft) return 'none';\n if (hasTop && !hasLeft) return 'translateX(-50%)';\n if (!hasTop && hasLeft) return 'translateY(-50%)';\n return 'translate(-50%, -50%)';\n }\n\n get resolvedWidth(): string {\n if (this.currentWidth != null) return `${this.currentWidth}px`;\n if (this.Width) return typeof this.Width === 'number' ? `${this.Width}px` : this.Width;\n return '500px';\n }\n\n get resolvedHeight(): string {\n if (this.currentHeight != null) return `${this.currentHeight}px`;\n if (this.Height) return typeof this.Height === 'number' ? `${this.Height}px` : this.Height;\n return 'auto';\n }\n\n get resolvedTop(): string {\n return this.currentTop != null ? `${this.currentTop}px` : '50%';\n }\n\n get resolvedLeft(): string {\n return this.currentLeft != null ? `${this.currentLeft}px` : '50%';\n }\n\n @HostListener('document:keydown.escape')\n OnEscapeKey(): void {\n if (this.Visible) this.OnCloseClick();\n }\n\n OnCloseClick(): void {\n this.Close.emit();\n }\n\n // --- Drag handling ---\n\n OnDragStart(event: MouseEvent): void {\n if (!this.Draggable || this.State === 'maximized') return;\n // Don't drag if clicking buttons inside titlebar\n if ((event.target as HTMLElement).closest('button')) return;\n\n event.preventDefault();\n this.isDragging = true;\n this.dragStartX = event.clientX;\n this.dragStartY = event.clientY;\n\n const windowEl = this.getWindowElement();\n if (windowEl) {\n const rect = windowEl.getBoundingClientRect();\n this.dragStartTop = rect.top;\n this.dragStartLeft = rect.left;\n\n // Ensure we're using absolute positioning once dragging starts\n if (this.currentTop == null) {\n this.currentTop = rect.top;\n this.currentLeft = rect.left;\n this.cdr.detectChanges();\n }\n }\n\n this.attachMouseListeners();\n }\n\n // --- Resize handling ---\n\n OnResizeStart(event: MouseEvent, direction: string): void {\n if (!this.Resizable || this.State === 'maximized') return;\n event.preventDefault();\n event.stopPropagation();\n\n this.isResizing = true;\n this.resizeDirection = direction;\n this.resizeStartX = event.clientX;\n this.resizeStartY = event.clientY;\n\n const windowEl = this.getWindowElement();\n if (windowEl) {\n const rect = windowEl.getBoundingClientRect();\n this.resizeStartWidth = rect.width;\n this.resizeStartHeight = rect.height;\n this.resizeStartTop = rect.top;\n this.resizeStartLeft = rect.left;\n\n // Ensure absolute positioning\n if (this.currentTop == null) {\n this.currentTop = rect.top;\n this.currentLeft = rect.left;\n }\n if (this.currentWidth == null) {\n this.currentWidth = rect.width;\n }\n if (this.currentHeight == null) {\n this.currentHeight = rect.height;\n }\n }\n\n this.attachMouseListeners();\n }\n\n private attachMouseListeners(): void {\n this.ngZone.runOutsideAngular(() => {\n this.boundOnMouseMove = (e: MouseEvent) => this.onMouseMove(e);\n this.boundOnMouseUp = (e: MouseEvent) => this.onMouseUp(e);\n document.addEventListener('mousemove', this.boundOnMouseMove);\n document.addEventListener('mouseup', this.boundOnMouseUp);\n });\n }\n\n private onMouseMove(event: MouseEvent): void {\n if (this.isDragging) {\n const dx = event.clientX - this.dragStartX;\n const dy = event.clientY - this.dragStartY;\n this.currentTop = Math.max(0, this.dragStartTop + dy);\n this.currentLeft = Math.max(0, this.dragStartLeft + dx);\n this.ngZone.run(() => this.cdr.detectChanges());\n } else if (this.isResizing) {\n this.handleResize(event);\n this.ngZone.run(() => {\n this.cdr.detectChanges();\n this.Resize.emit();\n });\n }\n }\n\n private handleResize(event: MouseEvent): void {\n const dx = event.clientX - this.resizeStartX;\n const dy = event.clientY - this.resizeStartY;\n const minW = this.MinWidth || 200;\n const minH = this.MinHeight || 150;\n const dir = this.resizeDirection;\n\n if (dir.includes('e')) {\n this.currentWidth = Math.max(minW, this.resizeStartWidth + dx);\n }\n if (dir.includes('w')) {\n const newWidth = Math.max(minW, this.resizeStartWidth - dx);\n this.currentLeft = this.resizeStartLeft + (this.resizeStartWidth - newWidth);\n this.currentWidth = newWidth;\n }\n if (dir.includes('s')) {\n this.currentHeight = Math.max(minH, this.resizeStartHeight + dy);\n }\n if (dir.includes('n')) {\n const newHeight = Math.max(minH, this.resizeStartHeight - dy);\n this.currentTop = this.resizeStartTop + (this.resizeStartHeight - newHeight);\n this.currentHeight = newHeight;\n }\n }\n\n private onMouseUp(_event: MouseEvent): void {\n this.isDragging = false;\n this.isResizing = false;\n this.detachMouseListeners();\n }\n\n private detachMouseListeners(): void {\n if (this.boundOnMouseMove) {\n document.removeEventListener('mousemove', this.boundOnMouseMove);\n this.boundOnMouseMove = null;\n }\n if (this.boundOnMouseUp) {\n document.removeEventListener('mouseup', this.boundOnMouseUp);\n this.boundOnMouseUp = null;\n }\n }\n\n private getWindowElement(): HTMLElement | null {\n return this.elementRef.nativeElement.querySelector('.mj-window');\n }\n\n private parseSize(value: string | number): number | null {\n if (typeof value === 'number') return value;\n if (value.endsWith('vw')) return (parseFloat(value) / 100) * window.innerWidth;\n if (value.endsWith('vh')) return (parseFloat(value) / 100) * window.innerHeight;\n if (value.endsWith('px')) return parseFloat(value);\n const parsed = parseFloat(value);\n return isNaN(parsed) ? null : parsed;\n }\n\n /** Programmatic method to update position */\n SetPosition(top: number, left: number): void {\n this.currentTop = top;\n this.currentLeft = left;\n this.cdr.detectChanges();\n }\n\n /** Programmatic method to update size */\n SetSize(width: number, height: number): void {\n this.currentWidth = width;\n this.currentHeight = height;\n this.cdr.detectChanges();\n }\n\n /** Get the current window element for DOM queries */\n GetWindowElement(): HTMLElement | null {\n return this.getWindowElement();\n }\n\n ngOnDestroy(): void {\n this.detachMouseListeners();\n }\n}\n\n/**\n * mj-window-titlebar — Custom titlebar for mj-window. Replaces `<kendo-window-titlebar>`.\n */\n@Component({\n selector: 'mj-window-titlebar',\n standalone: true,\n template: `<ng-content></ng-content>`,\n styles: [`:host { display: contents; }`]\n})\nexport class MJWindowTitlebarComponent {}\n\n/**\n * mj-window-actions — Footer actions for mj-window.\n */\n@Component({\n selector: 'mj-window-actions',\n standalone: true,\n template: `<div class=\"mj-window-actions\"><ng-content></ng-content></div>`\n})\nexport class MJWindowActionsComponent {}\n"]}
@@ -0,0 +1,97 @@
1
+ /**
2
+ * MJ Window Styles
3
+ */
4
+
5
+ .mj-window {
6
+ position: fixed;
7
+ top: 50%;
8
+ left: 50%;
9
+ transform: translate(-50%, -50%);
10
+ z-index: 10000;
11
+ display: flex;
12
+ flex-direction: column;
13
+ background: var(--mj-bg-surface);
14
+ border: 1px solid var(--mj-border-default);
15
+ border-radius: var(--mj-radius-lg);
16
+ box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
17
+ overflow: hidden;
18
+ max-width: 90vw;
19
+ max-height: 90vh;
20
+ }
21
+
22
+ .mj-window--maximized {
23
+ border-radius: 0;
24
+ max-width: 100vw;
25
+ max-height: 100vh;
26
+ }
27
+
28
+ .mj-window--draggable .mj-window-titlebar {
29
+ cursor: move;
30
+ user-select: none;
31
+ }
32
+
33
+ .mj-window-titlebar {
34
+ display: flex; align-items: center; justify-content: space-between;
35
+ padding: 12px 16px; border-bottom: 1px solid var(--mj-border-default);
36
+ background: var(--mj-bg-surface-card); flex-shrink: 0;
37
+ }
38
+
39
+ .mj-window-title {
40
+ margin: 0; font-size: 1rem; font-weight: var(--mj-font-semibold);
41
+ color: var(--mj-text-primary); flex: 1;
42
+ }
43
+
44
+ .mj-window-close {
45
+ display: flex; align-items: center; justify-content: center;
46
+ width: 28px; height: 28px; border: none; background: none;
47
+ cursor: pointer; color: var(--mj-text-muted); border-radius: var(--mj-radius-sm);
48
+ transition: var(--mj-transition-colors); margin-left: 8px;
49
+ &:hover { background: var(--mj-bg-surface-hover); color: var(--mj-text-primary); }
50
+ }
51
+
52
+ .mj-window-body { flex: 1; overflow-y: auto; padding: 16px; }
53
+
54
+ .mj-window-actions {
55
+ display: flex; align-items: center; gap: 8px;
56
+ padding: 12px 16px; border-top: 1px solid var(--mj-border-default); flex-shrink: 0;
57
+ }
58
+
59
+ /* ---- Resize handles ---- */
60
+ .mj-window-resize {
61
+ position: absolute;
62
+ z-index: 2;
63
+ }
64
+
65
+ .mj-window-resize--n,
66
+ .mj-window-resize--s {
67
+ left: 6px; right: 6px; height: 6px; cursor: ns-resize;
68
+ }
69
+ .mj-window-resize--n { top: -3px; }
70
+ .mj-window-resize--s { bottom: -3px; }
71
+
72
+ .mj-window-resize--e,
73
+ .mj-window-resize--w {
74
+ top: 6px; bottom: 6px; width: 6px; cursor: ew-resize;
75
+ }
76
+ .mj-window-resize--e { right: -3px; }
77
+ .mj-window-resize--w { left: -3px; }
78
+
79
+ .mj-window-resize--ne,
80
+ .mj-window-resize--nw,
81
+ .mj-window-resize--se,
82
+ .mj-window-resize--sw {
83
+ width: 12px; height: 12px;
84
+ }
85
+ .mj-window-resize--ne { top: -3px; right: -3px; cursor: nesw-resize; }
86
+ .mj-window-resize--nw { top: -3px; left: -3px; cursor: nwse-resize; }
87
+ .mj-window-resize--se { bottom: -3px; right: -3px; cursor: nwse-resize; }
88
+ .mj-window-resize--sw { bottom: -3px; left: -3px; cursor: nesw-resize; }
89
+
90
+ @media (max-width: 767px) {
91
+ .mj-window {
92
+ top: 0; left: 0; transform: none;
93
+ width: 100vw !important; height: 100vh !important;
94
+ max-width: 100vw; max-height: 100vh; border-radius: 0;
95
+ }
96
+ .mj-window-resize { display: none; }
97
+ }
@@ -0,0 +1,14 @@
1
+ export * from './lib/button/button.directive';
2
+ export * from './lib/dialog/dialog.component';
3
+ export * from './lib/dialog/dialog.service';
4
+ export * from './lib/dropdown/dropdown.component';
5
+ export * from './lib/switch/switch.component';
6
+ export * from './lib/numeric-input/numeric-input.component';
7
+ export * from './lib/progress-bar/progress-bar.component';
8
+ export * from './lib/calendar/calendar-utils';
9
+ export * from './lib/datepicker/datepicker.component';
10
+ export * from './lib/splitter/splitter.component';
11
+ export * from './lib/accordion/accordion.component';
12
+ export * from './lib/window/window.component';
13
+ export * from './lib/combobox/combobox.component';
14
+ //# sourceMappingURL=public-api.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.d.ts","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAGA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC"}
@@ -0,0 +1,16 @@
1
+ // @memberjunction/ng-ui-components
2
+ // Reusable standalone Angular UI components for MemberJunction
3
+ export * from './lib/button/button.directive';
4
+ export * from './lib/dialog/dialog.component';
5
+ export * from './lib/dialog/dialog.service';
6
+ export * from './lib/dropdown/dropdown.component';
7
+ export * from './lib/switch/switch.component';
8
+ export * from './lib/numeric-input/numeric-input.component';
9
+ export * from './lib/progress-bar/progress-bar.component';
10
+ export * from './lib/calendar/calendar-utils';
11
+ export * from './lib/datepicker/datepicker.component';
12
+ export * from './lib/splitter/splitter.component';
13
+ export * from './lib/accordion/accordion.component';
14
+ export * from './lib/window/window.component';
15
+ export * from './lib/combobox/combobox.component';
16
+ //# sourceMappingURL=public-api.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"public-api.js","sourceRoot":"","sources":["../src/public-api.ts"],"names":[],"mappings":"AAAA,mCAAmC;AACnC,+DAA+D;AAE/D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,mCAAmC,CAAC;AAClD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,6CAA6C,CAAC;AAC5D,cAAc,2CAA2C,CAAC;AAC1D,cAAc,+BAA+B,CAAC;AAC9C,cAAc,uCAAuC,CAAC;AACtD,cAAc,mCAAmC,CAAC;AAClD,cAAc,qCAAqC,CAAC;AACpD,cAAc,+BAA+B,CAAC;AAC9C,cAAc,mCAAmC,CAAC","sourcesContent":["// @memberjunction/ng-ui-components\n// Reusable standalone Angular UI components for MemberJunction\n\nexport * from './lib/button/button.directive';\nexport * from './lib/dialog/dialog.component';\nexport * from './lib/dialog/dialog.service';\nexport * from './lib/dropdown/dropdown.component';\nexport * from './lib/switch/switch.component';\nexport * from './lib/numeric-input/numeric-input.component';\nexport * from './lib/progress-bar/progress-bar.component';\nexport * from './lib/calendar/calendar-utils';\nexport * from './lib/datepicker/datepicker.component';\nexport * from './lib/splitter/splitter.component';\nexport * from './lib/accordion/accordion.component';\nexport * from './lib/window/window.component';\nexport * from './lib/combobox/combobox.component';\n"]}
package/package.json CHANGED
@@ -1,10 +1,43 @@
1
1
  {
2
2
  "name": "@memberjunction/ng-ui-components",
3
- "version": "0.0.1",
4
- "description": "OIDC trusted publishing setup package for @memberjunction/ng-ui-components",
3
+ "version": "5.23.0",
4
+ "description": "MemberJunction: Angular UI Components - reusable standalone components replacing Kendo UI dependencies.",
5
+ "main": "./dist/public-api.js",
6
+ "typings": "./dist/public-api.d.ts",
7
+ "files": [
8
+ "/dist"
9
+ ],
10
+ "scripts": {
11
+ "test": "vitest run",
12
+ "build": "npm run clean && ngc && npm run copy-assets",
13
+ "copy-assets": "cpy src/lib/button/button.scss dist/lib/button --flat && cpy src/lib/dialog/dialog.scss dist/lib/dialog --flat && cpy src/lib/dropdown/dropdown.scss dist/lib/dropdown --flat && cpy src/lib/combobox/combobox.scss dist/lib/combobox --flat && cpy src/lib/input/input.scss dist/lib/input --flat && cpy src/lib/input/input-switch-progress.scss dist/lib/input --flat && cpy src/lib/datepicker/datepicker.scss dist/lib/datepicker --flat && cpy src/lib/splitter/splitter.scss dist/lib/splitter --flat && cpy src/lib/accordion/accordion.scss dist/lib/accordion --flat && cpy src/lib/window/window.scss dist/lib/window --flat && cpy src/lib/input/chip.scss dist/lib/input --flat",
14
+ "clean": "rimraf dist",
15
+ "test:watch": "vitest"
16
+ },
5
17
  "keywords": [
6
- "oidc",
7
- "trusted-publishing",
8
- "setup"
9
- ]
18
+ "MemberJunction",
19
+ "Angular"
20
+ ],
21
+ "author": "",
22
+ "license": "ISC",
23
+ "devDependencies": {
24
+ "@angular/compiler": "21.1.3",
25
+ "@angular/compiler-cli": "21.1.3",
26
+ "vitest": "^4.0.18"
27
+ },
28
+ "peerDependencies": {
29
+ "@angular/common": "21.1.3",
30
+ "@angular/core": "21.1.3",
31
+ "rxjs": "^7.8.2"
32
+ },
33
+ "dependencies": {
34
+ "@angular/cdk": "21.1.3",
35
+ "angular-split": "^20.0.0",
36
+ "tslib": "^2.8.1"
37
+ },
38
+ "sideEffects": false,
39
+ "repository": {
40
+ "type": "git",
41
+ "url": "https://github.com/MemberJunction/MJ"
42
+ }
10
43
  }
package/README.md DELETED
@@ -1,45 +0,0 @@
1
- # @memberjunction/ng-ui-components
2
-
3
- ## ⚠️ IMPORTANT NOTICE ⚠️
4
-
5
- **This package is created solely for the purpose of setting up OIDC (OpenID Connect) trusted publishing with npm.**
6
-
7
- This is **NOT** a functional package and contains **NO** code or functionality beyond the OIDC setup configuration.
8
-
9
- ## Purpose
10
-
11
- This package exists to:
12
- 1. Configure OIDC trusted publishing for the package name `@memberjunction/ng-ui-components`
13
- 2. Enable secure, token-less publishing from CI/CD workflows
14
- 3. Establish provenance for packages published under this name
15
-
16
- ## What is OIDC Trusted Publishing?
17
-
18
- OIDC trusted publishing allows package maintainers to publish packages directly from their CI/CD workflows without needing to manage npm access tokens. Instead, it uses OpenID Connect to establish trust between the CI/CD provider (like GitHub Actions) and npm.
19
-
20
- ## Setup Instructions
21
-
22
- To properly configure OIDC trusted publishing for this package:
23
-
24
- 1. Go to [npmjs.com](https://www.npmjs.com/) and navigate to your package settings
25
- 2. Configure the trusted publisher (e.g., GitHub Actions)
26
- 3. Specify the repository and workflow that should be allowed to publish
27
- 4. Use the configured workflow to publish your actual package
28
-
29
- ## DO NOT USE THIS PACKAGE
30
-
31
- This package is a placeholder for OIDC configuration only. It:
32
- - Contains no executable code
33
- - Provides no functionality
34
- - Should not be installed as a dependency
35
- - Exists only for administrative purposes
36
-
37
- ## More Information
38
-
39
- For more details about npm's trusted publishing feature, see:
40
- - [npm Trusted Publishing Documentation](https://docs.npmjs.com/generating-provenance-statements)
41
- - [GitHub Actions OIDC Documentation](https://docs.github.com/en/actions/deployment/security-hardening-your-deployments/about-security-hardening-with-openid-connect)
42
-
43
- ---
44
-
45
- **Maintained for OIDC setup purposes only**