@brickclay-org/ui 0.0.9 → 0.0.13

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 (31) hide show
  1. package/README.md +1 -1
  2. package/package.json +16 -15
  3. package/ng-package.json +0 -8
  4. package/src/lib/assets/icons.ts +0 -8
  5. package/src/lib/brickclay-lib.spec.ts +0 -23
  6. package/src/lib/brickclay-lib.ts +0 -15
  7. package/src/lib/calender/calendar.module.ts +0 -35
  8. package/src/lib/calender/components/custom-calendar/custom-calendar.component.css +0 -698
  9. package/src/lib/calender/components/custom-calendar/custom-calendar.component.html +0 -230
  10. package/src/lib/calender/components/custom-calendar/custom-calendar.component.spec.ts +0 -23
  11. package/src/lib/calender/components/custom-calendar/custom-calendar.component.ts +0 -1534
  12. package/src/lib/calender/components/scheduled-date-picker/scheduled-date-picker.component.css +0 -373
  13. package/src/lib/calender/components/scheduled-date-picker/scheduled-date-picker.component.html +0 -210
  14. package/src/lib/calender/components/scheduled-date-picker/scheduled-date-picker.component.ts +0 -360
  15. package/src/lib/calender/components/time-picker/time-picker.component.css +0 -174
  16. package/src/lib/calender/components/time-picker/time-picker.component.html +0 -60
  17. package/src/lib/calender/components/time-picker/time-picker.component.ts +0 -283
  18. package/src/lib/calender/services/calendar-manager.service.ts +0 -45
  19. package/src/lib/checkbox/checkbox.css +0 -26
  20. package/src/lib/checkbox/checkbox.html +0 -42
  21. package/src/lib/checkbox/checkbox.ts +0 -67
  22. package/src/lib/radio/radio.css +0 -39
  23. package/src/lib/radio/radio.html +0 -58
  24. package/src/lib/radio/radio.ts +0 -77
  25. package/src/lib/toggle/components/toggle.component.css +0 -74
  26. package/src/lib/toggle/components/toggle.component.html +0 -24
  27. package/src/lib/toggle/components/toggle.component.ts +0 -62
  28. package/src/public-api.ts +0 -20
  29. package/tsconfig.lib.json +0 -19
  30. package/tsconfig.lib.prod.json +0 -11
  31. package/tsconfig.spec.json +0 -15
@@ -1,373 +0,0 @@
1
- .scheduled-date-picker-container {
2
- font-family: 'Inter', sans-serif;
3
- background: #ffffff;
4
- border-radius: 12px;
5
- padding: 0;
6
- box-shadow: 0 2px 8px rgba(0, 0, 0, 0.1);
7
- overflow: hidden;
8
- width: 100%;
9
- max-width: 100%;
10
- box-sizing: border-box;
11
- }
12
-
13
- /* Header Section */
14
- .scheduled-header {
15
- padding: 24px 24px 16px;
16
- border-bottom: 1px solid #e5e7eb;
17
- background: #ffffff;
18
- }
19
-
20
- .scheduled-title {
21
- font-size: 18px;
22
- font-weight: 500;
23
- line-height: 26px;
24
- color: #111827;
25
- letter-spacing: -0.28px;
26
- margin: 0 0 16px 0;
27
- }
28
-
29
- /* Tabs */
30
- .tabs {
31
- display: flex;
32
- /* gap: 8px; */
33
- /* border-bottom: 1px solid #e5e7eb; */
34
- margin-bottom: 16px;
35
- border-radius: 6px;
36
- padding: 3px;
37
- background-color: #54578E12;
38
- }
39
-
40
- .tab-button {
41
- padding: 5px 11px;
42
- border: none;
43
- background: transparent;
44
- color: #6B7080;
45
- font-size: 11px;
46
- font-weight: 500;
47
- cursor: pointer;
48
- border: 1px solid transparent;
49
- transition: all 0.2s;
50
- font-family: "Inter", sans-serif;
51
- flex: 1;
52
- border-radius: 4px;
53
- }
54
-
55
- /* .tab-button:hover {
56
- color: #111827;
57
- background: #f9fafb;
58
- } */
59
-
60
- .tab-button.active {
61
- color: #15191E;
62
- border-color: #42578A26;
63
- background: #FFFFFF;
64
- }
65
-
66
- /* Main Content Area */
67
- .scheduled-content {
68
- display: flex;
69
- gap: 0;
70
- align-items: stretch;
71
- /* Two-column layout by default on large screens */
72
- }
73
-
74
- /* Calendar Section (Left) */
75
- .calendar-section {
76
- flex: 0 0 55%;
77
- max-width: 55%;
78
- padding: 12px;
79
- border-right: 1px solid #e5e7eb;
80
- background: #ffffff;
81
- box-sizing: border-box;
82
- }
83
-
84
- .calendar-wrapper-inline {
85
- width: 100%;
86
- }
87
-
88
- .calendar-wrapper-inline app-custom-calendar {
89
- width: 100%;
90
- }
91
-
92
- /* Time Configuration Section (Right) */
93
- .time-config-section {
94
- flex: 0 0 45%;
95
- max-width: 45%;
96
- padding: 12px;
97
- background: #ffffff;
98
- overflow-y: auto;
99
- max-height: 600px;
100
- box-sizing: border-box;
101
- }
102
-
103
- .time-config-title {
104
- font-size: 16px;
105
- font-weight: 600;
106
- color: #111827;
107
- margin: 17px 0 14px 0;
108
- /* padding-bottom: 12px; */
109
- /* border-bottom: 1px solid #e5e7eb; */
110
- }
111
-
112
- /* Time Configuration Item */
113
- .time-config-item {
114
- padding: 14px;
115
- border: 1px solid #e5e7eb;
116
- border-radius: 8px;
117
- /* margin-bottom: 12px; */
118
- background: #ffffff;
119
- }
120
-
121
- .time-config-header {
122
- display: flex;
123
- justify-content: space-between;
124
- align-items: center;
125
- /* margin-bottom: 12px; */
126
- }
127
-
128
- .date-label {
129
- font-size: 12px;
130
- font-weight: 500;
131
- color: #15191E;
132
- /* text-transform: uppercase; */
133
- letter-spacing: -0.28px;
134
- }
135
-
136
- /* All Day Toggle */
137
- .all-day-toggle {
138
- display: flex;
139
- align-items: center;
140
- gap: 5px;
141
- cursor: pointer;
142
- user-select: none;
143
- }
144
-
145
- .all-day-toggle input[type="checkbox"] {
146
- width: 28px;
147
- height: 16px;
148
- appearance: none;
149
- background: #BBBDC5;
150
- border-radius: 10px;
151
- position: relative;
152
- cursor: pointer;
153
- transition: background 0.2s;
154
- margin: 0;
155
- }
156
-
157
- .all-day-toggle input[type="checkbox"]:checked {
158
- background: #22973F;
159
- }
160
-
161
- .all-day-toggle input[type="checkbox"]::before {
162
- content: "";
163
- position: absolute;
164
- width: 12px;
165
- height: 12px;
166
- border-radius: 50%;
167
- background: #ffffff;
168
- top: 1.5px;
169
- left: 2.5px;
170
- transition: transform 0.2s;
171
- box-shadow: 0 1px 3px rgba(0, 0, 0, 0.2);
172
- }
173
-
174
- .all-day-toggle input[type="checkbox"]:checked::before {
175
- transform: translateX(12px);
176
- }
177
-
178
- .toggle-label {
179
- font-size: 12px;
180
- font-weight: 500;
181
- color: #111827;
182
- }
183
-
184
- .all-day-toggle input[type="checkbox"]:checked + .toggle-label {
185
- color: #111827;
186
- }
187
-
188
- /* Time Inputs */
189
- .time-inputs {
190
- display: flex;
191
- gap: 14px;
192
- margin-top: 12px;
193
- }
194
-
195
-
196
- /* Time Configuration List (for multiple dates) */
197
- .time-config-list {
198
- display: flex;
199
- flex-direction: column;
200
- gap: 14px;
201
- max-height: 350px;
202
- overflow-y: auto;
203
- padding-right: 4px;
204
- }
205
-
206
-
207
- /* Scrollbar Styling */
208
- .time-config-list::-webkit-scrollbar {
209
- width: 6px;
210
- height: 6px;
211
- }
212
-
213
- .time-config-list::-webkit-scrollbar-track {
214
- background: #f1f1f1;
215
- border-radius: 3px;
216
- }
217
-
218
- .time-config-list::-webkit-scrollbar-thumb {
219
- background: #b4b4b4;
220
- border-radius: 3px;
221
- }
222
-
223
- .time-config-list::-webkit-scrollbar-thumb:hover {
224
- background: #9b9b9b;
225
- }
226
-
227
- .no-selection {
228
- padding: 24px;
229
- text-align: center;
230
- color: #9ca3af;
231
- font-size: 14px;
232
- }
233
-
234
- /* Action Buttons */
235
- .action-buttons {
236
- display: flex;
237
- justify-content: flex-end;
238
- gap: 12px;
239
- padding: 12px;
240
- border-top: 1px solid #e5e7eb;
241
- background: #ffffff;
242
- }
243
-
244
- .btn-clear,
245
- .btn-apply {
246
- padding: 10px 20px;
247
- border: none;
248
- border-radius: 6px;
249
- font-size: 14px;
250
- font-weight: 500;
251
- cursor: pointer;
252
- transition: all 0.2s;
253
- font-family: 'Inter', sans-serif;
254
- min-width: 80px;
255
- }
256
-
257
- .btn-clear {
258
- background: #ffffff;
259
- color: #6b7280;
260
- border: 1px solid #d1d5db;
261
- }
262
-
263
- .btn-clear:hover {
264
- background: #f9fafb;
265
- border-color: #9ca3af;
266
- }
267
-
268
- .btn-apply {
269
- background: #111827;
270
- color: #ffffff;
271
- }
272
-
273
- .btn-apply:hover {
274
- background: #374151;
275
- }
276
-
277
- /* Responsive Design */
278
- @media (max-width: 1200px) {
279
- .calendar-section {
280
- flex: 0 0 52%;
281
- max-width: 52%;
282
- }
283
-
284
- .time-config-section {
285
- flex: 0 0 48%;
286
- max-width: 48%;
287
- }
288
- }
289
-
290
- @media (max-width: 1024px) {
291
- .scheduled-content {
292
- flex-direction: column;
293
- }
294
-
295
- .calendar-section {
296
- flex: 1 1 auto;
297
- max-width: 100%;
298
- border-right: none;
299
- border-bottom: 1px solid #e5e7eb;
300
- }
301
-
302
- .time-config-section {
303
- flex: 1 1 auto;
304
- max-width: 100%;
305
- max-height: none;
306
- }
307
-
308
- .time-config-list {
309
- max-height: 320px;
310
- }
311
- }
312
-
313
- @media (max-width: 768px) {
314
- .scheduled-date-picker-container {
315
- border-radius: 0;
316
- }
317
-
318
- .scheduled-header {
319
- padding: 16px;
320
- }
321
-
322
- .calendar-section,
323
- .time-config-section {
324
- padding: 12px 16px;
325
- }
326
-
327
- .tabs {
328
- overflow-x: auto;
329
- }
330
-
331
- .tab-button {
332
- white-space: nowrap;
333
- font-size: 12px;
334
- padding: 6px 10px;
335
- }
336
-
337
- .time-inputs {
338
- flex-direction: column;
339
- }
340
-
341
- .time-config-item {
342
- padding: 12px;
343
- }
344
-
345
- .action-buttons {
346
- padding: 10px;
347
- }
348
- }
349
-
350
- @media (max-width: 480px) {
351
- .scheduled-title {
352
- font-size: 16px;
353
- }
354
-
355
- .time-config-title {
356
- font-size: 14px;
357
- }
358
-
359
- .date-label {
360
- font-size: 11px;
361
- }
362
-
363
- .time-config-list {
364
- max-height: 260px;
365
- }
366
-
367
- .btn-clear,
368
- .btn-apply {
369
- padding: 8px 14px;
370
- font-size: 13px;
371
- }
372
- }
373
-
@@ -1,210 +0,0 @@
1
- <div class="scheduled-date-picker-container">
2
- <!-- Header with Tabs -->
3
-
4
-
5
- <!-- Main Content Area -->
6
-
7
- <div class="scheduled-content">
8
- <!-- Left Side: Calendar -->
9
- <div class="calendar-section">
10
- <h2 class="scheduled-title">Scheduled Dates</h2>
11
- <div class="tabs">
12
- <button
13
- class="tab-button"
14
- [class.active]="activeTab === 'single'"
15
- (click)="onTabChange('single')">
16
- Single Date
17
- </button>
18
- <button
19
- class="tab-button"
20
- [class.active]="activeTab === 'multiple'"
21
- (click)="onTabChange('multiple')">
22
- Multiple Dates
23
- </button>
24
- <button
25
- class="tab-button"
26
- [class.active]="activeTab === 'range'"
27
- (click)="onTabChange('range')">
28
- Date Range
29
- </button>
30
- </div>
31
- <!-- Single Date Calendar -->
32
- <div *ngIf="activeTab === 'single'" class="calendar-wrapper-inline">
33
- <brickclay-custom-calendar
34
- [inline]="true"
35
- [dualCalendar]="false"
36
- [singleDatePicker]="true"
37
- [showRanges]="false"
38
- [enableTimepicker]="false"
39
- [showCancel]="false"
40
- placeholder="Select a date"
41
- (selected)="onSingleDateSelected($event)">
42
- </brickclay-custom-calendar>
43
- </div>
44
-
45
- <!-- Multiple Dates Calendar -->
46
- <div *ngIf="activeTab === 'multiple'" class="calendar-wrapper-inline">
47
- <brickclay-custom-calendar
48
- [inline]="true"
49
- [dualCalendar]="false"
50
- [singleDatePicker]="false"
51
- [showRanges]="false"
52
- [enableTimepicker]="false"
53
- [multiDateSelection]="true"
54
- [showCancel]="false"
55
- placeholder="Select multiple dates"
56
- (selected)="onMultipleDatesSelected($event)">
57
- </brickclay-custom-calendar>
58
- </div>
59
-
60
- <!-- Date Range Calendar -->
61
- <div *ngIf="activeTab === 'range'" class="calendar-wrapper-inline">
62
- <brickclay-custom-calendar
63
- [inline]="true"
64
- [dualCalendar]="false"
65
- [singleDatePicker]="false"
66
- [showRanges]="false"
67
- [enableTimepicker]="false"
68
- [showCancel]="false"
69
- placeholder="Select date range"
70
- (selected)="onRangeSelected($event)">
71
- </brickclay-custom-calendar>
72
- </div>
73
- </div>
74
-
75
- <!-- Right Side: Time Configuration -->
76
- <div class="time-config-section">
77
- <h3 class="time-config-title">Time Configuration</h3>
78
-
79
- <!-- Single Date Time Configuration -->
80
- <div *ngIf="activeTab === 'single'">
81
- <div *ngIf="singleDate" class="time-config-item">
82
- <div class="time-config-header">
83
- <span class="date-label">{{ formatDate(singleDate) }}</span>
84
- <label class="all-day-toggle">
85
- <span class="toggle-label">All Day</span>
86
- <input
87
- type="checkbox"
88
- [checked]="singleAllDay"
89
- (change)="onSingleAllDayChange()">
90
- </label>
91
- </div>
92
- <div *ngIf="!singleAllDay" class="time-inputs">
93
- <brickclay-time-picker
94
- pickerId="single-start"
95
- label="Start Time"
96
- [value]="singleStartTime"
97
- [position]="'left'"
98
- [closePicker]="shouldClosePicker('single-start')"
99
- (timeChange)="onSingleStartTimeChange($event)"
100
- (pickerOpened)="onTimePickerOpened($event)"
101
- (pickerClosed)="onTimePickerClosed($event)">
102
- </brickclay-time-picker>
103
- <brickclay-time-picker
104
- pickerId="single-end"
105
- label="End Time"
106
- [value]="singleEndTime"
107
- [position]="'right'"
108
- [closePicker]="shouldClosePicker('single-end')"
109
- (timeChange)="onSingleEndTimeChange($event)"
110
- (pickerOpened)="onTimePickerOpened($event)"
111
- (pickerClosed)="onTimePickerClosed($event)">
112
- </brickclay-time-picker>
113
- </div>
114
- </div>
115
- <div *ngIf="!singleDate" class="no-selection">
116
- <p>No date selected. Select a date from the calendar.</p>
117
- </div>
118
- </div>
119
-
120
- <!-- Multiple Dates Time Configuration -->
121
- <div *ngIf="activeTab === 'multiple'" class="time-config-list">
122
- <div
123
- *ngFor="let dateConfig of multipleDates; let i = index"
124
- class="time-config-item">
125
- <div class="time-config-header">
126
- <span class="date-label">{{ formatDate(dateConfig.date) }}</span>
127
- <label class="all-day-toggle">
128
- <span class="toggle-label">All Day</span>
129
- <input
130
- type="checkbox"
131
- [checked]="dateConfig.allDay"
132
- (change)="onMultipleDateAllDayChange(i)">
133
- </label>
134
- </div>
135
- <div *ngIf="!dateConfig.allDay" class="time-inputs">
136
- <brickclay-time-picker
137
- [pickerId]="'multiple-' + i + '-start'"
138
- label="Start Time"
139
- [value]="dateConfig.startTime"
140
- [position]="'left'"
141
- [closePicker]="shouldClosePicker('multiple-' + i + '-start')"
142
- (timeChange)="onMultipleDateStartTimeChange(i, $event)"
143
- (pickerOpened)="onTimePickerOpened($event)"
144
- (pickerClosed)="onTimePickerClosed($event)">
145
- </brickclay-time-picker>
146
- <brickclay-time-picker
147
- [pickerId]="'multiple-' + i + '-end'"
148
- label="End Time"
149
- [value]="dateConfig.endTime"
150
- [position]="'right'"
151
- [closePicker]="shouldClosePicker('multiple-' + i + '-end')"
152
- (timeChange)="onMultipleDateEndTimeChange(i, $event)"
153
- (pickerOpened)="onTimePickerOpened($event)"
154
- (pickerClosed)="onTimePickerClosed($event)">
155
- </brickclay-time-picker>
156
- </div>
157
- </div>
158
- <div *ngIf="multipleDates.length === 0" class="no-selection">
159
- <p>No dates selected. Select dates from the calendar.</p>
160
- </div>
161
- </div>
162
-
163
- <!-- Date Range Time Configuration -->
164
- <div *ngIf="activeTab === 'range' && rangeStartDate && rangeEndDate" class="time-config-item">
165
- <div class="time-config-header">
166
- <span class="date-label">{{ formatDate(rangeStartDate) }} - {{ formatDate(rangeEndDate) }}</span>
167
- <label class="all-day-toggle">
168
- <span class="toggle-label">All Day</span>
169
- <input
170
- type="checkbox"
171
- [checked]="rangeAllDay"
172
- (change)="onRangeAllDayChange()">
173
- </label>
174
- </div>
175
- <div *ngIf="!rangeAllDay" class="time-inputs">
176
- <brickclay-time-picker
177
- pickerId="range-start"
178
- label="Start Time"
179
- [value]="rangeStartTime"
180
- [position]="'left'"
181
- [closePicker]="shouldClosePicker('range-start')"
182
- (timeChange)="onRangeStartTimeChange($event)"
183
- (pickerOpened)="onTimePickerOpened($event)"
184
- (pickerClosed)="onTimePickerClosed($event)">
185
- </brickclay-time-picker>
186
- <brickclay-time-picker
187
- pickerId="range-end"
188
- label="End Time"
189
- [value]="rangeEndTime"
190
- [position]="'right'"
191
- [closePicker]="shouldClosePicker('range-end')"
192
- (timeChange)="onRangeEndTimeChange($event)"
193
- (pickerOpened)="onTimePickerOpened($event)"
194
- (pickerClosed)="onTimePickerClosed($event)">
195
- </brickclay-time-picker>
196
- </div>
197
- </div>
198
- <div *ngIf="activeTab === 'range' && (!rangeStartDate || !rangeEndDate)" class="no-selection">
199
- <p>No date range selected. Select a date range from the calendar.</p>
200
- </div>
201
- </div>
202
- </div>
203
-
204
- <!-- Action Buttons -->
205
- <div class="action-buttons">
206
- <button class="btn-clear" (click)="clear()">Clear</button>
207
- <button class="btn-apply" (click)="apply()">Apply</button>
208
- </div>
209
- </div>
210
-