noteloom 0.1.5 → 0.1.6

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
@@ -155,6 +155,13 @@
155
155
  outline: none;
156
156
  }
157
157
 
158
+ .be-blockquote[dir='rtl'] {
159
+ padding-left: 0;
160
+ padding-right: 0.9em;
161
+ border-left: none;
162
+ border-right: 3px solid var(--noteloom-border);
163
+ }
164
+
158
165
  /* --- callout --- */
159
166
 
160
167
  .be-callout {
@@ -640,6 +647,12 @@
640
647
  color: #fff;
641
648
  }
642
649
 
650
+ .be-embed-alt-text-btn {
651
+ width: auto;
652
+ padding: 0 8px;
653
+ font-size: 0.75rem;
654
+ }
655
+
643
656
  .be-embed-remove {
644
657
  border: none;
645
658
  background: transparent;
@@ -1098,6 +1111,15 @@ tr.be-table-row:hover .be-table-delete-row {
1098
1111
  user-select: none; /* it's a drag handle (see useBlockRangeDrag) — never let its own space become selectable text */
1099
1112
  }
1100
1113
 
1114
+ /* `left`/`right` are physical, not logical, properties — unlike the list
1115
+ marker's flexbox position (which flips for free via dir inheritance),
1116
+ this absolute offset needs an explicit RTL override to sit on the
1117
+ correct side of the block. */
1118
+ [dir='rtl'] .be-block-gutter {
1119
+ left: auto;
1120
+ right: -56px;
1121
+ }
1122
+
1101
1123
  .be-block-row:hover .be-block-gutter,
1102
1124
  .be-block-gutter-active {
1103
1125
  opacity: 1;
@@ -2035,3 +2057,149 @@ tr.be-table-row:hover .be-table-delete-row {
2035
2057
  background: var(--noteloom-bg-hover);
2036
2058
  color: var(--noteloom-text);
2037
2059
  }
2060
+
2061
+ /* --- voice typing: caret-anchored listening/processing indicator --- */
2062
+
2063
+ .be-voice-indicator {
2064
+ z-index: 1000;
2065
+ display: flex;
2066
+ align-items: center;
2067
+ gap: 5px;
2068
+ background: var(--noteloom-bg);
2069
+ border: 1px solid var(--noteloom-border);
2070
+ border-radius: var(--noteloom-radius-md);
2071
+ padding: 4px 9px;
2072
+ box-shadow: var(--noteloom-shadow);
2073
+ font-size: 0.78rem;
2074
+ color: var(--noteloom-text-muted);
2075
+ white-space: nowrap;
2076
+ pointer-events: none;
2077
+ animation: be-voice-indicator-in 0.12s ease-out;
2078
+ }
2079
+
2080
+ @keyframes be-voice-indicator-in {
2081
+ from {
2082
+ opacity: 0;
2083
+ transform: translate(-50%, calc(-100% + 4px));
2084
+ }
2085
+ to {
2086
+ opacity: 1;
2087
+ transform: translate(-50%, -100%);
2088
+ }
2089
+ }
2090
+
2091
+ .be-voice-indicator-dot {
2092
+ width: 7px;
2093
+ height: 7px;
2094
+ border-radius: 50%;
2095
+ background: var(--noteloom-danger, #dc2626);
2096
+ flex: none;
2097
+ animation: be-voice-indicator-pulse 1.4s ease-in-out infinite;
2098
+ }
2099
+
2100
+ .be-voice-indicator-processing .be-voice-indicator-dot {
2101
+ background: var(--noteloom-accent);
2102
+ animation-duration: 0.6s;
2103
+ }
2104
+
2105
+ @keyframes be-voice-indicator-pulse {
2106
+ 0%,
2107
+ 100% {
2108
+ opacity: 1;
2109
+ box-shadow: 0 0 0 0 currentColor;
2110
+ }
2111
+ 50% {
2112
+ opacity: 0.5;
2113
+ box-shadow: 0 0 0 4px transparent;
2114
+ }
2115
+ }
2116
+
2117
+ /* --- print --- */
2118
+ /*
2119
+ * Printing (or "Save as PDF" via the browser's own print dialog — this
2120
+ * package deliberately doesn't bundle a PDF-generation library, which
2121
+ * would conflict with staying zero-runtime-dependency) always renders a
2122
+ * clean, chrome-free document: every piece of editing-only UI is hidden
2123
+ * here, regardless of whether the app happens to be in preview mode at
2124
+ * the moment of printing. `.be-block-row-hidden` is included on purpose —
2125
+ * a block hidden via "Hide in preview" stays in the DOM (just dimmed) in
2126
+ * edit mode, so without this rule printing while NOT toggled into preview
2127
+ * mode would print blocks the user explicitly marked as hidden. A host
2128
+ * app's own outer chrome (nav bars, its own toolbar) needs its own print
2129
+ * rules the same way — see examples/basic's own style.css for a worked
2130
+ * example, since that chrome lives outside this package entirely.
2131
+ */
2132
+ @media print {
2133
+ .be-block-gutter,
2134
+ .be-block-gutter-menu,
2135
+ .be-block-gutter-menu-item,
2136
+ .be-block-range-menu,
2137
+ .be-block-range-menu-item,
2138
+ .be-block-row-hidden,
2139
+ .be-slash-menu,
2140
+ #be-emoji-menu,
2141
+ #be-at-menu,
2142
+ .be-floating-toolbar,
2143
+ .be-link-hover-card,
2144
+ .be-voice-indicator,
2145
+ .be-table-header-menu-trigger,
2146
+ .be-table-header-menu,
2147
+ .be-table-col-resize-handle,
2148
+ .be-table-delete-row,
2149
+ .be-table-add-row,
2150
+ .be-embed-toolbar,
2151
+ .be-embed-remove,
2152
+ .be-embed-resize-handle,
2153
+ .be-embed-dropzone,
2154
+ .be-embed-upload-btn,
2155
+ .be-embed-url-row,
2156
+ .be-callout-color-wrap,
2157
+ .be-modal-overlay,
2158
+ .be-mobile-action-bar,
2159
+ .be-mobile-picker-list,
2160
+ .be-export-trigger,
2161
+ .be-export-tabs,
2162
+ .be-trailing-space,
2163
+ .be-select-popover {
2164
+ display: none !important;
2165
+ }
2166
+
2167
+ /* .be-block-row-range-selected and .be-block-selected mark real content
2168
+ (the row/block itself, not a standalone chrome element) with a
2169
+ highlight background/outline — reset just that styling rather than
2170
+ hiding the element the way the chrome above is hidden, or printing
2171
+ mid-drag-selection would print blank space instead of the block's own
2172
+ content. */
2173
+ .be-block-row-range-selected {
2174
+ background: none !important;
2175
+ }
2176
+
2177
+ .be-block-selected {
2178
+ outline: none !important;
2179
+ }
2180
+
2181
+ /* No background colors/shadows on paper, and text that's always legible
2182
+ regardless of the screen theme the page happened to be rendered in
2183
+ (dark mode's near-white text would otherwise print as barely-there). */
2184
+ .be-editable,
2185
+ .be-paragraph,
2186
+ .be-heading,
2187
+ .be-list-item,
2188
+ .be-blockquote,
2189
+ .be-code-block,
2190
+ .be-callout,
2191
+ .be-table-cell {
2192
+ background: none !important;
2193
+ box-shadow: none !important;
2194
+ color: #000 !important;
2195
+ }
2196
+
2197
+ /* Don't split a table/code block/callout/image awkwardly across a page
2198
+ boundary when it would otherwise fit on one page. */
2199
+ .be-table,
2200
+ .be-code-block,
2201
+ .be-callout,
2202
+ .be-embed-image {
2203
+ break-inside: avoid;
2204
+ }
2205
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "noteloom",
3
- "version": "0.1.5",
3
+ "version": "0.1.6",
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",