@docsector/docsector-reader 4.4.1 → 4.4.3

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/bin/docsector.js CHANGED
@@ -24,7 +24,7 @@ const packageRoot = resolve(__dirname, '..')
24
24
  const args = process.argv.slice(2)
25
25
  const command = args[0]
26
26
 
27
- const VERSION = '4.4.1'
27
+ const VERSION = '4.4.3'
28
28
  const AUTHORING_SKILL_NAME = 'docsector-documentation-authoring'
29
29
  const AUTHORING_SKILL_DESCRIPTION = 'Author Docsector documentation with Markdown, custom blocks, MCP, and WebMCP.'
30
30
  const AUTHORING_SKILL_PUBLIC_PATH = `/.well-known/agent-skills/${AUTHORING_SKILL_NAME}/SKILL.md`
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@docsector/docsector-reader",
3
- "version": "4.4.1",
3
+ "version": "4.4.3",
4
4
  "description": "A documentation rendering engine built with Vue 3, Quasar v2 and Vite. Transform Markdown into beautiful, navigable documentation sites.",
5
5
  "productName": "Docsector Reader",
6
6
  "author": "Rodrigo de Araujo Vieira",
@@ -136,6 +136,10 @@ const mobileAssistantOpen = computed({
136
136
  get: () => assistantEnabled && rightRailState.value.isMobile && layoutAssistant.value,
137
137
  set: (value) => { layoutAssistant.value = value }
138
138
  })
139
+ const mobileTocOpen = computed({
140
+ get: () => rightRailState.value.isMobile && layoutMeta.value,
141
+ set: (value) => { layoutMeta.value = value }
142
+ })
139
143
  const backToTopRightOffset = computed(() => {
140
144
  return rightRailState.value.backToTopRightOffset
141
145
  })
@@ -470,13 +474,38 @@ watch(() => route.fullPath, () => {
470
474
  </div>
471
475
  </q-drawer>
472
476
 
473
- <q-dialog v-if="assistantEnabled" v-model="mobileAssistantOpen" maximized class="d-mobile-assistant-dialog">
474
- <d-assistant-panel
475
- class="d-mobile-assistant-panel"
476
- :context-title="currentPageTitle"
477
- :markdown-url="currentMarkdownUrl"
478
- @close="closeAssistant"
479
- />
477
+ <q-dialog
478
+ v-model="mobileTocOpen"
479
+ position="right"
480
+ square
481
+ full-height
482
+ class="d-mobile-anchor-dialog"
483
+ >
484
+ <div id="anchor" class="d-mobile-anchor-dialog__panel">
485
+ <d-page-anchor />
486
+ </div>
487
+ </q-dialog>
488
+
489
+ <q-dialog
490
+ v-if="assistantEnabled"
491
+ v-model="mobileAssistantOpen"
492
+ maximized
493
+ no-backdrop-dismiss
494
+ class="d-mobile-assistant-dialog"
495
+ >
496
+ <div
497
+ class="d-mobile-assistant-dialog__panel-shell"
498
+ @click.stop
499
+ @mousedown.stop
500
+ @touchstart.stop
501
+ >
502
+ <d-assistant-panel
503
+ class="d-mobile-assistant-panel"
504
+ :context-title="currentPageTitle"
505
+ :markdown-url="currentMarkdownUrl"
506
+ @close="closeAssistant"
507
+ />
508
+ </div>
480
509
  </q-dialog>
481
510
  </q-page-container>
482
511
  </template>
@@ -525,6 +554,12 @@ watch(() => route.fullPath, () => {
525
554
  align-items: stretch
526
555
  justify-content: stretch
527
556
 
557
+ &__panel-shell
558
+ width: 100vw
559
+ max-width: 100vw
560
+ height: 100dvh
561
+ max-height: 100dvh
562
+
528
563
  .d-mobile-assistant-panel
529
564
  width: 100vw
530
565
  max-width: 100vw
@@ -532,6 +567,32 @@ watch(() => route.fullPath, () => {
532
567
  max-height: 100dvh
533
568
  margin: 0
534
569
 
570
+ .d-mobile-anchor-dialog
571
+ .q-dialog__inner
572
+ padding: 0
573
+ align-items: stretch
574
+ justify-content: flex-end
575
+
576
+ .q-dialog__backdrop
577
+ background: rgba(15, 23, 42, 0.24)
578
+
579
+ &__panel
580
+ width: min(100vw, 340px)
581
+ max-width: 100vw
582
+ height: 100%
583
+ max-height: 100dvh
584
+ padding-top: env(safe-area-inset-top, 0px)
585
+ padding-bottom: env(safe-area-inset-bottom, 0px)
586
+ background: rgba(248, 250, 252, 0.88)
587
+ backdrop-filter: blur(18px)
588
+ -webkit-backdrop-filter: blur(18px)
589
+ overflow: auto
590
+ box-shadow: -16px 0 40px rgba(15, 23, 42, 0.22)
591
+
592
+ body.body--dark
593
+ .d-mobile-anchor-dialog__panel
594
+ background: rgba(15, 23, 42, 0.9)
595
+
535
596
  #scroll-container
536
597
  width: 100%
537
598
  max-width: 1200px
@@ -70,6 +70,26 @@ const engineDefaults = {
70
70
  deprecated: 'deprecated'
71
71
  }
72
72
  }
73
+ },
74
+ assistant: {
75
+ title: 'Docsector Assistant',
76
+ subtitle: "I'm here to help you with the docs.",
77
+ open: 'Open assistant',
78
+ close: 'Close assistant',
79
+ clear: 'Clear conversation',
80
+ placeholder: 'Ask, search, or explain...',
81
+ send: 'Send',
82
+ stop: 'Stop',
83
+ context: 'Based on your context',
84
+ sources: 'Sources',
85
+ sourcesCount: '{count} sources',
86
+ thinking: 'Searching the docs…',
87
+ resize: 'Resize assistant',
88
+ greeting: {
89
+ morning: 'Good morning',
90
+ afternoon: 'Good afternoon',
91
+ evening: 'Good evening'
92
+ }
73
93
  }
74
94
  },
75
95
  'pt-BR': {
@@ -120,6 +140,26 @@ const engineDefaults = {
120
140
  deprecated: 'obsoleta'
121
141
  }
122
142
  }
143
+ },
144
+ assistant: {
145
+ title: 'Assistente Docsector',
146
+ subtitle: 'Estou aqui para ajudar com a documentação.',
147
+ open: 'Abrir assistente',
148
+ close: 'Fechar assistente',
149
+ clear: 'Limpar conversa',
150
+ placeholder: 'Pergunte, pesquise ou explique...',
151
+ send: 'Enviar',
152
+ stop: 'Parar',
153
+ context: 'Com base no seu contexto',
154
+ sources: 'Fontes',
155
+ sourcesCount: '{count} fontes',
156
+ thinking: 'Consultando a documentação…',
157
+ resize: 'Redimensionar assistente',
158
+ greeting: {
159
+ morning: 'Bom dia',
160
+ afternoon: 'Boa tarde',
161
+ evening: 'Boa noite'
162
+ }
123
163
  }
124
164
  }
125
165
  }