anteriority-ui 1.8.0 → 1.9.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.
@@ -741,8 +741,9 @@
741
741
  margin: 0;
742
742
  padding: 0;
743
743
  gap: 4px;
744
- flex-wrap: wrap;
744
+ flex-wrap: nowrap;
745
745
  min-width: 0;
746
+ overflow: hidden;
746
747
  }
747
748
  .Breadcrumbs_item {
748
749
  display: flex;
@@ -4760,6 +4761,79 @@
4760
4761
  min-width: 68px;
4761
4762
  padding: 20px 8px;
4762
4763
  }
4764
+ .Sidebar_sidebarWrapper {
4765
+ display: flex;
4766
+ height: 100%;
4767
+ }
4768
+ .Sidebar_mobileCloseBtn {
4769
+ display: none;
4770
+ }
4771
+ .Sidebar_mobileBackdrop {
4772
+ display: none;
4773
+ }
4774
+ @media (max-width: 767px) {
4775
+ .Sidebar_sidebarWrapper {
4776
+ position: fixed;
4777
+ top: 0;
4778
+ left: 0;
4779
+ bottom: 0;
4780
+ z-index: 1300;
4781
+ transform: translateX(-100%);
4782
+ transition: transform 0.25s ease;
4783
+ }
4784
+ .Sidebar_sidebarWrapper.Sidebar_mobileOpen {
4785
+ transform: translateX(0);
4786
+ }
4787
+ .Sidebar_sidebarWrapper .Sidebar_sidebar {
4788
+ height: 100%;
4789
+ max-height: 100%;
4790
+ width: 280px;
4791
+ min-width: 280px;
4792
+ max-width: 85vw;
4793
+ box-shadow: 2px 0 16px rgba(0, 0, 0, 0.18);
4794
+ }
4795
+ .Sidebar_sidebarWrapper .Sidebar_sidebar.Sidebar_collapsed {
4796
+ width: 280px;
4797
+ min-width: 280px;
4798
+ padding: 24px 16px;
4799
+ }
4800
+ .Sidebar_mobileCloseBtn {
4801
+ display: inline-flex;
4802
+ position: absolute;
4803
+ top: 16px;
4804
+ right: 16px;
4805
+ width: 28px;
4806
+ height: 28px;
4807
+ align-items: center;
4808
+ justify-content: center;
4809
+ border-radius: 50%;
4810
+ border: 1px solid #cbd5e1;
4811
+ background-color: #ffffff;
4812
+ color: #475569;
4813
+ box-shadow: 0 2px 4px rgba(0, 0, 0, 0.08);
4814
+ cursor: pointer;
4815
+ z-index: 5;
4816
+ transition: background-color 0.2s, color 0.2s;
4817
+ }
4818
+ .Sidebar_mobileCloseBtn:hover {
4819
+ background-color: var(--sidebar-avatar-bg, #0d52f8);
4820
+ color: #ffffff;
4821
+ border-color: var(--sidebar-avatar-bg, #0d52f8);
4822
+ }
4823
+ .Sidebar_mobileBackdrop {
4824
+ display: block;
4825
+ position: fixed;
4826
+ inset: 0;
4827
+ background: rgba(15, 23, 42, 0.45);
4828
+ z-index: 1299;
4829
+ }
4830
+ .Sidebar_sidebarWrapper .Sidebar_sidebarHeader {
4831
+ padding-right: 36px;
4832
+ }
4833
+ .Sidebar_sidebarWrapper .Sidebar_toggleBtn {
4834
+ display: none;
4835
+ }
4836
+ }
4763
4837
  .Sidebar_sidebar.Sidebar_collapsed .Sidebar_sidebarHeader {
4764
4838
  justify-content: center;
4765
4839
  padding: 0;
@@ -5766,7 +5840,7 @@
5766
5840
  display: flex;
5767
5841
  align-items: center;
5768
5842
  gap: 12px;
5769
- flex: 1;
5843
+ flex: 1 1 auto;
5770
5844
  min-width: 0;
5771
5845
  }
5772
5846
  .TopBar_logoButton {
@@ -5780,6 +5854,36 @@
5780
5854
  color: inherit;
5781
5855
  flex-shrink: 0;
5782
5856
  }
5857
+ .TopBar_mobileMenuButton {
5858
+ display: none;
5859
+ }
5860
+ @media (max-width: 767px) {
5861
+ .TopBar_mobileMenuButton {
5862
+ display: inline-flex;
5863
+ align-items: center;
5864
+ justify-content: center;
5865
+ flex-shrink: 0;
5866
+ width: 34px;
5867
+ height: 34px;
5868
+ padding: 0;
5869
+ border-radius: 6px;
5870
+ border: 1px solid var(--topbar-action-border, #e2e8f0);
5871
+ background-color: var(--topbar-action-bg, #f1f5f9);
5872
+ color: var(--topbar-icon, #475569);
5873
+ cursor: pointer;
5874
+ transition:
5875
+ background-color 0.15s ease,
5876
+ color 0.15s ease,
5877
+ border-color 0.15s ease;
5878
+ }
5879
+ .TopBar_mobileMenuButton:hover {
5880
+ background-color: var(--topbar-action-hover-bg, var(--topbar-hover-bg, #e2e8f0));
5881
+ color: var(--topbar-text, #0f172a);
5882
+ }
5883
+ .TopBar_mobileMenuButton:disabled {
5884
+ cursor: default;
5885
+ }
5886
+ }
5783
5887
  .TopBar_logoButton:disabled {
5784
5888
  cursor: default;
5785
5889
  }
@@ -5864,6 +5968,7 @@ button.TopBar_searchWrapper {
5864
5968
  }
5865
5969
  .TopBar_ctaButton {
5866
5970
  flex-shrink: 0;
5971
+ white-space: nowrap;
5867
5972
  }
5868
5973
  .TopBar_searchIcon {
5869
5974
  position: absolute;
@@ -5914,12 +6019,13 @@ button.TopBar_searchWrapper {
5914
6019
  align-items: center;
5915
6020
  justify-content: flex-end;
5916
6021
  gap: 4px;
5917
- flex: 1;
6022
+ flex: 0 1 auto;
5918
6023
  min-width: 0;
5919
6024
  }
5920
6025
  .TopBar_actionBtnWrapper {
5921
6026
  position: relative;
5922
6027
  display: inline-flex;
6028
+ flex-shrink: 0;
5923
6029
  }
5924
6030
  .TopBar_actionBtn {
5925
6031
  border-radius: 6px !important;
@@ -5990,6 +6096,7 @@ button.TopBar_searchWrapper {
5990
6096
  .TopBar_userSection {
5991
6097
  position: relative;
5992
6098
  margin-left: 4px;
6099
+ flex-shrink: 0;
5993
6100
  }
5994
6101
  .TopBar_userButton {
5995
6102
  display: inline-flex;
@@ -6053,6 +6160,10 @@ button.TopBar_searchWrapper {
6053
6160
  .TopBar_userMenuItemDanger:hover {
6054
6161
  background-color: #fef2f2;
6055
6162
  }
6163
+ .TopBar_mobileSearchButton,
6164
+ .TopBar_mobileActionsButton {
6165
+ display: none;
6166
+ }
6056
6167
  @media (max-width: 1023px) {
6057
6168
  .TopBar_topbar {
6058
6169
  gap: 12px;
@@ -6066,18 +6177,103 @@ button.TopBar_searchWrapper {
6066
6177
  .TopBar_topbar {
6067
6178
  gap: 8px;
6068
6179
  padding: 10px 12px;
6180
+ flex-wrap: wrap;
6069
6181
  }
6070
6182
  .TopBar_centerSection {
6071
6183
  display: none;
6072
6184
  }
6185
+ .TopBar_leftSection {
6186
+ min-width: 0;
6187
+ }
6073
6188
  .TopBar_breadcrumbs,
6074
6189
  .TopBar_skeletonBreadcrumbs {
6075
- max-width: 50vw;
6190
+ max-width: 38vw;
6076
6191
  }
6077
6192
  .TopBar_title {
6078
- max-width: 50vw;
6193
+ max-width: 38vw;
6194
+ }
6195
+ .TopBar_rightSection {
6196
+ gap: 2px;
6197
+ }
6198
+ .TopBar_ctaButton {
6199
+ padding-left: 10px !important;
6200
+ padding-right: 10px !important;
6201
+ }
6202
+ .TopBar_actionBtnWrapper,
6203
+ .TopBar_actionsDivider {
6204
+ display: none;
6205
+ }
6206
+ .TopBar_mobileSearchButton,
6207
+ .TopBar_mobileActionsButton {
6208
+ display: inline-flex;
6209
+ align-items: center;
6210
+ justify-content: center;
6211
+ flex-shrink: 0;
6212
+ width: 34px;
6213
+ height: 34px;
6214
+ padding: 0;
6215
+ border-radius: 6px;
6216
+ border: 1px solid var(--topbar-action-border, #e2e8f0);
6217
+ background-color: var(--topbar-action-bg, #f1f5f9);
6218
+ color: var(--topbar-icon, #475569);
6219
+ cursor: pointer;
6220
+ transition:
6221
+ background-color 0.15s ease,
6222
+ color 0.15s ease,
6223
+ border-color 0.15s ease;
6224
+ }
6225
+ .TopBar_mobileSearchButton:hover,
6226
+ .TopBar_mobileActionsButton:hover {
6227
+ background-color: var(--topbar-action-hover-bg, var(--topbar-hover-bg, #e2e8f0));
6228
+ color: var(--topbar-text, #0f172a);
6229
+ }
6230
+ .TopBar_mobileActionsButtonWrapper {
6231
+ position: relative;
6232
+ display: inline-flex;
6079
6233
  }
6080
6234
  }
6235
+ .TopBar_mobileSearchOverlay {
6236
+ position: fixed;
6237
+ inset: 0;
6238
+ z-index: 2100;
6239
+ background-color: var(--topbar-bg, #ffffff);
6240
+ display: flex;
6241
+ align-items: center;
6242
+ gap: 8px;
6243
+ padding: 10px 12px;
6244
+ box-sizing: border-box;
6245
+ }
6246
+ .TopBar_mobileSearchOverlayInput {
6247
+ flex: 1;
6248
+ min-width: 0;
6249
+ height: 40px;
6250
+ padding: 0 12px;
6251
+ border-radius: 8px;
6252
+ border: 1px solid var(--topbar-border, #e2e8f0);
6253
+ background-color: var(--topbar-search-bg, #f8fafc);
6254
+ color: var(--topbar-text, #0f172a);
6255
+ font-size: 0.9rem;
6256
+ font-family: inherit;
6257
+ outline: none;
6258
+ box-sizing: border-box;
6259
+ }
6260
+ .TopBar_mobileSearchOverlayInput:focus {
6261
+ border-color: var(--topbar-accent, #0ea5e9);
6262
+ }
6263
+ .TopBar_mobileSearchOverlayClose {
6264
+ flex-shrink: 0;
6265
+ display: inline-flex;
6266
+ align-items: center;
6267
+ justify-content: center;
6268
+ width: 40px;
6269
+ height: 40px;
6270
+ padding: 0;
6271
+ border-radius: 8px;
6272
+ border: 1px solid var(--topbar-border, #e2e8f0);
6273
+ background: transparent;
6274
+ color: var(--topbar-text, #0f172a);
6275
+ cursor: pointer;
6276
+ }
6081
6277
  @media (max-width: 479px) {
6082
6278
  .TopBar_topbar {
6083
6279
  gap: 6px;
@@ -6086,10 +6282,13 @@ button.TopBar_searchWrapper {
6086
6282
  .TopBar_breadcrumbs,
6087
6283
  .TopBar_skeletonBreadcrumbs,
6088
6284
  .TopBar_title {
6089
- max-width: 38vw;
6285
+ max-width: 30vw;
6090
6286
  }
6091
6287
  .TopBar_actionsDivider {
6092
- margin: 0 4px;
6288
+ margin: 0 2px;
6289
+ }
6290
+ .TopBar_actionBtn {
6291
+ padding: 6px !important;
6093
6292
  }
6094
6293
  }
6095
6294
 
@@ -6117,6 +6316,65 @@ button.TopBar_searchWrapper {
6117
6316
  }
6118
6317
  }
6119
6318
 
6319
+ /* dist/screens/components/TopBar/components/MobileActionsPanel/index.module.css */
6320
+ .MobileActionsPanel_list {
6321
+ display: flex;
6322
+ flex-direction: column;
6323
+ gap: 4px;
6324
+ }
6325
+ .MobileActionsPanel_item {
6326
+ display: flex;
6327
+ align-items: center;
6328
+ gap: 12px;
6329
+ width: 100%;
6330
+ padding: 10px 12px;
6331
+ border: none;
6332
+ border-radius: 8px;
6333
+ background: transparent;
6334
+ color: #0f172a;
6335
+ font-family: inherit;
6336
+ font-size: 0.9rem;
6337
+ font-weight: 500;
6338
+ text-align: left;
6339
+ cursor: pointer;
6340
+ transition: background-color 0.15s ease;
6341
+ }
6342
+ .MobileActionsPanel_item:hover {
6343
+ background-color: #f1f5f9;
6344
+ }
6345
+ .MobileActionsPanel_item:disabled {
6346
+ opacity: 0.5;
6347
+ cursor: default;
6348
+ }
6349
+ .MobileActionsPanel_item:disabled:hover {
6350
+ background-color: transparent;
6351
+ }
6352
+ .MobileActionsPanel_itemIcon {
6353
+ flex-shrink: 0;
6354
+ color: #475569;
6355
+ }
6356
+ .MobileActionsPanel_itemLabel {
6357
+ flex: 1;
6358
+ min-width: 0;
6359
+ overflow: hidden;
6360
+ text-overflow: ellipsis;
6361
+ white-space: nowrap;
6362
+ }
6363
+ .MobileActionsPanel_itemBadge {
6364
+ flex-shrink: 0;
6365
+ display: inline-flex;
6366
+ align-items: center;
6367
+ justify-content: center;
6368
+ min-width: 18px;
6369
+ height: 18px;
6370
+ padding: 0 5px;
6371
+ border-radius: 999px;
6372
+ background-color: #ef4444;
6373
+ color: #ffffff;
6374
+ font-size: 0.7rem;
6375
+ font-weight: 700;
6376
+ }
6377
+
6120
6378
  /* dist/screens/components/UserEditPopover/index.module.css */
6121
6379
  .UserEditPopover_popoverPaper {
6122
6380
  padding: 16px;
package/.verify-bundle.js CHANGED
@@ -1,4 +1,4 @@
1
1
  [diffend] Oversized file quarantined before diffing.
2
2
  name: package/.verify-bundle.js
3
- size: 53948362 bytes
4
- sha256: 17a35cbb6ec5561afc8b588687b284f34b9adb6826713d2aa9aedac76c2b9515
3
+ size: 53957731 bytes
4
+ sha256: 6af1d4bc31a21cecb25245c9bffe0a07a9c1e3d12889ff76316da6731efc2921
package/AnteriorityUI.md CHANGED
@@ -2902,6 +2902,8 @@ import Sidebar from 'screens/components/Sidebar/index';
2902
2902
 
2903
2903
  **Notas:** Persiste el estado colapsado en `localStorage` bajo la clave `sidebar_collapsed`. Los subitems no soportan drag & drop (`onReorderItems`), menú contextual (`onItemEdit`/`onItemDelete`/`onItemPin`/`onItemCollaborators`) ni colapsado individual persistido — solo navegación simple vía `onSelect`. Cuando el sidebar está colapsado (`isCollapsed`), los grupos con `subItems` se muestran colapsados y sin chevron (igual que cualquier item simple, con tooltip); hay que expandir el sidebar para ver/navegar los subitems. `onSearch`/`filterMenuGroups` matchea por `label` del item padre o de cualquiera de sus `subItems`, pero si matchea, se muestra el item completo con **todos** sus subitems (no solo el que matcheó).
2904
2904
 
2905
+ **Responsive (mobile):** por debajo de 767px de viewport, el sidebar se comporta como un drawer: queda oculto fuera de pantalla y aparece un botón flotante con ícono de hamburguesa (esquina superior izquierda) para abrirlo. Al abrirse, se desliza como overlay a ancho completo (280px, hasta 85vw) sobre un backdrop oscuro; se cierra al tocar el backdrop, al presionar Escape, al tocar la X del propio drawer, o automáticamente al seleccionar un item (`onSelect`). El botón de colapsar (`collapsible`) se oculta en este modo, ya que no aplica a un drawer full-width. No requiere ninguna prop nueva — la detección de mobile es automática vía `matchMedia`.
2906
+
2905
2907
  ---
2906
2908
 
2907
2909
  ### Skeleton
@@ -3530,6 +3532,8 @@ import TopBar from '../TopBar/index'; // export default
3530
3532
 
3531
3533
  **Notas:** El menú de usuario se renderiza vía `createPortal` a `document.body` (mismo patrón que el menú de usuario de `Sidebar`), posicionado contra el botón del avatar. `actions` son completamente genéricas — no asume ningún set fijo de íconos (notificaciones, mensajes, ayuda, etc. quedan a elección del consumidor). El atajo de teclado Ctrl/Cmd+K para abrir el `CommandPalette` (`useCommandPaletteShortcut` en `utils.js`) usa el hook genérico `useKeyboardShortcut` (`common/hooks/useKeyboardShortcut.js`), reutilizable para registrar cualquier otro atajo global (`{ key, ctrlOrMeta, shift, alt, enabled, onTrigger }`) sin reimplementar el listener de teclado a mano en cada componente nuevo.
3532
3534
 
3535
+ **Responsive:** `leftSection` (logo + breadcrumb/título) se encoge primero y trunca con ellipsis; `rightSection` (acciones + divisor + avatar + `ctaButton`) nunca se encoge, para que los botones nunca queden apretados ni se superpongan entre sí. Por debajo de 1023px el buscador central se angosta, por debajo de 767px se oculta por completo (el consumidor puede ofrecer una lupa en `actions` para ese breakpoint) y el header pasa a `flex-wrap` como red de seguridad si aun así no entra todo en una fila; por debajo de 479px se reducen aún más los paddings de los botones de acción y el ancho máximo de breadcrumb/título.
3536
+
3533
3537
  ---
3534
3538
 
3535
3539
  ### UserEditPopover
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "anteriority-ui",
3
- "version": "1.8.0",
3
+ "version": "1.9.0",
4
4
  "description": "Librería interna de componentes React (UI) construida sobre MUI, lucide-react y CSS Modules.",
5
5
  "main": "index.js",
6
6
  "license": "ISC",
@@ -11,8 +11,9 @@
11
11
  margin: 0;
12
12
  padding: 0;
13
13
  gap: 4px;
14
- flex-wrap: wrap;
14
+ flex-wrap: nowrap;
15
15
  min-width: 0;
16
+ overflow: hidden;
16
17
  }
17
18
 
18
19
  .item {
@@ -12,7 +12,8 @@ const TEXTS = {
12
12
  leaveItem: "Salir",
13
13
  pinItem: "Fijar",
14
14
  unpinItem: "Desfijar",
15
- collaboratorsItem: "Colaboradores"
15
+ collaboratorsItem: "Colaboradores",
16
+ closeMobileMenu: "Cerrar men\xFA"
16
17
  };
17
18
  export {
18
19
  TEXTS