noteloom 0.1.4 → 0.1.5

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/dist/style.css CHANGED
@@ -1117,6 +1117,20 @@ tr.be-table-row:hover .be-table-delete-row {
1117
1117
  transition: background-color 0.12s ease, color 0.12s ease;
1118
1118
  }
1119
1119
 
1120
+ /* Touch: no hover state exists to reveal the gutter at all, and its
1121
+ desktop position (left: -56px, sitting in the page's own side margin)
1122
+ would be off-screen on a narrow phone/tablet viewport regardless — so
1123
+ rather than force it into the row itself, its two actions (Add block,
1124
+ block options menu) live inside MobileActionBar instead (see
1125
+ MobileActionBar.jsx), pinned above the keyboard where they're always
1126
+ reachable. `.be-touch-input` is set by useCoarsePointer.js, based on
1127
+ real pointerdown activity, not just a static device-capability guess —
1128
+ see that file for why a plain `pointer: coarse` media query alone isn't
1129
+ enough (touchscreen laptops, etc.). */
1130
+ .be-touch-input .be-block-gutter {
1131
+ display: none;
1132
+ }
1133
+
1120
1134
  .be-block-gutter-btn:hover,
1121
1135
  .be-block-gutter-btn[aria-expanded='true'] {
1122
1136
  background: var(--noteloom-bg-hover);
@@ -1294,6 +1308,132 @@ tr.be-table-row:hover .be-table-delete-row {
1294
1308
  max-width: 640px;
1295
1309
  }
1296
1310
 
1311
+ /* Bottom sheet variant (mobile block picker) — anchored to the bottom edge
1312
+ instead of centered, rounded only on top, full page width. */
1313
+ .be-modal-overlay-sheet {
1314
+ align-items: flex-end;
1315
+ padding: 0;
1316
+ }
1317
+
1318
+ .be-modal-sheet {
1319
+ max-width: 100%;
1320
+ width: 100%;
1321
+ max-height: 70vh;
1322
+ border-radius: var(--noteloom-radius-xl) var(--noteloom-radius-xl) 0 0;
1323
+ border-bottom: none;
1324
+ padding-bottom: max(1.4em, env(safe-area-inset-bottom));
1325
+ }
1326
+
1327
+ .be-mobile-picker-list {
1328
+ display: flex;
1329
+ flex-direction: column;
1330
+ gap: 2px;
1331
+ }
1332
+
1333
+ .be-mobile-picker-item {
1334
+ display: flex;
1335
+ align-items: center;
1336
+ gap: 10px;
1337
+ width: 100%;
1338
+ border: none;
1339
+ background: transparent;
1340
+ border-radius: var(--noteloom-radius-md);
1341
+ padding: 12px 10px;
1342
+ font: inherit;
1343
+ font-size: 0.95rem;
1344
+ color: var(--noteloom-text);
1345
+ text-align: left;
1346
+ cursor: pointer;
1347
+ }
1348
+
1349
+ .be-mobile-picker-item:hover,
1350
+ .be-mobile-picker-item:active {
1351
+ background: var(--noteloom-bg-hover);
1352
+ }
1353
+
1354
+ .be-mobile-picker-item-danger {
1355
+ color: var(--noteloom-danger);
1356
+ }
1357
+
1358
+ .be-mobile-picker-item-danger:hover,
1359
+ .be-mobile-picker-item-danger:active {
1360
+ background: var(--noteloom-danger-soft);
1361
+ }
1362
+
1363
+ .be-mobile-picker-item-danger .be-mobile-picker-item-icon {
1364
+ color: var(--noteloom-danger);
1365
+ }
1366
+
1367
+ /* --- mobile action bar (pinned above the on-screen keyboard) --- */
1368
+
1369
+ .be-mobile-action-bar {
1370
+ position: fixed;
1371
+ left: 0;
1372
+ right: 0;
1373
+ z-index: 1500;
1374
+ display: flex;
1375
+ align-items: center;
1376
+ gap: 2px;
1377
+ padding: 6px calc(6px + env(safe-area-inset-right)) 6px calc(6px + env(safe-area-inset-left));
1378
+ background: var(--noteloom-bg);
1379
+ border-top: 1px solid var(--noteloom-border);
1380
+ overflow-x: auto;
1381
+ }
1382
+
1383
+ .be-mobile-bar-btn {
1384
+ flex: none;
1385
+ display: flex;
1386
+ align-items: center;
1387
+ justify-content: center;
1388
+ gap: 4px;
1389
+ min-width: 40px;
1390
+ height: 40px;
1391
+ padding: 0 10px;
1392
+ border: none;
1393
+ background: transparent;
1394
+ border-radius: var(--noteloom-radius-sm);
1395
+ color: var(--noteloom-text);
1396
+ font-size: 0.85rem;
1397
+ font-weight: 500;
1398
+ cursor: pointer;
1399
+ }
1400
+
1401
+ .be-mobile-bar-btn:disabled {
1402
+ opacity: 0.4;
1403
+ }
1404
+
1405
+ .be-mobile-bar-btn-active {
1406
+ background: var(--noteloom-accent-soft);
1407
+ color: var(--noteloom-accent);
1408
+ }
1409
+
1410
+ .be-mobile-bar-spacer {
1411
+ flex: 1;
1412
+ }
1413
+
1414
+ .be-mobile-bar-select {
1415
+ flex: none;
1416
+ }
1417
+
1418
+ .be-mobile-bar-swatches {
1419
+ display: flex;
1420
+ align-items: center;
1421
+ gap: 6px;
1422
+ padding: 0 6px;
1423
+ }
1424
+
1425
+ .be-mobile-picker-item-icon {
1426
+ flex: none;
1427
+ display: flex;
1428
+ align-items: center;
1429
+ justify-content: center;
1430
+ width: 32px;
1431
+ height: 32px;
1432
+ border-radius: var(--noteloom-radius-sm);
1433
+ background: var(--noteloom-bg-subtle);
1434
+ color: var(--noteloom-text-muted);
1435
+ }
1436
+
1297
1437
  .be-modal-title {
1298
1438
  font-weight: 600;
1299
1439
  font-size: 1.05rem;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noteloom",
3
- "version": "0.1.4",
3
+ "version": "0.1.5",
4
4
  "description": "Zero-runtime-dependency, React-first block/rich-text editor — Notion-style blocks, inline widgets, slash commands, undo/redo, and clipboard, with an optional default theme (noteloom/style.css).",
5
5
  "keywords": [
6
6
  "react",