@tekkare/romulus 0.1.214 → 0.1.216

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/module.json CHANGED
@@ -4,7 +4,7 @@
4
4
  "compatibility": {
5
5
  "nuxt": ">=3.16.0"
6
6
  },
7
- "version": "0.1.213",
7
+ "version": "0.1.215",
8
8
  "builder": {
9
9
  "@nuxt/module-builder": "0.8.4",
10
10
  "unbuild": "2.0.0"
@@ -50,13 +50,6 @@ const props = withDefaults(
50
50
  * (le bandeau de page). Sa hauteur est suivie par ResizeObserver.
51
51
  */
52
52
  stickyTo?: string | null
53
- /**
54
- * Pose le rail sur sa propre rangee meme sans champ de recherche : pour
55
- * une page dont le rail est long (les niveaux d'agregation, du produit au
56
- * fabricant, plus l'unite lue) et qui veut ses puces seules sur la
57
- * premiere ligne.
58
- */
59
- railBelow?: boolean
60
53
  }>(),
61
54
  {
62
55
  filtersAmount: 0,
@@ -69,7 +62,6 @@ const props = withDefaults(
69
62
  saveScopeMsg: null,
70
63
  lang: 'fr',
71
64
  stickyTo: 'rm_page_header',
72
- railBelow: false,
73
65
  },
74
66
  )
75
67
 
@@ -98,14 +90,20 @@ const slots = useSlots()
98
90
  const hasAdvanced = computed(() => !!slots.Advanced)
99
91
  const hasCustomize = computed(() => !!slots.Customize)
100
92
  const hasRail = computed(() => !!slots.Rail)
93
+ const hasRailBelow = computed(() => !!slots.RailBelow)
101
94
  const hasSearch = computed(() => !!slots.Search)
102
95
  /**
103
96
  * Le rail ne descend sur sa propre rangee que si la barre porte AUSSI un champ
104
97
  * de recherche : c'est le champ qui lui dispute la place, pas les puces. Sans
105
98
  * champ, il tient a cote de « Filtres » et une rangee de plus ne ferait
106
- * qu'eloigner le contenu du bandeau. La page peut l'imposer (`railBelow`).
99
+ * qu'eloigner le contenu du bandeau.
100
+ *
101
+ * Le slot #RailBelow, lui, a toujours sa rangee : la page y pose le reglage
102
+ * trop long pour la premiere ligne (les niveaux d'agregation, du produit au
103
+ * fabricant) et garde le court (l'unite lue) a cote des puces.
107
104
  */
108
- const railOnOwnRow = computed(() => hasRail.value && (props.railBelow || hasSearch.value))
105
+ const railOnOwnRow = computed(() => hasRail.value && hasSearch.value)
106
+ const hasRailRow = computed(() => railOnOwnRow.value || hasRailBelow.value)
109
107
 
110
108
  function toggle(which: RmFilterBarPanel) {
111
109
  panel.value = panel.value === which ? null : which
@@ -254,10 +252,11 @@ onBeforeUnmount(() => {
254
252
  ses derniers segments coupes, et le champ tombait a sa largeur
255
253
  minimale. Chacun sur sa ligne prend alors toute la largeur de la
256
254
  colonne. -->
257
- <div v-if="railOnOwnRow" class="rm-fbar__band rm-fbar__band--rail">
255
+ <div v-if="hasRailRow" class="rm-fbar__band rm-fbar__band--rail">
258
256
  <div class="rm-fbar__rail-row">
259
257
  <div class="rm-fbar__rail">
260
- <slot name="Rail" />
258
+ <slot v-if="railOnOwnRow" name="Rail" />
259
+ <slot name="RailBelow" />
261
260
  </div>
262
261
  </div>
263
262
  </div>
@@ -109,6 +109,12 @@ export interface RmSavedViewMenuItem {
109
109
  danger?: boolean
110
110
  /** Demande confirmation dans la carte avant d'emettre l'action. */
111
111
  confirm?: boolean
112
+ /**
113
+ * Question posee a la place de « Supprimer definitivement « titre » ? » :
114
+ * quand l'action a des consequences au-dela de la carte (une vue partagee,
115
+ * un template offert a des clients), c'est a l'appelant de les dire.
116
+ */
117
+ confirmText?: string
112
118
  }
113
119
 
114
120
  const props = withDefaults(
@@ -405,7 +411,8 @@ function onCardClick() {
405
411
  <div v-if="pending" class="rm-view__confirm" @click.stop>
406
412
  <span>
407
413
  <RmIcon name="WarningCircle" :size="16" />
408
- {{ T.confirmPrefix }} « {{ view.title }} » ?
414
+ <template v-if="pending.confirmText">{{ pending.confirmText }}</template>
415
+ <template v-else>{{ T.confirmPrefix }} « {{ view.title }} » ?</template>
409
416
  </span>
410
417
  <div class="rm-view__confirm-actions">
411
418
  <RmButton variant="secondary" size="sm" @click="pending = null">
@@ -28,6 +28,8 @@ export interface RmShareMember {
28
28
  /** Nom affiche. A defaut, l'appelant y met l'adresse. */
29
29
  name: string
30
30
  email?: string
31
+ /** Un mot apres l'adresse : d'ou vient la personne quand ce n'est pas l'espace. */
32
+ hint?: string
31
33
  }
32
34
 
33
35
  /** Un espace de travail a qui un modele peut etre offert. */
@@ -96,6 +98,13 @@ const props = withDefaults(
96
98
 
97
99
  const emit = defineEmits<{
98
100
  'update:modelValue': [value: boolean]
101
+ /**
102
+ * Ce que l'utilisateur tape dans « Chercher une personne ». Le dialogue
103
+ * filtre `members` lui-meme ; l'appelant qui sait chercher plus loin que
104
+ * la liste chargee (toute la plateforme, pour une administration) complete
105
+ * `members` en retour.
106
+ */
107
+ search: [query: string]
99
108
  save: [
100
109
  value: {
101
110
  visibility: 'private' | 'workspace'
@@ -177,6 +186,8 @@ watch(
177
186
  { immediate: true },
178
187
  )
179
188
 
189
+ watch(search, value => emit('search', value.trim()))
190
+
180
191
  const matches = computed(() => {
181
192
  const q = search.value.trim().toLowerCase()
182
193
  if (!q) return props.members
@@ -322,7 +333,7 @@ const scopes = computed<Array<{ key: RmShareScope; icon: string; label: string;
322
333
  <RmCheckbox
323
334
  :model-value="picked.includes(member.userId)"
324
335
  :label="member.name"
325
- :description="member.email"
336
+ :description="member.hint ? [member.email, member.hint].filter(Boolean).join(' · ') : member.email"
326
337
  @update:model-value="toggle(member.userId)"
327
338
  />
328
339
  </li>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekkare/romulus",
3
- "version": "0.1.214",
3
+ "version": "0.1.216",
4
4
  "description": "Romulus Design System - Nuxt module by Tekkare",
5
5
  "license": "MIT",
6
6
  "type": "module",