@mdaemon/html-editor 1.2.0 → 1.3.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/dist/styles.css CHANGED
@@ -1597,4 +1597,218 @@
1597
1597
  .md-editor .md-toolbar-separator {
1598
1598
  height: 32px;
1599
1599
  }
1600
+ }
1601
+ .md-speechtotext-dialog {
1602
+ width: 500px;
1603
+ max-width: 90vw;
1604
+ }
1605
+
1606
+ .md-speechtotext-body {
1607
+ padding: 16px;
1608
+ display: flex;
1609
+ flex-direction: column;
1610
+ gap: 12px;
1611
+ }
1612
+
1613
+ .md-speechtotext-lang-row {
1614
+ display: flex;
1615
+ align-items: center;
1616
+ gap: 12px;
1617
+ }
1618
+
1619
+ .md-speechtotext-label {
1620
+ font-size: 13px;
1621
+ color: #666;
1622
+ min-width: 60px;
1623
+ }
1624
+
1625
+ .md-speechtotext-language {
1626
+ flex: 1;
1627
+ padding: 6px 10px;
1628
+ border: 1px solid #ccc;
1629
+ border-radius: 3px;
1630
+ font-size: 13px;
1631
+ background: #fff;
1632
+ }
1633
+ .md-speechtotext-language:focus {
1634
+ outline: none;
1635
+ border-color: #2271b2;
1636
+ }
1637
+
1638
+ .md-speechtotext-status {
1639
+ font-size: 13px;
1640
+ color: #666;
1641
+ min-height: 20px;
1642
+ display: flex;
1643
+ align-items: center;
1644
+ gap: 8px;
1645
+ }
1646
+ .md-speechtotext-status.md-speechtotext-status-active {
1647
+ color: #2271b2;
1648
+ }
1649
+ .md-speechtotext-status.md-speechtotext-status-active::before {
1650
+ content: "";
1651
+ display: inline-block;
1652
+ width: 8px;
1653
+ height: 8px;
1654
+ border-radius: 50%;
1655
+ background: #e53e3e;
1656
+ animation: md-pulse 1.2s ease-in-out infinite;
1657
+ }
1658
+
1659
+ @keyframes md-pulse {
1660
+ 0%, 100% {
1661
+ opacity: 1;
1662
+ }
1663
+ 50% {
1664
+ opacity: 0.4;
1665
+ }
1666
+ }
1667
+ .md-speechtotext-transcript {
1668
+ min-height: 120px;
1669
+ max-height: 250px;
1670
+ overflow-y: auto;
1671
+ padding: 12px;
1672
+ border: 1px solid #ccc;
1673
+ border-radius: 3px;
1674
+ font-size: 14px;
1675
+ line-height: 1.5;
1676
+ background: #fafafa;
1677
+ white-space: pre-wrap;
1678
+ word-wrap: break-word;
1679
+ }
1680
+
1681
+ .md-speechtotext-final {
1682
+ color: #1a1a1a;
1683
+ }
1684
+
1685
+ .md-speechtotext-interim {
1686
+ color: #999;
1687
+ font-style: italic;
1688
+ }
1689
+
1690
+ .md-speechtotext-confidence {
1691
+ font-size: 12px;
1692
+ color: #888;
1693
+ min-height: 18px;
1694
+ }
1695
+
1696
+ .md-speechtotext-controls {
1697
+ display: flex;
1698
+ gap: 8px;
1699
+ justify-content: flex-end;
1700
+ padding-top: 4px;
1701
+ }
1702
+
1703
+ .md-speechtotext-btn {
1704
+ padding: 8px 16px;
1705
+ border: 1px solid #ccc;
1706
+ border-radius: 3px;
1707
+ font-size: 13px;
1708
+ cursor: pointer;
1709
+ background: #fff;
1710
+ }
1711
+ .md-speechtotext-btn:hover {
1712
+ background: #f0f0f0;
1713
+ }
1714
+ .md-speechtotext-btn.md-speechtotext-btn-start {
1715
+ background: #2271b2;
1716
+ color: #fff;
1717
+ border-color: #2271b2;
1718
+ }
1719
+ .md-speechtotext-btn.md-speechtotext-btn-start:hover {
1720
+ opacity: 0.9;
1721
+ }
1722
+ .md-speechtotext-btn.md-speechtotext-btn-stop {
1723
+ background: #e53e3e;
1724
+ color: #fff;
1725
+ border-color: #e53e3e;
1726
+ }
1727
+ .md-speechtotext-btn.md-speechtotext-btn-stop:hover {
1728
+ opacity: 0.9;
1729
+ }
1730
+ .md-speechtotext-btn.md-speechtotext-btn-insert {
1731
+ background: #2271b2;
1732
+ color: #fff;
1733
+ border-color: #2271b2;
1734
+ }
1735
+ .md-speechtotext-btn.md-speechtotext-btn-insert:hover {
1736
+ opacity: 0.9;
1737
+ }
1738
+
1739
+ .md-editor-oxide-dark .md-speechtotext-language,
1740
+ .md-editor-confab-dark .md-speechtotext-language {
1741
+ background: #2a2a2a;
1742
+ color: #e0e0e0;
1743
+ border-color: #444;
1744
+ }
1745
+ .md-editor-oxide-dark .md-speechtotext-transcript,
1746
+ .md-editor-confab-dark .md-speechtotext-transcript {
1747
+ background: #1e1e1e;
1748
+ border-color: #444;
1749
+ }
1750
+ .md-editor-oxide-dark .md-speechtotext-final,
1751
+ .md-editor-confab-dark .md-speechtotext-final {
1752
+ color: #e0e0e0;
1753
+ }
1754
+ .md-editor-oxide-dark .md-speechtotext-interim,
1755
+ .md-editor-confab-dark .md-speechtotext-interim {
1756
+ color: #777;
1757
+ }
1758
+ .md-editor-oxide-dark .md-speechtotext-label,
1759
+ .md-editor-confab-dark .md-speechtotext-label {
1760
+ color: #aaa;
1761
+ }
1762
+ .md-editor-oxide-dark .md-speechtotext-confidence,
1763
+ .md-editor-confab-dark .md-speechtotext-confidence {
1764
+ color: #777;
1765
+ }
1766
+ .md-editor-oxide-dark .md-speechtotext-btn,
1767
+ .md-editor-confab-dark .md-speechtotext-btn {
1768
+ background: #333;
1769
+ color: #e0e0e0;
1770
+ border-color: #555;
1771
+ }
1772
+ .md-editor-oxide-dark .md-speechtotext-btn:hover,
1773
+ .md-editor-confab-dark .md-speechtotext-btn:hover {
1774
+ background: #444;
1775
+ }
1776
+ .md-editor-oxide-dark .md-speechtotext-btn.md-speechtotext-btn-start, .md-editor-oxide-dark .md-speechtotext-btn.md-speechtotext-btn-insert,
1777
+ .md-editor-confab-dark .md-speechtotext-btn.md-speechtotext-btn-start,
1778
+ .md-editor-confab-dark .md-speechtotext-btn.md-speechtotext-btn-insert {
1779
+ background: #2271b2;
1780
+ color: #fff;
1781
+ border-color: #2271b2;
1782
+ }
1783
+ .md-editor-oxide-dark .md-speechtotext-btn.md-speechtotext-btn-stop,
1784
+ .md-editor-confab-dark .md-speechtotext-btn.md-speechtotext-btn-stop {
1785
+ background: #e53e3e;
1786
+ color: #fff;
1787
+ border-color: #e53e3e;
1788
+ }
1789
+
1790
+ .md-toolbar-btn-dictating {
1791
+ position: relative;
1792
+ background: #e53e3e !important;
1793
+ color: #fff !important;
1794
+ }
1795
+ .md-toolbar-btn-dictating::after {
1796
+ content: "";
1797
+ position: absolute;
1798
+ top: 4px;
1799
+ right: 4px;
1800
+ width: 6px;
1801
+ height: 6px;
1802
+ background: #fff;
1803
+ border-radius: 50%;
1804
+ animation: md-dictate-pulse 1.2s ease-in-out infinite;
1805
+ }
1806
+
1807
+ @keyframes md-dictate-pulse {
1808
+ 0%, 100% {
1809
+ opacity: 1;
1810
+ }
1811
+ 50% {
1812
+ opacity: 0.3;
1813
+ }
1600
1814
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mdaemon/html-editor",
3
- "version": "1.2.0",
3
+ "version": "1.3.0",
4
4
  "description": "A TinyMCE-compatible HTML editor built on TipTap",
5
5
  "homepage": "https://github.com/mdaemon-technologies/MDHTMLEditor",
6
6
  "repository": {
@@ -84,6 +84,7 @@
84
84
  "@testing-library/jest-dom": "^6.9.1",
85
85
  "@types/jest": "^30.0.0",
86
86
  "@types/node": "^25.2.3",
87
+ "@vitejs/plugin-basic-ssl": "^2.3.0",
87
88
  "jest": "^30.2.0",
88
89
  "jest-environment-jsdom": "^30.2.0",
89
90
  "sass": "^1.97.3",