efficient-shell 4.137.0 → 4.137.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.
Files changed (166) hide show
  1. package/LICENSE +6 -17
  2. package/README.md +3 -1
  3. package/dist/Browser-ZX5OTOKK.js +43 -0
  4. package/dist/Calculator-4SQGOQFQ.js +29 -0
  5. package/dist/ConfirmDialog-NPKW2XHM.js +1 -0
  6. package/dist/CurrencyConverter-2KOM7L6V.js +21 -0
  7. package/dist/Documents-IZTIQYPG.js +52 -0
  8. package/dist/Files-B63KKXGZ.js +89 -0
  9. package/dist/Notepad-WA77V45J.js +25 -0
  10. package/dist/PdfViewer-RBRGEKWF.js +1 -0
  11. package/dist/PomodoroTimer-SDUBKXUS.js +99 -0
  12. package/dist/Preview-D4KOA4OI.js +187 -0
  13. package/dist/Sidebar-Y57LYXXI.js +23 -0
  14. package/dist/Spreadsheet-JX5E6WH6.js +37 -0
  15. package/dist/Stock-XAQ5WMUZ.js +16 -0
  16. package/dist/Weather-HLAGJ5LV.js +60 -0
  17. package/dist/WorldClock-IRI4VCTA.js +32 -0
  18. package/dist/apps/index.js +1 -151
  19. package/dist/chunk-3A46NCXK.js +29 -0
  20. package/dist/chunk-44UO7FYU.js +11 -0
  21. package/dist/chunk-466CM2TJ.js +1 -0
  22. package/dist/chunk-57MIENLJ.js +1 -0
  23. package/dist/chunk-5CRAF2AD.js +2 -0
  24. package/dist/chunk-A2OQLLYK.js +6 -0
  25. package/dist/chunk-B43AGQET.js +4 -0
  26. package/dist/chunk-BR22X7E5.js +1 -0
  27. package/dist/chunk-BUTSU7FO.js +1 -0
  28. package/dist/chunk-D65T4H6J.js +1 -0
  29. package/dist/chunk-ESL5TDNA.js +1 -0
  30. package/dist/chunk-FBDZGO3V.js +1 -0
  31. package/dist/chunk-FHTLC7HH.js +1 -0
  32. package/dist/chunk-FQLMX3IE.js +948 -0
  33. package/dist/chunk-H562R4GX.js +34 -0
  34. package/dist/chunk-JN4WXTWJ.js +106 -0
  35. package/dist/chunk-LVDRBRYU.js +1 -0
  36. package/dist/chunk-LWLCNQY7.js +1 -0
  37. package/dist/chunk-MAIHBBWT.js +1 -0
  38. package/dist/chunk-NPJH5MD7.js +13 -0
  39. package/dist/chunk-OCSOMMY2.js +1 -0
  40. package/dist/chunk-OQDWLHZI.js +1 -0
  41. package/dist/chunk-OWSAMA3I.js +23 -0
  42. package/dist/chunk-PH3PRIFP.js +5 -0
  43. package/dist/chunk-TAWKWSPN.js +9 -0
  44. package/dist/chunk-U4GTZPXP.js +1 -0
  45. package/dist/chunk-UB4JIOLD.js +2 -0
  46. package/dist/chunk-UZAJ5BF6.js +9 -0
  47. package/dist/chunk-VEGMDXT4.js +1 -0
  48. package/dist/chunk-VTVSMRFX.js +1 -0
  49. package/dist/chunk-VVAGSKW7.js +1 -0
  50. package/dist/chunk-XO43FJRM.js +19 -0
  51. package/dist/chunk-Y7BOLDRM.js +69 -0
  52. package/dist/file-intake/index.js +1 -4
  53. package/dist/index.js +639 -7473
  54. package/dist/map/index.js +20 -540
  55. package/dist/markdown/index.js +6 -184
  56. package/dist/markup/index.js +1 -135
  57. package/dist/page-tabs/index.js +21 -709
  58. package/dist/sounds-OMHXVVQ4.js +1 -0
  59. package/dist/ui/index.js +1 -19
  60. package/package.json +4 -3
  61. package/dist/Browser-ZNX4WFUH.js +0 -482
  62. package/dist/Browser-ZNX4WFUH.js.map +0 -1
  63. package/dist/Calculator-6FGNKOXU.js +0 -192
  64. package/dist/Calculator-6FGNKOXU.js.map +0 -1
  65. package/dist/ConfirmDialog-NPQMIGUR.js +0 -4
  66. package/dist/ConfirmDialog-NPQMIGUR.js.map +0 -1
  67. package/dist/CurrencyConverter-FF7EXRYL.js +0 -236
  68. package/dist/CurrencyConverter-FF7EXRYL.js.map +0 -1
  69. package/dist/Documents-H3R7XSBH.js +0 -441
  70. package/dist/Documents-H3R7XSBH.js.map +0 -1
  71. package/dist/Files-ZHJIAUC2.js +0 -805
  72. package/dist/Files-ZHJIAUC2.js.map +0 -1
  73. package/dist/Notepad-VE7ISWRQ.js +0 -410
  74. package/dist/Notepad-VE7ISWRQ.js.map +0 -1
  75. package/dist/PdfViewer-SQBFYAGW.js +0 -5
  76. package/dist/PdfViewer-SQBFYAGW.js.map +0 -1
  77. package/dist/PomodoroTimer-IR3WREED.js +0 -633
  78. package/dist/PomodoroTimer-IR3WREED.js.map +0 -1
  79. package/dist/Preview-DAQGRNRM.js +0 -2959
  80. package/dist/Preview-DAQGRNRM.js.map +0 -1
  81. package/dist/Sidebar-YW6H4NDJ.js +0 -291
  82. package/dist/Sidebar-YW6H4NDJ.js.map +0 -1
  83. package/dist/Spreadsheet-HOCPHJOC.js +0 -519
  84. package/dist/Spreadsheet-HOCPHJOC.js.map +0 -1
  85. package/dist/Stock-LVRQPURG.js +0 -158
  86. package/dist/Stock-LVRQPURG.js.map +0 -1
  87. package/dist/Weather-LZQGVDJL.js +0 -431
  88. package/dist/Weather-LZQGVDJL.js.map +0 -1
  89. package/dist/WorldClock-XPD7WOZT.js +0 -202
  90. package/dist/WorldClock-XPD7WOZT.js.map +0 -1
  91. package/dist/apps/index.js.map +0 -1
  92. package/dist/chunk-5O42JXQE.js +0 -26
  93. package/dist/chunk-5O42JXQE.js.map +0 -1
  94. package/dist/chunk-5RPTS3BT.js +0 -70
  95. package/dist/chunk-5RPTS3BT.js.map +0 -1
  96. package/dist/chunk-6XJEJWNJ.js +0 -61
  97. package/dist/chunk-6XJEJWNJ.js.map +0 -1
  98. package/dist/chunk-7CCHEEYC.js +0 -94
  99. package/dist/chunk-7CCHEEYC.js.map +0 -1
  100. package/dist/chunk-BE7FZOFU.js +0 -17
  101. package/dist/chunk-BE7FZOFU.js.map +0 -1
  102. package/dist/chunk-COWYSHG2.js +0 -79
  103. package/dist/chunk-COWYSHG2.js.map +0 -1
  104. package/dist/chunk-D7PYW2QS.js +0 -265
  105. package/dist/chunk-D7PYW2QS.js.map +0 -1
  106. package/dist/chunk-DVZWYWSD.js +0 -26
  107. package/dist/chunk-DVZWYWSD.js.map +0 -1
  108. package/dist/chunk-E7TB6WD2.js +0 -153
  109. package/dist/chunk-E7TB6WD2.js.map +0 -1
  110. package/dist/chunk-FIHOGVUP.js +0 -416
  111. package/dist/chunk-FIHOGVUP.js.map +0 -1
  112. package/dist/chunk-GA35NEND.js +0 -56
  113. package/dist/chunk-GA35NEND.js.map +0 -1
  114. package/dist/chunk-HUBJAUGG.js +0 -316
  115. package/dist/chunk-HUBJAUGG.js.map +0 -1
  116. package/dist/chunk-I2TAAJHS.js +0 -465
  117. package/dist/chunk-I2TAAJHS.js.map +0 -1
  118. package/dist/chunk-ICTRCKUE.js +0 -3710
  119. package/dist/chunk-ICTRCKUE.js.map +0 -1
  120. package/dist/chunk-IPXN646P.js +0 -14
  121. package/dist/chunk-IPXN646P.js.map +0 -1
  122. package/dist/chunk-IRWSRJ4K.js +0 -48
  123. package/dist/chunk-IRWSRJ4K.js.map +0 -1
  124. package/dist/chunk-JOPU6WPY.js +0 -504
  125. package/dist/chunk-JOPU6WPY.js.map +0 -1
  126. package/dist/chunk-MGGY74RY.js +0 -14
  127. package/dist/chunk-MGGY74RY.js.map +0 -1
  128. package/dist/chunk-PVPPAWVM.js +0 -46
  129. package/dist/chunk-PVPPAWVM.js.map +0 -1
  130. package/dist/chunk-R7QGMK6N.js +0 -102
  131. package/dist/chunk-R7QGMK6N.js.map +0 -1
  132. package/dist/chunk-RT6DSB5Y.js +0 -143
  133. package/dist/chunk-RT6DSB5Y.js.map +0 -1
  134. package/dist/chunk-TRCWINHF.js +0 -105
  135. package/dist/chunk-TRCWINHF.js.map +0 -1
  136. package/dist/chunk-TW7LPMVR.js +0 -16
  137. package/dist/chunk-TW7LPMVR.js.map +0 -1
  138. package/dist/chunk-UTYKLGGT.js +0 -195
  139. package/dist/chunk-UTYKLGGT.js.map +0 -1
  140. package/dist/chunk-VNJJCH5A.js +0 -822
  141. package/dist/chunk-VNJJCH5A.js.map +0 -1
  142. package/dist/chunk-XJHZWSKV.js +0 -1103
  143. package/dist/chunk-XJHZWSKV.js.map +0 -1
  144. package/dist/chunk-Y3GYJ7YR.js +0 -549
  145. package/dist/chunk-Y3GYJ7YR.js.map +0 -1
  146. package/dist/chunk-YA4EE7ST.js +0 -14107
  147. package/dist/chunk-YA4EE7ST.js.map +0 -1
  148. package/dist/chunk-YDHXWCCJ.js +0 -145
  149. package/dist/chunk-YDHXWCCJ.js.map +0 -1
  150. package/dist/chunk-YE6GUDGP.js +0 -548
  151. package/dist/chunk-YE6GUDGP.js.map +0 -1
  152. package/dist/chunk-YNKK7NE3.js +0 -171
  153. package/dist/chunk-YNKK7NE3.js.map +0 -1
  154. package/dist/chunk-YPO6RDMX.js +0 -20
  155. package/dist/chunk-YPO6RDMX.js.map +0 -1
  156. package/dist/chunk-ZS7PMGUW.js +0 -7
  157. package/dist/chunk-ZS7PMGUW.js.map +0 -1
  158. package/dist/file-intake/index.js.map +0 -1
  159. package/dist/index.js.map +0 -1
  160. package/dist/map/index.js.map +0 -1
  161. package/dist/markdown/index.js.map +0 -1
  162. package/dist/markup/index.js.map +0 -1
  163. package/dist/page-tabs/index.js.map +0 -1
  164. package/dist/sounds-NT4DEZGD.js +0 -3
  165. package/dist/sounds-NT4DEZGD.js.map +0 -1
  166. package/dist/ui/index.js.map +0 -1
@@ -1 +0,0 @@
1
- {"version":3,"sources":["../src/api/auth.ts","../src/apps/Notepad.tsx"],"names":[],"mappings":"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","file":"Notepad-VE7ISWRQ.js","sourcesContent":["/** User-profile API — calls below proxy to the consumer-supplied apiClient\n * via setShellApiClient(). Prefs reads/writes go through <ShellPrefsProvider>. */\nimport apiClient from './client';\nexport const getMe = () => apiClient.get('/auth/me/').then((r: any) => r.data);\nexport const updateMe = (patch: any) => apiClient.patch('/auth/me/', patch).then((r: any) => r.data);\nexport const getNumberingConfigs = () => apiClient.get('/auth/numbering-configs/').then((r: any) => r.data?.results ?? r.data ?? []);\n","import { useState, useEffect, useRef, useCallback, type ReactNode } from 'react';\nimport { useQuery } from '@tanstack/react-query';\nimport { getNumberingConfigs } from '../api/auth';\nimport apiClient from '../api/client';\nimport toast from '../shell/toast';\nimport { useWindowManager } from '../shell/WindowManager';\nimport { useShellPrefs } from '../shell/ShellPrefs';\nimport SidebarLayout from '../shell/SidebarLayout';\nimport AboutApp from './_about';\n\ninterface Note {\n id: string;\n title: string;\n content: string;\n color: string;\n sticky: boolean; // pinned to desktop\n updated_at: string;\n}\n\nconst COLORS = [\n { key: 'yellow', bg: 'bg-yellow-100', border: 'border-yellow-300', text: 'text-yellow-900', dot: 'bg-yellow-400' },\n { key: 'blue', bg: 'bg-blue-100', border: 'border-blue-300', text: 'text-blue-900', dot: 'bg-blue-400' },\n { key: 'green', bg: 'bg-green-100', border: 'border-green-300', text: 'text-green-900', dot: 'bg-green-400' },\n { key: 'pink', bg: 'bg-pink-100', border: 'border-pink-300', text: 'text-pink-900', dot: 'bg-pink-400' },\n { key: 'purple', bg: 'bg-purple-100', border: 'border-purple-300', text: 'text-purple-900', dot: 'bg-purple-400' },\n { key: 'orange', bg: 'bg-orange-100', border: 'border-orange-300', text: 'text-orange-900', dot: 'bg-orange-400' },\n { key: 'white', bg: 'bg-white', border: 'border-gray-300', text: 'text-gray-900', dot: 'bg-gray-300' },\n];\n\nfunction getColor(key: string) {\n return COLORS.find(c => c.key === key) || COLORS[0];\n}\n\nfunction newNote(): Note {\n return {\n id: `note-${Date.now()}-${Math.random().toString(36).slice(2, 6)}`,\n title: '',\n content: '',\n color: 'yellow',\n sticky: false,\n updated_at: new Date().toISOString(),\n };\n}\n\n// ── Entity reference mapping ──\n// Maps entity_type from NumberingConfig to modal registry entityType and search endpoint\nconst ENTITY_TYPE_MAP: Record<string, { entityType: string; endpoint: string }> = {\n sales_order: { entityType: 'order', endpoint: '/orders/sales-orders/' },\n purchase_order: { entityType: 'purchase_order', endpoint: '/purchase-orders/' },\n invoice: { entityType: 'invoice', endpoint: '/invoicing/invoices/' },\n vendor_invoice: { entityType: 'vendor_invoice', endpoint: '/invoicing/vendor-invoices/' },\n shipment: { entityType: 'shipment', endpoint: '/shipments/delivery-notes/' },\n receipt: { entityType: 'payment', endpoint: '/invoicing/payments/' },\n vendor_payment: { entityType: 'vendor_payment', endpoint: '/invoicing/vendor-payments/' },\n vendor_price_sheet: { entityType: 'vendor_price_sheet', endpoint: '/pricing/manufacturer-price-sheets/' },\n client_price_sheet: { entityType: 'price_sheet', endpoint: '/pricing/price-sheets/' },\n qc_report: { entityType: 'qc_report', endpoint: '/qc-reports/' },\n warranty_claim: { entityType: 'warranty_claim', endpoint: '/warranty-claims/claims/' },\n vendor_shipment: { entityType: 'vendor_shipment', endpoint: '/shipments/goods-receipts/' },\n};\n\n// Match checkboxes: [] or [x] or [X]\nconst CHECKBOX_REGEX = /\\[([ xX]?)\\]/g;\n\nexport default function Notepad() {\n const { openEntity } = useWindowManager();\n const { prefs, save } = useShellPrefs();\n\n // Fetch numbering configs to build dynamic prefix map (optional — only used\n // for entity-reference autolinking; safe to fail when no apiClient is wired).\n const { data: numberingConfigs } = useQuery({\n queryKey: ['numbering-configs'],\n queryFn: () => getNumberingConfigs(),\n retry: false,\n });\n\n // Build prefix → { entityType, endpoint } map from DB configs\n const prefixMap = useRef<Record<string, { entityType: string; endpoint: string; prefix: string }>>({});\n useEffect(() => {\n if (!numberingConfigs) return;\n const map: Record<string, { entityType: string; endpoint: string; prefix: string }> = {};\n for (const cfg of numberingConfigs) {\n const mapping = ENTITY_TYPE_MAP[cfg.entity_type];\n if (!mapping) continue;\n // prefix from DB is like \"SO#\" — strip the # to get \"SO\"\n const rawPrefix = (cfg.prefix || '').replace('#', '').toUpperCase();\n if (rawPrefix) {\n map[rawPrefix] = { ...mapping, prefix: cfg.prefix };\n }\n // Also register alt_prefix if set\n if (cfg.alt_prefix) {\n const altRaw = cfg.alt_prefix.replace('#', '').toUpperCase();\n if (altRaw) map[altRaw] = { ...mapping, prefix: cfg.alt_prefix };\n }\n }\n prefixMap.current = map;\n }, [numberingConfigs]);\n\n const notes: Note[] = prefs.notepad_notes || [];\n const [selectedId, setSelectedId] = useState<string | null>(null);\n const [editTitle, setEditTitle] = useState('');\n const [editContent, setEditContent] = useState('');\n const [editColor, setEditColor] = useState('yellow');\n const [dirty, setDirty] = useState(false);\n const [editing, setEditing] = useState(false);\n const textareaRef = useRef<HTMLTextAreaElement>(null);\n const saveTimerRef = useRef<ReturnType<typeof setTimeout>>();\n\n const selected = notes.find(n => n.id === selectedId);\n\n // Select first note on load\n useEffect(() => {\n if (!selectedId && notes.length > 0) {\n const n = notes[0];\n setSelectedId(n.id);\n setEditTitle(n.title);\n setEditContent(n.content);\n setEditColor(n.color);\n }\n }, [notes.length]);\n\n const saveNotes = useCallback((updated: Note[]) => {\n save({ notepad_notes: updated });\n }, [save]);\n\n const autoSave = useCallback(() => {\n if (!selectedId || !dirty) return;\n const updated = notes.map(n =>\n n.id === selectedId ? { ...n, title: editTitle, content: editContent, color: editColor, updated_at: new Date().toISOString() } : n\n );\n saveNotes(updated);\n setDirty(false);\n }, [selectedId, dirty, editTitle, editContent, editColor, notes, saveNotes]);\n\n // Debounced auto-save\n useEffect(() => {\n if (!dirty) return;\n if (saveTimerRef.current) clearTimeout(saveTimerRef.current);\n saveTimerRef.current = setTimeout(autoSave, 800);\n return () => { if (saveTimerRef.current) clearTimeout(saveTimerRef.current); };\n }, [dirty, autoSave]);\n\n // Save on unmount\n useEffect(() => () => { if (dirty) autoSave(); }, []);\n\n const selectNote = (n: Note) => {\n if (dirty) autoSave();\n setSelectedId(n.id);\n setEditTitle(n.title);\n setEditContent(n.content);\n setEditColor(n.color);\n setDirty(false);\n setEditing(false);\n };\n\n const createNote = () => {\n if (dirty) autoSave();\n const n = newNote();\n const updated = [n, ...notes];\n saveNotes(updated);\n setSelectedId(n.id);\n setEditTitle('');\n setEditContent('');\n setEditColor('yellow');\n setDirty(false);\n setEditing(true);\n setTimeout(() => textareaRef.current?.focus(), 50);\n };\n\n const deleteNote = (id: string) => {\n const updated = notes.filter(n => n.id !== id);\n saveNotes(updated);\n if (selectedId === id) {\n const next = updated[0];\n if (next) selectNote(next);\n else { setSelectedId(null); setEditTitle(''); setEditContent(''); }\n }\n };\n\n const toggleSticky = (id: string) => {\n const updated = notes.map(n =>\n n.id === id ? { ...n, sticky: !n.sticky } : n\n );\n saveNotes(updated);\n const note = updated.find(n => n.id === id);\n toast.success(note?.sticky ? 'Pinned to desktop' : 'Removed from desktop');\n };\n\n const timeAgo = (iso: string) => {\n const diff = Date.now() - new Date(iso).getTime();\n const mins = Math.floor(diff / 60000);\n if (mins < 1) return 'just now';\n if (mins < 60) return `${mins}m ago`;\n const hrs = Math.floor(mins / 60);\n if (hrs < 24) return `${hrs}h ago`;\n const days = Math.floor(hrs / 24);\n return `${days}d ago`;\n };\n\n // ── Toggle checkbox in content ──\n const toggleCheckbox = (charIndex: number) => {\n const before = editContent.slice(0, charIndex);\n const match = editContent.slice(charIndex).match(/^\\[([ xX]?)\\]/);\n if (!match) return;\n const isChecked = match[1] === 'x' || match[1] === 'X';\n const replacement = isChecked ? '[ ]' : '[x]';\n const after = editContent.slice(charIndex + match[0].length);\n setEditContent(before + replacement + after);\n setDirty(true);\n };\n\n // ── Open entity reference ──\n const openRef = async (prefix: string, number: string) => {\n const mapping = prefixMap.current[prefix];\n if (!mapping) return;\n const refNum = `${prefix}#${number}`;\n try {\n const { data } = await apiClient.get(mapping.endpoint, { params: { search: refNum, page_size: 1 } });\n const results = data?.results ?? data ?? [];\n const entity = results[0];\n if (entity) {\n openEntity(mapping.entityType, entity.id, entity, refNum);\n } else {\n toast.error(`${refNum} not found`);\n }\n } catch {\n toast.error(`Failed to look up ${refNum}`);\n }\n };\n\n // ── Render content with links and checkboxes ──\n const renderContent = (text: string): ReactNode[] => {\n if (!text) return [];\n const lines = text.split('\\n');\n return lines.map((line, li) => {\n const parts: ReactNode[] = [];\n let lastIdx = 0;\n // Find all special tokens in the line\n const tokens: { idx: number; len: number; render: () => ReactNode }[] = [];\n\n // Entity references — match XX#NNNNN (2+ letters + # + 4-6 digits)\n const refRegex = /([A-Z]{2,4})#(\\d{4,6})/g;\n let m: RegExpExecArray | null;\n while ((m = refRegex.exec(line)) !== null) {\n const prefix = m[1];\n const num = m[2];\n if (prefixMap.current[prefix]) {\n const startIdx = m.index;\n const matchText = m[0];\n tokens.push({\n idx: startIdx,\n len: matchText.length,\n render: () => (\n <button key={`ref-${li}-${startIdx}`} onClick={() => openRef(prefix, num)}\n className=\"text-blue-600 hover:text-blue-800 hover:underline font-medium cursor-pointer\">\n {matchText}\n </button>\n ),\n });\n }\n }\n\n // Checkboxes\n CHECKBOX_REGEX.lastIndex = 0;\n // Calculate the character offset in the full content for this line\n let lineStartInContent = 0;\n for (let i = 0; i < li; i++) lineStartInContent += lines[i].length + 1;\n while ((m = CHECKBOX_REGEX.exec(line)) !== null) {\n const isChecked = m[1] === 'x' || m[1] === 'X';\n const startIdx = m.index;\n const contentCharIdx = lineStartInContent + startIdx;\n tokens.push({\n idx: startIdx,\n len: m[0].length,\n render: () => (\n <button key={`cb-${li}-${startIdx}`} onClick={() => toggleCheckbox(contentCharIdx)}\n className={`inline-flex items-center justify-center w-4 h-4 rounded border ${isChecked ? 'bg-blue-500 border-blue-500 text-white' : 'border-gray-400 bg-white hover:border-blue-400'} cursor-pointer align-text-bottom mr-0.5`}>\n {isChecked && <svg className=\"w-3 h-3\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={3}><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M4.5 12.75l6 6 9-13.5\" /></svg>}\n </button>\n ),\n });\n }\n\n // Sort tokens by position\n tokens.sort((a, b) => a.idx - b.idx);\n\n // Build line with tokens interspersed\n for (const token of tokens) {\n if (token.idx > lastIdx) {\n // Check if text after a checked checkbox should be struck through\n parts.push(<span key={`t-${li}-${lastIdx}`}>{line.slice(lastIdx, token.idx)}</span>);\n }\n parts.push(token.render());\n lastIdx = token.idx + token.len;\n }\n if (lastIdx < line.length) {\n parts.push(<span key={`t-${li}-${lastIdx}`}>{line.slice(lastIdx)}</span>);\n }\n if (parts.length === 0) parts.push(<span key={`empty-${li}`}>{'\\u200B'}</span>); // zero-width space for empty lines\n\n // Check if line starts with a checked checkbox → strikethrough the rest\n const lineHasChecked = /^\\[x\\]/i.test(line.trimStart());\n return (\n <div key={li} className={lineHasChecked ? 'line-through text-gray-400' : ''}>\n {parts}\n </div>\n );\n });\n };\n\n const startEditing = () => {\n setEditing(true);\n setTimeout(() => textareaRef.current?.focus(), 50);\n };\n\n const stopEditing = () => {\n setEditing(false);\n if (dirty) autoSave();\n };\n\n const PLACEHOLDER_HINT = `Start writing...\n\nTips:\n [] Type [] for a checkbox, click to toggle\n SO#35001 Type XX#NNNNN to link entities (SO, PO, CI, VI, PL, etc.)`;\n\n const sidebar = (\n <>\n <div className=\"p-2 border-b border-gray-200\">\n <button onClick={createNote}\n className=\"w-full flex items-center justify-center gap-1.5 rounded-lg bg-blue-600 text-white px-3 py-1.5 text-sm font-medium hover:bg-blue-700 transition-colors\">\n <svg className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={2}><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M12 4.5v15m7.5-7.5h-15\" /></svg>\n New Note\n </button>\n </div>\n <div className=\"flex-1 overflow-y-auto\">\n {notes.length === 0 ? (\n <p className=\"text-sm text-gray-400 text-center py-8 px-4\">No notes yet. Create one to get started.</p>\n ) : (\n notes.map(n => {\n const c = getColor(n.color);\n return (\n <button key={n.id} onClick={() => selectNote(n)}\n className={`w-full text-left px-3 py-2.5 border-b border-gray-100 transition-colors ${selectedId === n.id ? 'bg-blue-50' : 'hover:bg-gray-50'}`}>\n <div className=\"flex items-center gap-2\">\n <div className={`w-2.5 h-2.5 rounded-full shrink-0 ${c.dot}`} />\n <span className=\"text-sm font-medium text-gray-900 truncate flex-1\">\n {n.title || 'Untitled'}\n </span>\n {n.sticky && (\n <svg className=\"h-3 w-3 text-amber-500 shrink-0\" fill=\"currentColor\" viewBox=\"0 0 24 24\"><path d=\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\" /></svg>\n )}\n </div>\n <p className=\"text-xs text-gray-400 mt-0.5 truncate ml-4.5\">{n.content.replace(/\\[[ xX]?\\]/g, '').slice(0, 60) || 'Empty note'}</p>\n <p className=\"text-[10px] text-gray-300 mt-0.5 ml-4.5\">{timeAgo(n.updated_at)}</p>\n </button>\n );\n })\n )}\n </div>\n </>\n );\n\n return (\n <div className=\"h-full\">\n <AboutApp app=\"notepad\" />\n <SidebarLayout\n sidebar={sidebar}\n storageKey=\"notepad.sidebarWidth\"\n defaultWidth={224}\n minWidth={180}\n maxWidth={360}\n >\n {/* Editor */}\n {selectedId ? (\n <div className=\"flex-1 flex flex-col min-w-0\">\n {/* Title */}\n <div className=\"flex items-center gap-2 px-4 py-2 border-b border-gray-200\">\n <input\n value={editTitle}\n onChange={e => { setEditTitle(e.target.value); setDirty(true); }}\n placeholder=\"Note title...\"\n className=\"flex-1 text-lg font-semibold text-gray-900 outline-none bg-transparent placeholder:text-gray-300\"\n />\n {/* Color picker */}\n <div className=\"flex gap-1\">\n {COLORS.map(c => (\n <button key={c.key} onClick={() => { setEditColor(c.key); setDirty(true); }}\n className={`w-5 h-5 rounded-full border-2 transition-all ${c.dot} ${editColor === c.key ? 'border-gray-600 scale-110' : 'border-transparent hover:border-gray-400'}`}\n title={c.key} />\n ))}\n </div>\n {/* Sticky toggle */}\n <button onClick={() => toggleSticky(selectedId)} title={selected?.sticky ? 'Remove from desktop' : 'Pin to desktop'}\n className={`p-1 rounded transition-colors ${selected?.sticky ? 'text-amber-500 hover:text-amber-600' : 'text-gray-300 hover:text-amber-400'}`}>\n <svg className=\"h-4 w-4\" fill={selected?.sticky ? 'currentColor' : 'none'} viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M5 5a2 2 0 012-2h10a2 2 0 012 2v16l-7-3.5L5 21V5z\" /></svg>\n </button>\n {/* Delete */}\n <button onClick={() => deleteNote(selectedId)} title=\"Delete note\"\n className=\"p-1 rounded text-gray-300 hover:text-red-500 transition-colors\">\n <svg className=\"h-4 w-4\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1.5}><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M14.74 9l-.346 9m-4.788 0L9.26 9m9.968-3.21c.342.052.682.107 1.022.166m-1.022-.165L18.16 19.673a2.25 2.25 0 01-2.244 2.077H8.084a2.25 2.25 0 01-2.244-2.077L4.772 5.79m14.456 0a48.108 48.108 0 00-3.478-.397m-12 .562c.34-.059.68-.114 1.022-.165m0 0a48.11 48.11 0 013.478-.397m7.5 0v-.916c0-1.18-.91-2.164-2.09-2.201a51.964 51.964 0 00-3.32 0c-1.18.037-2.09 1.022-2.09 2.201v.916m7.5 0a48.667 48.667 0 00-7.5 0\" /></svg>\n </button>\n </div>\n {/* Content — toggle between textarea (edit) and rendered view */}\n {editing ? (\n <textarea\n ref={textareaRef}\n value={editContent}\n onChange={e => { setEditContent(e.target.value); setDirty(true); }}\n onBlur={stopEditing}\n placeholder={PLACEHOLDER_HINT}\n className=\"flex-1 p-4 text-sm text-gray-700 outline-none resize-none bg-transparent leading-relaxed placeholder:text-gray-300 font-mono\"\n />\n ) : (\n <div\n onClick={startEditing}\n className=\"flex-1 p-4 text-sm text-gray-700 overflow-y-auto leading-relaxed cursor-text\"\n >\n {editContent ? renderContent(editContent) : (\n <p className=\"text-gray-300 whitespace-pre-line\">{PLACEHOLDER_HINT}</p>\n )}\n </div>\n )}\n {/* Bottom hint bar */}\n <div className=\"px-4 py-1.5 border-t border-gray-100 flex items-center gap-4 text-[10px] text-gray-400\">\n <span>[] checkbox</span>\n <span>SO#35001 entity link</span>\n <span className=\"ml-auto\">{editing ? 'Editing' : 'Click to edit'}</span>\n </div>\n </div>\n ) : (\n <div className=\"flex-1 flex items-center justify-center\">\n <div className=\"text-center text-gray-400\">\n <svg className=\"h-12 w-12 mx-auto mb-3 text-gray-300\" fill=\"none\" viewBox=\"0 0 24 24\" stroke=\"currentColor\" strokeWidth={1}><path strokeLinecap=\"round\" strokeLinejoin=\"round\" d=\"M19.5 14.25v-2.625a3.375 3.375 0 00-3.375-3.375h-1.5A1.125 1.125 0 0113.5 7.125v-1.5a3.375 3.375 0 00-3.375-3.375H8.25m2.25 0H5.625c-.621 0-1.125.504-1.125 1.125v17.25c0 .621.504 1.125 1.125 1.125h12.75c.621 0 1.125-.504 1.125-1.125V11.25a9 9 0 00-9-9z\" /></svg>\n <p className=\"text-sm\">Select a note or create a new one</p>\n </div>\n </div>\n )}\n </SidebarLayout>\n </div>\n );\n}\n"]}
@@ -1,5 +0,0 @@
1
- export { PdfViewer as default, fitScale } from './chunk-FIHOGVUP.js';
2
- import './chunk-UTYKLGGT.js';
3
- import './chunk-YE6GUDGP.js';
4
- //# sourceMappingURL=PdfViewer-SQBFYAGW.js.map
5
- //# sourceMappingURL=PdfViewer-SQBFYAGW.js.map
@@ -1 +0,0 @@
1
- {"version":3,"sources":[],"names":[],"mappings":"","file":"PdfViewer-SQBFYAGW.js"}