cloud-ide-layout 1.0.106 → 1.0.107

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 (14) hide show
  1. package/fesm2022/{cloud-ide-layout-cloud-ide-layout-DLvP5juv.mjs → cloud-ide-layout-cloud-ide-layout-BaeUxU6C.mjs} +104 -39
  2. package/fesm2022/cloud-ide-layout-cloud-ide-layout-BaeUxU6C.mjs.map +1 -0
  3. package/fesm2022/{cloud-ide-layout-drawer-theme.component-NUZatXga.mjs → cloud-ide-layout-drawer-theme.component-D46FeYqz.mjs} +2 -2
  4. package/fesm2022/{cloud-ide-layout-drawer-theme.component-NUZatXga.mjs.map → cloud-ide-layout-drawer-theme.component-D46FeYqz.mjs.map} +1 -1
  5. package/fesm2022/{cloud-ide-layout-floating-entity-selection.component-B7-PEUCH.mjs → cloud-ide-layout-floating-entity-selection.component-D_BFF6Qt.mjs} +2 -2
  6. package/fesm2022/{cloud-ide-layout-floating-entity-selection.component-B7-PEUCH.mjs.map → cloud-ide-layout-floating-entity-selection.component-D_BFF6Qt.mjs.map} +1 -1
  7. package/fesm2022/{cloud-ide-layout-home-wrapper.component-DkZyDgER.mjs → cloud-ide-layout-home-wrapper.component-C61ybzgc.mjs} +2 -2
  8. package/fesm2022/{cloud-ide-layout-home-wrapper.component-DkZyDgER.mjs.map → cloud-ide-layout-home-wrapper.component-C61ybzgc.mjs.map} +1 -1
  9. package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-ByBbXxXy.mjs → cloud-ide-layout-sidedrawer-notes.component-CIwq4Ei_.mjs} +2 -2
  10. package/fesm2022/{cloud-ide-layout-sidedrawer-notes.component-ByBbXxXy.mjs.map → cloud-ide-layout-sidedrawer-notes.component-CIwq4Ei_.mjs.map} +1 -1
  11. package/fesm2022/cloud-ide-layout.mjs +1 -1
  12. package/index.d.ts +1 -1
  13. package/package.json +1 -1
  14. package/fesm2022/cloud-ide-layout-cloud-ide-layout-DLvP5juv.mjs.map +0 -1
@@ -1268,7 +1268,7 @@ class CideLytFloatingEntitySelectionService {
1268
1268
  }
1269
1269
  try {
1270
1270
  // Use relative import to avoid circular dependency
1271
- const module = await import('./cloud-ide-layout-floating-entity-selection.component-B7-PEUCH.mjs');
1271
+ const module = await import('./cloud-ide-layout-floating-entity-selection.component-D_BFF6Qt.mjs');
1272
1272
  if (module.CideLytFloatingEntitySelectionComponent) {
1273
1273
  this.containerService.registerComponent('entity-selection-header', module.CideLytFloatingEntitySelectionComponent);
1274
1274
  console.log('✅ Entity selection component registered successfully');
@@ -1591,7 +1591,7 @@ class NotificationSettingsComponent {
1591
1591
  }
1592
1592
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: NotificationSettingsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
1593
1593
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: NotificationSettingsComponent, isStandalone: true, selector: "cide-lyt-notification-settings", ngImport: i0, template: `
1594
- <div class="tw-p-4 tw-space-y-6 tw-bg-white dark:tw-bg-gray-800">
1594
+ <div class="tw-p-6 tw-space-y-6 tw-bg-white dark:tw-bg-gray-900">
1595
1595
  <!-- Header -->
1596
1596
  <div class="tw-flex tw-items-center tw-gap-2 tw-pb-3 tw-border-b tw-border-gray-200 dark:tw-border-gray-700">
1597
1597
  <div class="tw-w-8 tw-h-8 tw-bg-blue-500 tw-rounded-lg tw-flex tw-items-center tw-justify-center">
@@ -1609,7 +1609,7 @@ class NotificationSettingsComponent {
1609
1609
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Sound Settings</h4>
1610
1610
 
1611
1611
  <!-- Enable Sound -->
1612
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1612
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1613
1613
  <div class="tw-flex tw-items-center tw-gap-2">
1614
1614
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">volume_up</cide-ele-icon>
1615
1615
  <div>
@@ -1629,7 +1629,7 @@ class NotificationSettingsComponent {
1629
1629
 
1630
1630
  @if (settingsForm.get('soundEnabled')?.value) {
1631
1631
  <!-- Sound Type -->
1632
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1632
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1633
1633
  <label class="tw-block tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300 tw-mb-2">Sound Type</label>
1634
1634
  <cide-ele-select
1635
1635
  formControlName="soundType"
@@ -1639,7 +1639,7 @@ class NotificationSettingsComponent {
1639
1639
  </div>
1640
1640
 
1641
1641
  <!-- Sound Volume -->
1642
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1642
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1643
1643
  <div class="tw-flex tw-items-center tw-justify-between tw-mb-2">
1644
1644
  <label class="tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300">Volume</label>
1645
1645
  <span class="tw-text-xs tw-text-gray-600 dark:tw-text-gray-400">{{ settingsForm.get('soundVolume')?.value }}%</span>
@@ -1676,7 +1676,7 @@ class NotificationSettingsComponent {
1676
1676
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Quiet Hours</h4>
1677
1677
 
1678
1678
  <!-- Enable Quiet Hours -->
1679
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1679
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1680
1680
  <div class="tw-flex tw-items-center tw-gap-2">
1681
1681
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">schedule</cide-ele-icon>
1682
1682
  <div>
@@ -1695,7 +1695,7 @@ class NotificationSettingsComponent {
1695
1695
  </div>
1696
1696
 
1697
1697
  @if (settingsForm.get('quietHoursEnabled')?.value) {
1698
- <div class="tw-grid tw-grid-cols-2 tw-gap-3 tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1698
+ <div class="tw-grid tw-grid-cols-2 tw-gap-3 tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1699
1699
  <div>
1700
1700
  <label class="tw-block tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300 tw-mb-2">Start Time</label>
1701
1701
  <cide-ele-input
@@ -1721,7 +1721,7 @@ class NotificationSettingsComponent {
1721
1721
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Snooze</h4>
1722
1722
 
1723
1723
  <!-- Enable Snooze -->
1724
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1724
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1725
1725
  <div class="tw-flex tw-items-center tw-gap-2">
1726
1726
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">snooze</cide-ele-icon>
1727
1727
  <div>
@@ -1740,7 +1740,7 @@ class NotificationSettingsComponent {
1740
1740
  </div>
1741
1741
 
1742
1742
  @if (settingsForm.get('snoozeEnabled')?.value) {
1743
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1743
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1744
1744
  <label class="tw-block tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300 tw-mb-2">Snooze Duration (minutes)</label>
1745
1745
  <cide-ele-input
1746
1746
  type="number"
@@ -1758,7 +1758,7 @@ class NotificationSettingsComponent {
1758
1758
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Other Settings</h4>
1759
1759
 
1760
1760
  <!-- Desktop Notifications -->
1761
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1761
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1762
1762
  <div class="tw-flex tw-items-center tw-gap-2">
1763
1763
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">desktop_windows</cide-ele-icon>
1764
1764
  <div>
@@ -1812,7 +1812,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1812
1812
  CideInputComponent,
1813
1813
  CideSelectComponent
1814
1814
  ], template: `
1815
- <div class="tw-p-4 tw-space-y-6 tw-bg-white dark:tw-bg-gray-800">
1815
+ <div class="tw-p-6 tw-space-y-6 tw-bg-white dark:tw-bg-gray-900">
1816
1816
  <!-- Header -->
1817
1817
  <div class="tw-flex tw-items-center tw-gap-2 tw-pb-3 tw-border-b tw-border-gray-200 dark:tw-border-gray-700">
1818
1818
  <div class="tw-w-8 tw-h-8 tw-bg-blue-500 tw-rounded-lg tw-flex tw-items-center tw-justify-center">
@@ -1830,7 +1830,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1830
1830
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Sound Settings</h4>
1831
1831
 
1832
1832
  <!-- Enable Sound -->
1833
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1833
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1834
1834
  <div class="tw-flex tw-items-center tw-gap-2">
1835
1835
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">volume_up</cide-ele-icon>
1836
1836
  <div>
@@ -1850,7 +1850,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1850
1850
 
1851
1851
  @if (settingsForm.get('soundEnabled')?.value) {
1852
1852
  <!-- Sound Type -->
1853
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1853
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1854
1854
  <label class="tw-block tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300 tw-mb-2">Sound Type</label>
1855
1855
  <cide-ele-select
1856
1856
  formControlName="soundType"
@@ -1860,7 +1860,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1860
1860
  </div>
1861
1861
 
1862
1862
  <!-- Sound Volume -->
1863
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1863
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1864
1864
  <div class="tw-flex tw-items-center tw-justify-between tw-mb-2">
1865
1865
  <label class="tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300">Volume</label>
1866
1866
  <span class="tw-text-xs tw-text-gray-600 dark:tw-text-gray-400">{{ settingsForm.get('soundVolume')?.value }}%</span>
@@ -1897,7 +1897,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1897
1897
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Quiet Hours</h4>
1898
1898
 
1899
1899
  <!-- Enable Quiet Hours -->
1900
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1900
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1901
1901
  <div class="tw-flex tw-items-center tw-gap-2">
1902
1902
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">schedule</cide-ele-icon>
1903
1903
  <div>
@@ -1916,7 +1916,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1916
1916
  </div>
1917
1917
 
1918
1918
  @if (settingsForm.get('quietHoursEnabled')?.value) {
1919
- <div class="tw-grid tw-grid-cols-2 tw-gap-3 tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1919
+ <div class="tw-grid tw-grid-cols-2 tw-gap-3 tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1920
1920
  <div>
1921
1921
  <label class="tw-block tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300 tw-mb-2">Start Time</label>
1922
1922
  <cide-ele-input
@@ -1942,7 +1942,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1942
1942
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Snooze</h4>
1943
1943
 
1944
1944
  <!-- Enable Snooze -->
1945
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1945
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1946
1946
  <div class="tw-flex tw-items-center tw-gap-2">
1947
1947
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">snooze</cide-ele-icon>
1948
1948
  <div>
@@ -1961,7 +1961,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1961
1961
  </div>
1962
1962
 
1963
1963
  @if (settingsForm.get('snoozeEnabled')?.value) {
1964
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1964
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1965
1965
  <label class="tw-block tw-text-xs tw-font-medium tw-text-gray-700 dark:tw-text-gray-300 tw-mb-2">Snooze Duration (minutes)</label>
1966
1966
  <cide-ele-input
1967
1967
  type="number"
@@ -1979,7 +1979,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
1979
1979
  <h4 class="tw-text-xs tw-font-semibold tw-text-gray-700 dark:tw-text-gray-300 tw-uppercase tw-tracking-wide">Other Settings</h4>
1980
1980
 
1981
1981
  <!-- Desktop Notifications -->
1982
- <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg">
1982
+ <div class="tw-flex tw-items-center tw-justify-between tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700">
1983
1983
  <div class="tw-flex tw-items-center tw-gap-2">
1984
1984
  <cide-ele-icon class="tw-text-gray-600 dark:tw-text-gray-400">desktop_windows</cide-ele-icon>
1985
1985
  <div>
@@ -4701,8 +4701,8 @@ class CideLytSidedrawerWrapperComponent {
4701
4701
  }
4702
4702
  ngOnInit() {
4703
4703
  // Initialize the component map (You'd likely populate this from a config or service)
4704
- this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-ByBbXxXy.mjs').then(m => m.CideLytSidedrawerNotesComponent);
4705
- this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-NUZatXga.mjs').then(m => m.CideLytDrawerThemeComponent);
4704
+ this.componentMap['drowar_notes'] = () => import('./cloud-ide-layout-sidedrawer-notes.component-CIwq4Ei_.mjs').then(m => m.CideLytSidedrawerNotesComponent);
4705
+ this.componentMap['drawer_theme'] = () => import('./cloud-ide-layout-drawer-theme.component-D46FeYqz.mjs').then(m => m.CideLytDrawerThemeComponent);
4706
4706
  }
4707
4707
  async loadComponent(configFor) {
4708
4708
  console.log('🔍 SIDEDRAWER - Loading component:', configFor, 'Current tab:', this.currentTabId);
@@ -4873,6 +4873,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
4873
4873
  class ShortcutsPanelComponent {
4874
4874
  keyboardShortcutService = inject(KeyboardShortcutService);
4875
4875
  sanitizer = inject(DomSanitizer);
4876
+ refreshInterval;
4876
4877
  shortcuts = signal([], ...(ngDevMode ? [{ debugName: "shortcuts" }] : []));
4877
4878
  searchQuery = signal('', ...(ngDevMode ? [{ debugName: "searchQuery" }] : []));
4878
4879
  viewMode = signal('grouped', ...(ngDevMode ? [{ debugName: "viewMode" }] : []));
@@ -4895,6 +4896,16 @@ class ShortcutsPanelComponent {
4895
4896
  }, ...(ngDevMode ? [{ debugName: "categories" }] : []));
4896
4897
  ngOnInit() {
4897
4898
  this.loadShortcuts();
4899
+ // Reload shortcuts periodically to catch dynamically registered shortcuts
4900
+ // This ensures floating container shortcuts and custom shortcuts are shown
4901
+ this.refreshInterval = setInterval(() => {
4902
+ this.loadShortcuts();
4903
+ }, 3000); // Reload every 3 seconds
4904
+ }
4905
+ ngOnDestroy() {
4906
+ if (this.refreshInterval) {
4907
+ clearInterval(this.refreshInterval);
4908
+ }
4898
4909
  }
4899
4910
  /**
4900
4911
  * Load all shortcuts from services
@@ -4922,16 +4933,50 @@ class ShortcutsPanelComponent {
4922
4933
  */
4923
4934
  convertToDisplay(shortcut) {
4924
4935
  const extended = shortcut;
4936
+ // Auto-detect category based on shortcut ID
4937
+ const autoCategory = this.detectCategory(shortcut.id);
4925
4938
  return {
4926
4939
  id: shortcut.id,
4927
- title: extended.title || shortcut.description || shortcut.id,
4940
+ title: extended.title || shortcut.description || this.formatTitleFromId(shortcut.id),
4928
4941
  description: shortcut.description,
4929
4942
  keyCombination: this.formatKeyCombination(shortcut),
4930
- category: extended.category || 'general',
4943
+ category: extended.category || autoCategory,
4931
4944
  isUserDefined: extended.isUserDefined || false,
4932
4945
  featuredHTML: extended.featuredHTML
4933
4946
  };
4934
4947
  }
4948
+ /**
4949
+ * Detect category from shortcut ID
4950
+ */
4951
+ detectCategory(shortcutId) {
4952
+ const id = shortcutId.toLowerCase();
4953
+ if (id.startsWith('floating-container-')) {
4954
+ return 'Floating Containers';
4955
+ }
4956
+ if (id.startsWith('app-') || id.includes('sidebar') || id.includes('theme') || id.includes('settings')) {
4957
+ return 'Application';
4958
+ }
4959
+ if (id.includes('navigation') || id.includes('navigate')) {
4960
+ return 'Navigation';
4961
+ }
4962
+ if (id.includes('edit') || id.includes('save') || id.includes('delete')) {
4963
+ return 'Editing';
4964
+ }
4965
+ if (id.includes('view') || id.includes('toggle') || id.includes('show') || id.includes('hide')) {
4966
+ return 'View';
4967
+ }
4968
+ return 'General';
4969
+ }
4970
+ /**
4971
+ * Format title from shortcut ID
4972
+ */
4973
+ formatTitleFromId(id) {
4974
+ // Convert kebab-case to Title Case
4975
+ return id
4976
+ .split('-')
4977
+ .map(word => word.charAt(0).toUpperCase() + word.slice(1))
4978
+ .join(' ');
4979
+ }
4935
4980
  /**
4936
4981
  * Format key combination string
4937
4982
  */
@@ -4983,8 +5028,18 @@ class ShortcutsPanelComponent {
4983
5028
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.7", ngImport: i0, type: ShortcutsPanelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
4984
5029
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.1.7", type: ShortcutsPanelComponent, isStandalone: true, selector: "cide-lyt-shortcuts-panel", ngImport: i0, template: `
4985
5030
  <div class="tw-p-6 tw-space-y-4 tw-bg-white dark:tw-bg-gray-900">
4986
- <!-- View Toggle -->
4987
- <div class="tw-flex tw-items-center tw-justify-end tw-mb-4">
5031
+ <!-- View Toggle and Refresh -->
5032
+ <div class="tw-flex tw-items-center tw-justify-end tw-gap-2 tw-mb-4">
5033
+ <button
5034
+ type="button"
5035
+ cideEleButton
5036
+ variant="outline"
5037
+ size="sm"
5038
+ (click)="loadShortcuts()"
5039
+ title="Refresh shortcuts">
5040
+ <cide-ele-icon>refresh</cide-ele-icon>
5041
+ Refresh
5042
+ </button>
4988
5043
  <button
4989
5044
  type="button"
4990
5045
  cideEleButton
@@ -5004,7 +5059,7 @@ class ShortcutsPanelComponent {
5004
5059
  [value]="searchQuery()"
5005
5060
  (input)="searchQuery.set($any($event.target).value)"
5006
5061
  placeholder="Search shortcuts..."
5007
- class="tw-w-full tw-pl-8 tw-pr-3 tw-py-2 tw-text-sm tw-border tw-border-gray-300 dark:tw-border-gray-600 tw-rounded-lg tw-bg-white dark:tw-bg-gray-700 tw-text-gray-900 dark:tw-text-gray-100 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-blue-500">
5062
+ class="tw-w-full tw-pl-8 tw-pr-3 tw-py-2 tw-text-sm tw-border tw-border-gray-300 dark:tw-border-gray-600 tw-rounded-lg tw-bg-white dark:tw-bg-gray-800 tw-text-gray-900 dark:tw-text-gray-100 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-blue-500">
5008
5063
  </div>
5009
5064
 
5010
5065
  <!-- Shortcuts Content -->
@@ -5023,9 +5078,9 @@ class ShortcutsPanelComponent {
5023
5078
  </h4>
5024
5079
  <div class="tw-space-y-2">
5025
5080
  @for (shortcut of getShortcutsByCategory(category); track shortcut.id) {
5026
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-600 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5081
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5027
5082
  @if (shortcut.featuredHTML) {
5028
- <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-600">
5083
+ <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-700">
5029
5084
  <div [innerHTML]="sanitizeHTML(shortcut.featuredHTML)"></div>
5030
5085
  </div>
5031
5086
  }
@@ -5063,9 +5118,9 @@ class ShortcutsPanelComponent {
5063
5118
  <!-- List View -->
5064
5119
  <div class="tw-space-y-2">
5065
5120
  @for (shortcut of filteredShortcuts(); track shortcut.id) {
5066
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-600 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5121
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5067
5122
  @if (shortcut.featuredHTML) {
5068
- <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-600">
5123
+ <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-700">
5069
5124
  <div [innerHTML]="sanitizeHTML(shortcut.featuredHTML)"></div>
5070
5125
  </div>
5071
5126
  }
@@ -5111,8 +5166,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
5111
5166
  type: Component,
5112
5167
  args: [{ selector: 'cide-lyt-shortcuts-panel', standalone: true, imports: [CommonModule, FormsModule, CideIconComponent, CideEleButtonComponent], template: `
5113
5168
  <div class="tw-p-6 tw-space-y-4 tw-bg-white dark:tw-bg-gray-900">
5114
- <!-- View Toggle -->
5115
- <div class="tw-flex tw-items-center tw-justify-end tw-mb-4">
5169
+ <!-- View Toggle and Refresh -->
5170
+ <div class="tw-flex tw-items-center tw-justify-end tw-gap-2 tw-mb-4">
5171
+ <button
5172
+ type="button"
5173
+ cideEleButton
5174
+ variant="outline"
5175
+ size="sm"
5176
+ (click)="loadShortcuts()"
5177
+ title="Refresh shortcuts">
5178
+ <cide-ele-icon>refresh</cide-ele-icon>
5179
+ Refresh
5180
+ </button>
5116
5181
  <button
5117
5182
  type="button"
5118
5183
  cideEleButton
@@ -5132,7 +5197,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
5132
5197
  [value]="searchQuery()"
5133
5198
  (input)="searchQuery.set($any($event.target).value)"
5134
5199
  placeholder="Search shortcuts..."
5135
- class="tw-w-full tw-pl-8 tw-pr-3 tw-py-2 tw-text-sm tw-border tw-border-gray-300 dark:tw-border-gray-600 tw-rounded-lg tw-bg-white dark:tw-bg-gray-700 tw-text-gray-900 dark:tw-text-gray-100 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-blue-500">
5200
+ class="tw-w-full tw-pl-8 tw-pr-3 tw-py-2 tw-text-sm tw-border tw-border-gray-300 dark:tw-border-gray-600 tw-rounded-lg tw-bg-white dark:tw-bg-gray-800 tw-text-gray-900 dark:tw-text-gray-100 focus:tw-outline-none focus:tw-ring-2 focus:tw-ring-blue-500">
5136
5201
  </div>
5137
5202
 
5138
5203
  <!-- Shortcuts Content -->
@@ -5151,9 +5216,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
5151
5216
  </h4>
5152
5217
  <div class="tw-space-y-2">
5153
5218
  @for (shortcut of getShortcutsByCategory(category); track shortcut.id) {
5154
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-600 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5219
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5155
5220
  @if (shortcut.featuredHTML) {
5156
- <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-600">
5221
+ <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-700">
5157
5222
  <div [innerHTML]="sanitizeHTML(shortcut.featuredHTML)"></div>
5158
5223
  </div>
5159
5224
  }
@@ -5191,9 +5256,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.7", ngImpor
5191
5256
  <!-- List View -->
5192
5257
  <div class="tw-space-y-2">
5193
5258
  @for (shortcut of filteredShortcuts(); track shortcut.id) {
5194
- <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-700/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-600 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5259
+ <div class="tw-p-3 tw-bg-gray-50 dark:tw-bg-gray-800/50 tw-rounded-lg tw-border tw-border-gray-200 dark:tw-border-gray-700 hover:tw-border-blue-500 dark:hover:tw-border-blue-400 tw-transition-colors">
5195
5260
  @if (shortcut.featuredHTML) {
5196
- <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-600">
5261
+ <div class="tw-mb-2 tw-p-2 tw-bg-white dark:tw-bg-gray-800 tw-rounded tw-border tw-border-gray-200 dark:tw-border-gray-700">
5197
5262
  <div [innerHTML]="sanitizeHTML(shortcut.featuredHTML)"></div>
5198
5263
  </div>
5199
5264
  }
@@ -5869,7 +5934,7 @@ const layoutControlPannelChildRoutes = [{
5869
5934
  },
5870
5935
  {
5871
5936
  path: "home",
5872
- loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-DkZyDgER.mjs').then(c => c.CideLytHomeWrapperComponent),
5937
+ loadComponent: () => import('./cloud-ide-layout-home-wrapper.component-C61ybzgc.mjs').then(c => c.CideLytHomeWrapperComponent),
5873
5938
  canActivate: [authGuard],
5874
5939
  data: {
5875
5940
  reuseTab: true, // For CustomRouteReuseStrategy
@@ -7437,4 +7502,4 @@ var floatingEntityRightsSharing_component = /*#__PURE__*/Object.freeze({
7437
7502
  */
7438
7503
 
7439
7504
  export { AppStateHelperService as A, CideLytSharedWrapperComponent as C, ENVIRONMENT_CONFIG as E, NotificationSettingsService as N, 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 };
7440
- //# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-DLvP5juv.mjs.map
7505
+ //# sourceMappingURL=cloud-ide-layout-cloud-ide-layout-BaeUxU6C.mjs.map