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.
- package/.verify-bundle.css +265 -7
- package/.verify-bundle.js +2 -2
- package/AnteriorityUI.md +4 -0
- package/package.json +1 -1
- package/screens/components/Breadcrumbs/index.module.css +2 -1
- package/screens/components/Sidebar/constants.js +2 -1
- package/screens/components/Sidebar/index.js +271 -237
- package/screens/components/Sidebar/index.module.css +92 -0
- package/screens/components/TopBar/components/MobileActionsPanel/index.js +34 -0
- package/screens/components/TopBar/components/MobileActionsPanel/index.module.css +64 -0
- package/screens/components/TopBar/constants.js +10 -0
- package/screens/components/TopBar/index.js +90 -3
- package/screens/components/TopBar/index.module.css +152 -9
package/.verify-bundle.css
CHANGED
|
@@ -741,8 +741,9 @@
|
|
|
741
741
|
margin: 0;
|
|
742
742
|
padding: 0;
|
|
743
743
|
gap: 4px;
|
|
744
|
-
flex-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:
|
|
6190
|
+
max-width: 38vw;
|
|
6076
6191
|
}
|
|
6077
6192
|
.TopBar_title {
|
|
6078
|
-
max-width:
|
|
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:
|
|
6285
|
+
max-width: 30vw;
|
|
6090
6286
|
}
|
|
6091
6287
|
.TopBar_actionsDivider {
|
|
6092
|
-
margin: 0
|
|
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:
|
|
4
|
-
sha256:
|
|
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