@panphora/bevel 0.1.0 → 0.1.1
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/bevel.css +2 -2
- package/bevel.js +12 -4
- package/dist/react/theme.css +2 -2
- package/integrations/richclay.js +2 -2
- package/package.json +4 -3
package/bevel.css
CHANGED
|
@@ -2295,8 +2295,8 @@
|
|
|
2295
2295
|
color: var(--bevel-ink); position: relative; z-index: 1;
|
|
2296
2296
|
}
|
|
2297
2297
|
.bevel-seg > .bevel-button[aria-pressed="true"] .bevel-button__label { translate: 1px 1px; }
|
|
2298
|
-
.bevel-seg--links { gap: 0; }
|
|
2299
|
-
.bevel-seg--links > .bevel-button { padding: 5px 13px; color: var(--bevel-muted); }
|
|
2298
|
+
.bevel-seg--links { gap: 0; flex-wrap: wrap; max-width: 100%; padding-left: 2px; }
|
|
2299
|
+
.bevel-seg--links > .bevel-button { padding: 5px 13px; margin-left: -2px; color: var(--bevel-muted); }
|
|
2300
2300
|
.bevel-seg--links > .bevel-button:hover { background: var(--bevel-face); color: var(--bevel-ink); }
|
|
2301
2301
|
.bevel-seg--links > .bevel-button[aria-current="page"] {
|
|
2302
2302
|
background: var(--bevel-face-in);
|
package/bevel.js
CHANGED
|
@@ -715,7 +715,15 @@
|
|
|
715
715
|
sessions.set(root, { ...(sessions.get(root) || {}), trigger, openOrder: ++overlaySequence });
|
|
716
716
|
if (trigger) trigger.setAttribute("aria-expanded", "true");
|
|
717
717
|
setExpanded(root, true);
|
|
718
|
-
if (!root.matches(".bevel-combobox__listbox")
|
|
718
|
+
if (!root.matches(".bevel-combobox__listbox") && (source !== "external" || !document.activeElement || document.activeElement === document.body)) {
|
|
719
|
+
let interrupted = false;
|
|
720
|
+
const interrupt = () => { interrupted = true; };
|
|
721
|
+
document.addEventListener("keydown", interrupt, true); document.addEventListener("pointerdown", interrupt, true);
|
|
722
|
+
requestAnimationFrame(() => {
|
|
723
|
+
document.removeEventListener("keydown", interrupt, true); document.removeEventListener("pointerdown", interrupt, true);
|
|
724
|
+
if (!interrupted) (root.querySelector("[autofocus]") || focusable(root))?.focus();
|
|
725
|
+
});
|
|
726
|
+
}
|
|
719
727
|
};
|
|
720
728
|
return transition(root, "open", root.id, false, true, commit, source);
|
|
721
729
|
};
|
|
@@ -1850,13 +1858,13 @@
|
|
|
1850
1858
|
if(target&&target!==card){session.target=target;const rect=target.getBoundingClientRect();session.before=current.clientY<rect.top+rect.height/2;target.dataset.bevelDropTarget=session.before?'before':'after';}
|
|
1851
1859
|
};
|
|
1852
1860
|
const stop=commit=>{
|
|
1853
|
-
if(!sessions.has(card))return;document.removeEventListener('pointermove',move);document.removeEventListener('pointerup',up);document.removeEventListener('pointercancel',cancel);document.removeEventListener('lostpointercapture',cancel);document.removeEventListener('keydown',escape,true);sessions.delete(card);card.removeAttribute('data-bevel-dragging');
|
|
1861
|
+
if(!sessions.has(card))return;document.removeEventListener('pointermove',move);document.removeEventListener('pointerup',up);document.removeEventListener('pointercancel',cancel);document.removeEventListener('lostpointercapture',cancel);document.removeEventListener('keydown',escape,true);document.removeEventListener('dragstart',native,true);sessions.delete(card);card.removeAttribute('data-bevel-dragging');
|
|
1854
1862
|
const {list,target,before}=session;clear();if(!commit||!session.active||!list||!root.isConnected||!card.isConnected||target&&!target.isConnected)return;
|
|
1855
1863
|
const siblings=[...list.children].filter(node=>node.matches('.bevel-kanban__card')&&node!==card),index=target?siblings.indexOf(target)+(before?0:1):siblings.length;
|
|
1856
1864
|
kanbanMove(root,card,list,index);
|
|
1857
1865
|
};
|
|
1858
|
-
const up=current=>{if(current.pointerId===pointerId)stop(true);},cancel=current=>{if(current.pointerId===pointerId)stop(false);},escape=current=>{if(current.key==='Escape'){current.preventDefault();stop(false);}};
|
|
1859
|
-
sessions.set(card,session);document.addEventListener('pointermove',move);document.addEventListener('pointerup',up);document.addEventListener('pointercancel',cancel);document.addEventListener('lostpointercapture',cancel);document.addEventListener('keydown',escape,true);
|
|
1866
|
+
const native=current=>current.preventDefault(),up=current=>{if(current.pointerId===pointerId)stop(true);},cancel=current=>{if(current.pointerId===pointerId)stop(false);},escape=current=>{if(current.key==='Escape'){current.preventDefault();stop(false);}};
|
|
1867
|
+
sessions.set(card,session);document.addEventListener('pointermove',move);document.addEventListener('pointerup',up);document.addEventListener('pointercancel',cancel);document.addEventListener('lostpointercapture',cancel);document.addEventListener('keydown',escape,true);document.addEventListener('dragstart',native,true);
|
|
1860
1868
|
});
|
|
1861
1869
|
|
|
1862
1870
|
const cancelGridEdit = (cell, focus = true) => { const session=sessions.get(cell); if(!session)return; session.editor.remove(); cell.removeAttribute("data-bevel-editing"); cell.removeAttribute("data-bevel-invalid"); sessions.delete(cell); const error=cell.querySelector(".bevel-grid__cell-error");if(error)error.hidden=true;if (focus && session.button?.isConnected) session.button.focus(); };
|
package/dist/react/theme.css
CHANGED
|
@@ -5732,11 +5732,11 @@ ol.bevel-r-list--small:where([data-bevel-appearance="bevel"]) > li::before { fon
|
|
|
5732
5732
|
|
|
5733
5733
|
|
|
5734
5734
|
|
|
5735
|
-
.bevel-r-seg--links:where([data-bevel-appearance="bevel"]) { gap: 0; }
|
|
5735
|
+
.bevel-r-seg--links:where([data-bevel-appearance="bevel"]) { gap: 0; flex-wrap: wrap; max-width: 100%; padding-left: 2px; }
|
|
5736
5736
|
|
|
5737
5737
|
|
|
5738
5738
|
|
|
5739
|
-
.bevel-r-seg--links > .bevel-r-button:where([data-bevel-appearance="bevel"]) { padding: 5px 13px; color: var(--bevel-muted); }
|
|
5739
|
+
.bevel-r-seg--links > .bevel-r-button:where([data-bevel-appearance="bevel"]) { padding: 5px 13px; margin-left: -2px; color: var(--bevel-muted); }
|
|
5740
5740
|
|
|
5741
5741
|
|
|
5742
5742
|
|
package/integrations/richclay.js
CHANGED
|
@@ -41,12 +41,12 @@
|
|
|
41
41
|
}
|
|
42
42
|
if (id === "blockMenu") {
|
|
43
43
|
const option = item.def.options.find(option => option.isActive?.(record.editor));
|
|
44
|
-
const
|
|
44
|
+
const optionIcons = [icons.paragraph, icons.h1, icons.h2, icons.h3, icons.quote, icons.code];
|
|
45
|
+
const markup = (optionIcons[item.def.options.indexOf(option)] || icons.blockMenu) + menuCaret;
|
|
45
46
|
if (face.dataset.blockValue !== (option?.value || "P")) {
|
|
46
47
|
face.innerHTML = markup;
|
|
47
48
|
face.dataset.blockValue = option?.value || "P";
|
|
48
49
|
}
|
|
49
|
-
const optionIcons = [icons.paragraph, icons.h1, icons.h2, icons.h3, icons.quote, icons.code];
|
|
50
50
|
for (const [index, markup] of optionIcons.entries()) {
|
|
51
51
|
const button = item.menu?.querySelector(`[data-richclay-option-index="${index}"]`);
|
|
52
52
|
if (!button || button.hasAttribute("data-bevel-richclay-icon")) continue;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panphora/bevel",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.1",
|
|
4
4
|
"description": "Beveled controls in an editorial page. One stylesheet, one script, no build.",
|
|
5
5
|
"license": "MIT-0",
|
|
6
6
|
"author": "David Miranda",
|
|
@@ -458,7 +458,7 @@
|
|
|
458
458
|
"correction:c1": "node tests/correction-c1.mjs",
|
|
459
459
|
"correction:c2": "node tests/correction-c2.mjs",
|
|
460
460
|
"correction:c2:overlays": "node tests/correction-c2-modal-drawer.mjs",
|
|
461
|
-
"test": "npm run test:build && npm run test:showcase && npm run check && npm run contrast && npm run roundtrip && npm run functional && npm run datastar && npm run correction:c1 && npm run datastar:native && npm run clay:snapshot && npm run datastar:pickers && npm run correction:c2:overlays && npm run correction:c2:pickers && npm run correction:c2:forms && npm run correction:c2:wizard && npm run datastar:lifecycle && npm run datastar:reload && npm run richclay:integration && npm run inline-edit:integration && npm run quickcrop:integration && npm run packaged:peers && npm run upload:integration && npm run correction:c3:navigation && npm run correction:app-shell && npm run file-tree && npm run correction:c3:code-diff && npm run correction:c3:feedback && npm run correction:c3:split && npm run correction:c3:navigation-controls && npm run correction:c3:display && npm run correction:c3:rich-toolbar && npm run correction:c3:grid && npm run correction:c3:kanban && npm run context:hypercms && npm run context:quickcrop && npm run datastar:active && npm run datastar:board && npm run datastar:upload && npm run datastar:grid && npm run datastar:state-reload && npm run acceptance:layout && npm run final-review:regressions",
|
|
461
|
+
"test": "node scripts/test-guard.mjs && npm run test:build && npm run test:showcase && npm run check && npm run contrast && npm run roundtrip && npm run functional && npm run datastar && npm run correction:c1 && npm run datastar:native && npm run clay:snapshot && npm run datastar:pickers && npm run correction:c2:overlays && npm run correction:c2:pickers && npm run correction:c2:forms && npm run correction:c2:wizard && npm run datastar:lifecycle && npm run datastar:reload && npm run richclay:integration && npm run inline-edit:integration && npm run quickcrop:integration && npm run packaged:peers && npm run upload:integration && npm run correction:c3:navigation && npm run correction:app-shell && npm run file-tree && npm run correction:c3:code-diff && npm run correction:c3:feedback && npm run correction:c3:split && npm run correction:c3:navigation-controls && npm run correction:c3:display && npm run correction:c3:rich-toolbar && npm run correction:c3:grid && npm run correction:c3:kanban && npm run context:hypercms && npm run context:quickcrop && npm run datastar:active && npm run datastar:board && npm run datastar:upload && npm run datastar:grid && npm run datastar:state-reload && npm run acceptance:layout && npm run final-review:regressions",
|
|
462
462
|
"dev": "node scripts/dev.mjs",
|
|
463
463
|
"datastar:native": "node tests/datastar-native.mjs",
|
|
464
464
|
"correction:c2:pickers": "node tests/correction-c2-pickers.mjs",
|
|
@@ -517,7 +517,8 @@
|
|
|
517
517
|
"file-tree:bench": "node tests/react/file-tree-bench.mjs",
|
|
518
518
|
"vendor:richclay": "node scripts/vendor-richclay-fixture.mjs ../richclay",
|
|
519
519
|
"vendor:quickcrop": "node scripts/vendor-quickcrop-fixture.mjs ../quickcrop",
|
|
520
|
-
"vendor:hypercms": "node scripts/vendor-hypercms-fixture.mjs ../hypercms ../clayjs"
|
|
520
|
+
"vendor:hypercms": "node scripts/vendor-hypercms-fixture.mjs ../hypercms ../clayjs",
|
|
521
|
+
"prepublishOnly": "testbox run"
|
|
521
522
|
},
|
|
522
523
|
"devDependencies": {
|
|
523
524
|
"@floating-ui/core": "1.8.0",
|