cloud-ide-layout 1.0.82 → 1.0.83

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 (13) hide show
  1. package/fesm2022/{cloud-ide-layout-cloud-ide-layout-CIUW6wrd.mjs → cloud-ide-layout-cloud-ide-layout-D9kKEfS1.mjs} +68 -5
  2. package/fesm2022/cloud-ide-layout-cloud-ide-layout-D9kKEfS1.mjs.map +1 -0
  3. package/fesm2022/{cloud-ide-layout-drawer-theme.component-BxVKL9uk.mjs → cloud-ide-layout-drawer-theme.component-8-q9zSW4.mjs} +2 -2
  4. package/fesm2022/{cloud-ide-layout-drawer-theme.component-BxVKL9uk.mjs.map → cloud-ide-layout-drawer-theme.component-8-q9zSW4.mjs.map} +1 -1
  5. package/fesm2022/{cloud-ide-layout-floating-entity-selection.component-iUf34flA.mjs → cloud-ide-layout-floating-entity-selection.component-Bpj32QEt.mjs} +2 -2
  6. package/fesm2022/{cloud-ide-layout-floating-entity-selection.component-iUf34flA.mjs.map → cloud-ide-layout-floating-entity-selection.component-Bpj32QEt.mjs.map} +1 -1
  7. package/fesm2022/{cloud-ide-layout-home-wrapper.component-bAq8un4P.mjs → cloud-ide-layout-home-wrapper.component-BD25wOeY.mjs} +2 -2
  8. package/fesm2022/{cloud-ide-layout-home-wrapper.component-bAq8un4P.mjs.map → cloud-ide-layout-home-wrapper.component-BD25wOeY.mjs.map} +1 -1
  9. package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-Dmi3Zuqb.mjs → cloud-ide-layout-sidedrawer-notes.component-DPiszVIL.mjs} +2 -2
  10. package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-Dmi3Zuqb.mjs.map → cloud-ide-layout-sidedrawer-notes.component-DPiszVIL.mjs.map} +1 -1
  11. package/fesm2022/cloud-ide-layout.mjs +1 -1
  12. package/package.json +1 -1
  13. package/fesm2022/cloud-ide-layout-cloud-ide-layout-CIUW6wrd.mjs.map +0 -1
@@ -1266,7 +1266,7 @@ class CideLytFloatingEntitySelectionService {
1266
1266
  }
1267
1267
  try {
1268
1268
  // Use relative import to avoid circular dependency
1269
- const module = await import('./cloud-ide-layout-floating-entity-selection.component-iUf34flA.mjs');
1269
+ const module = await import('./cloud-ide-layout-floating-entity-selection.component-Bpj32QEt.mjs');
1270
1270
  if (module.CideLytFloatingEntitySelectionComponent) {
1271
1271
  this.containerService.registerComponent('entity-selection-header', module.CideLytFloatingEntitySelectionComponent);
1272
1272
  console.log('✅ Entity selection component registered successfully');
@@ -1413,6 +1413,12 @@ class CideLytHeaderWrapperComponent {
1413
1413
  icon: 'settings',
1414
1414
  iconColor: 'tw-text-gray-500'
1415
1415
  },
1416
+ {
1417
+ id: 'theme',
1418
+ label: 'Dark Mode',
1419
+ icon: 'dark_mode',
1420
+ iconColor: 'tw-text-gray-500'
1421
+ },
1416
1422
  {
1417
1423
  id: 'help',
1418
1424
  label: 'Help & Support',
@@ -1495,6 +1501,21 @@ class CideLytHeaderWrapperComponent {
1495
1501
  });
1496
1502
  }
1497
1503
  ngOnInit() {
1504
+ // Initialize dark mode from localStorage
1505
+ if (typeof document !== 'undefined' && typeof localStorage !== 'undefined') {
1506
+ const isDarkMode = localStorage.getItem('cide-dark-mode') === 'true';
1507
+ this.darkMode.set(isDarkMode);
1508
+ if (isDarkMode) {
1509
+ const root = document.documentElement;
1510
+ const body = document.body;
1511
+ root.setAttribute('data-theme', 'dark');
1512
+ root.classList.add('dark-mode');
1513
+ body.setAttribute('data-theme', 'dark');
1514
+ body.classList.add('dark-mode');
1515
+ }
1516
+ // Update theme menu item based on current state
1517
+ this.updateThemeMenuItem();
1518
+ }
1498
1519
  this.loadFinancialYears();
1499
1520
  this.loadAcademicYears();
1500
1521
  // Initialize notification dropdown with empty state
@@ -2316,6 +2337,11 @@ class CideLytHeaderWrapperComponent {
2316
2337
  case 'settings':
2317
2338
  this.navigateToSettings();
2318
2339
  break;
2340
+ case 'theme':
2341
+ this.toggleTheme();
2342
+ // Update the label dynamically
2343
+ this.updateThemeMenuItem();
2344
+ break;
2319
2345
  case 'help':
2320
2346
  this.navigateToHelp();
2321
2347
  break;
@@ -2324,6 +2350,43 @@ class CideLytHeaderWrapperComponent {
2324
2350
  break;
2325
2351
  }
2326
2352
  }
2353
+ /**
2354
+ * Toggle dark mode theme
2355
+ */
2356
+ toggleTheme() {
2357
+ this.darkMode.set(!this.darkMode());
2358
+ // Apply dark mode to root element (html/body) for global theme switching
2359
+ if (typeof document !== 'undefined') {
2360
+ const root = document.documentElement;
2361
+ const body = document.body;
2362
+ if (this.darkMode()) {
2363
+ root.setAttribute('data-theme', 'dark');
2364
+ root.classList.add('dark-mode');
2365
+ body.setAttribute('data-theme', 'dark');
2366
+ body.classList.add('dark-mode');
2367
+ // Save to localStorage
2368
+ localStorage.setItem('cide-dark-mode', 'true');
2369
+ }
2370
+ else {
2371
+ root.removeAttribute('data-theme');
2372
+ root.classList.remove('dark-mode');
2373
+ body.removeAttribute('data-theme');
2374
+ body.classList.remove('dark-mode');
2375
+ // Remove from localStorage
2376
+ localStorage.removeItem('cide-dark-mode');
2377
+ }
2378
+ }
2379
+ }
2380
+ /**
2381
+ * Update theme menu item label and icon based on current theme
2382
+ */
2383
+ updateThemeMenuItem() {
2384
+ const themeItem = this.profileItems.find(item => item.id === 'theme');
2385
+ if (themeItem) {
2386
+ themeItem.label = this.darkMode() ? 'Light Mode' : 'Dark Mode';
2387
+ themeItem.icon = this.darkMode() ? 'light_mode' : 'dark_mode';
2388
+ }
2389
+ }
2327
2390
  /**
2328
2391
  * Navigate to user profile page
2329
2392
  */
@@ -3639,8 +3702,8 @@ class CideLytSidedrawerWrapperComponent {
3639
3702
  }
3640
3703
  ngOnInit() {
3641
3704
  // Initialize the component map (You'd likely populate this from a config or service)
3642
- this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-Dmi3Zuqb.mjs').then(m => m.CideLytSidedrawerNotesComponent);
3643
- this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-BxVKL9uk.mjs').then(m => m.CideLytDrawerThemeComponent);
3705
+ this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-DPiszVIL.mjs').then(m => m.CideLytSidedrawerNotesComponent);
3706
+ this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-8-q9zSW4.mjs').then(m => m.CideLytDrawerThemeComponent);
3644
3707
  }
3645
3708
  async loadComponent(configFor) {
3646
3709
  console.log('🔍 SIDEDRAWER - Loading component:', configFor, 'Current tab:', this.currentTabId);
@@ -4163,7 +4226,7 @@ const layoutControlPannelChildRoutes = [{
4163
4226
  },
4164
4227
  {
4165
4228
  path: "home",
4166
- loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-bAq8un4P.mjs').then(c => c.CideLytHomeWrapperComponent),
4229
+ loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-BD25wOeY.mjs').then(c => c.CideLytHomeWrapperComponent),
4167
4230
  canActivate: [authGuard],
4168
4231
  data: {
4169
4232
  reuseTab: true, // For CustomRouteReuseStrategy
@@ -5731,4 +5794,4 @@ var floatingEntityRightsSharing_component = /*#__PURE__*/Object.freeze({
5731
5794
  */
5732
5795
 
5733
5796
  export { AppStateHelperService as A, CideLytSharedWrapperComponent as C, ENVIRONMENT_CONFIG as E, CideLytSidebarService as a, CideLytRequestService as b, CideLytSidedrawerService as c, CideLytThemeService as d, AppStateService as e, CloudIdeLayoutService as f, CloudIdeLayoutComponent as g, CideLytSharedService as h, layoutControlPannelChildRoutes as i, CustomRouteReuseStrategy as j, CideLytUserStatusService as k, layoutRoutes as l, CacheManagerService as m, CideLytFileManagerService as n, CideLytFloatingEntityRightsSharingComponent as o, processThemeVariable as p, CideLytFloatingEntityRightsSharingService as q, setCSSVariable as s, themeFactory as t };
5734
- //# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-CIUW6wrd.mjs.map
5797
+ //# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-D9kKEfS1.mjs.map