Part of #19.\n\nPort web-components/app-schmackhaft.ts → src/App.vue. This is the root component.\n\n- Replace @property narrow with a prop or a media-query composable\n- Use useBookmarksStore() to get the reactive links object\n- Replace renderNarrow() / renderWide() with a single template using v-if=\"narrow\"\n- Replace <mwc-textfield> with <input type=\"text\"> and <mwc-button> with <button>\n- Wire up search and tag filter actions to store methods\n- No more requestUpdate() — Vue reactivity handles re-rendering automatically
Part of #19.\n\nPort
web-components/app-schmackhaft.ts→src/App.vue. This is the root component.\n\n- Replace@property narrowwith a prop or a media-query composable\n- UseuseBookmarksStore()to get the reactivelinksobject\n- ReplacerenderNarrow()/renderWide()with a single template usingv-if=\"narrow\"\n- Replace<mwc-textfield>with<input type=\"text\">and<mwc-button>with<button>\n- Wire up search and tag filter actions to store methods\n- No morerequestUpdate()— Vue reactivity handles re-rendering automatically