accomadesc 0.2.10 → 0.2.12

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.
@@ -3,67 +3,62 @@
3
3
  import CalendarAvailable from './CalendarAvailable.svelte';
4
4
  import Photo from './Photo.svelte';
5
5
  import PricingShort from './PricingShort.svelte';
6
- import {
7
- isAmenitiesCore,
8
- isCalendarAvailable,
9
- isPricingShort,
10
- type AccoCardContent,
11
- type I18nFacade,
12
- } from './types.js';
6
+ import { type AccoCardContent, type I18nFacade } from './types.js';
13
7
 
14
8
  let {
15
- cardContent,
16
9
  displayName,
10
+ coverPhoto,
11
+ slug,
12
+ pricing,
13
+ avail,
14
+ amenities,
17
15
  translateFunc,
18
16
  formatFunc,
19
17
  formatMoneyFunc,
20
18
  formatDateFunc,
21
19
  }: AccoCardContent & I18nFacade = $props();
22
- let translatedSlug = $derived(
23
- translateFunc && cardContent.slug ? translateFunc(cardContent.slug) : '',
24
- );
20
+
21
+ let translatedSlug = $derived(translateFunc && slug ? translateFunc(slug) : '');
25
22
  </script>
26
23
 
27
24
  <div class="accocard-wrapper">
28
- {#if cardContent}
29
- <div class="title-with-slug">
30
- <h2>{displayName}</h2>
31
- {#if cardContent.slug}
32
- <div class="slug">{@html translatedSlug}</div>
33
- {/if}
34
- </div>
35
- {#if cardContent.coverPhoto}
36
- <div class="photo">
37
- <Photo {...cardContent.coverPhoto} {translateFunc} />
38
- </div>
39
- {/if}
40
- {#if cardContent.blocks}
41
- {#each cardContent.blocks as b, i}
42
- <div class="block-container-{i}">
43
- {#if isAmenitiesCore(b)}
44
- <AmenitiesCore {...b.content} {formatFunc} {formatMoneyFunc} {formatDateFunc} />
45
- {:else if isPricingShort(b)}
46
- <PricingShort
47
- {...b.content}
48
- {translateFunc}
49
- {formatFunc}
50
- {formatMoneyFunc}
51
- {formatDateFunc}
52
- />
53
- {:else if isCalendarAvailable(b)}
54
- <CalendarAvailable
55
- {...b.content}
56
- {translateFunc}
57
- {formatFunc}
58
- {formatMoneyFunc}
59
- {formatDateFunc}
60
- />
61
- {:else}
62
- <span>Unsupported</span>
63
- {/if}
64
- </div>
65
- {/each}
25
+ <div class="title-with-slug">
26
+ <h2>{displayName}</h2>
27
+ {#if slug}
28
+ <div class="slug">{@html translatedSlug}</div>
66
29
  {/if}
30
+ </div>
31
+ {#if coverPhoto}
32
+ <div class="photo">
33
+ <Photo {...coverPhoto} {translateFunc} />
34
+ </div>
35
+ {/if}
36
+ {#if amenities}
37
+ <div class="amenities-container">
38
+ <AmenitiesCore {...amenities.content} {formatFunc} {formatMoneyFunc} {formatDateFunc} />
39
+ </div>
40
+ {/if}
41
+ {#if pricing}
42
+ <div class="pricing-container">
43
+ <PricingShort
44
+ {...pricing.content}
45
+ {translateFunc}
46
+ {formatFunc}
47
+ {formatMoneyFunc}
48
+ {formatDateFunc}
49
+ />
50
+ </div>
51
+ {/if}
52
+ {#if avail}
53
+ <div class="calendar-container">
54
+ <CalendarAvailable
55
+ {...avail.content}
56
+ {translateFunc}
57
+ {formatFunc}
58
+ {formatMoneyFunc}
59
+ {formatDateFunc}
60
+ />
61
+ </div>
67
62
  {/if}
68
63
  </div>
69
64
 
@@ -76,17 +71,17 @@
76
71
  grid-area: first-row-line / start-line / fifth-row-line / middle-line;
77
72
  }
78
73
 
79
- .block-container-0 {
74
+ .amenities-container {
80
75
  grid-area: second-row-line / middle-line / third-row-line / end-line;
81
76
  position: relative;
82
77
  }
83
78
 
84
- .block-container-1 {
79
+ .pricing-container {
85
80
  grid-area: third-row-line / middle-line / fourth-row-line / end-line;
86
81
  position: relative;
87
82
  }
88
83
 
89
- .block-container-2 {
84
+ .calendar-container {
90
85
  grid-area: fourth-row-line / middle-line / fifth-row-line / end-line;
91
86
  position: relative;
92
87
  }
@@ -140,15 +135,15 @@
140
135
  grid-area: first-row-line / start-line / third-row-line / middle-line;
141
136
  }
142
137
 
143
- .block-container-0 {
138
+ .amenities-container {
144
139
  grid-area: second-row-line / middle-line / third-row-line / end-line;
145
140
  }
146
141
 
147
- .block-container-1 {
142
+ .pricing-container {
148
143
  grid-area: third-row-line / start-line / fourth-row-line / middle-line;
149
144
  }
150
145
 
151
- .block-container-2 {
146
+ .calendar-container {
152
147
  grid-area: third-row-line / middle-line / fourth-row-line / end-line;
153
148
  }
154
149
  }
@@ -169,17 +164,17 @@
169
164
  grid-column: 1;
170
165
  }
171
166
 
172
- .block-container-0 {
167
+ .amenities-container {
173
168
  grid-row: auto;
174
169
  grid-column: 1;
175
170
  }
176
171
 
177
- .block-container-1 {
172
+ .pricing-container {
178
173
  grid-row: auto;
179
174
  grid-column: 1;
180
175
  }
181
176
 
182
- .block-container-2 {
177
+ .calendar-container {
183
178
  grid-row: auto;
184
179
  grid-column: 1;
185
180
  }
@@ -149,7 +149,7 @@
149
149
  form {
150
150
  display: flex;
151
151
  flex-direction: column;
152
- justify-content: stretch;
152
+ width: 100%;
153
153
  gap: 0.5rem;
154
154
  }
155
155
 
package/dist/index.d.ts CHANGED
@@ -24,6 +24,6 @@ import Text from './Text.svelte';
24
24
  import Weather from './Weather.svelte';
25
25
  import PageComponent from './PageComponent.svelte';
26
26
  export type { OccuplanTranslations } from './occuplan/state.svelte.ts';
27
- export type { GridPhoto, LeafletMap as LeafletMapI, LeafletMapContent, Calendar as CalendarI, CalendarContent, CalendarAvailable as CalendarAvailableI, CalendarAvailableContent, CalendarGrid as CalendarGridI, CalendarGridContent, CalendarRows as CalendarRowsI, CalendarRowsContent, Text as TextI, TextContent, Weather as WeatherI, WeatherContent, Photo as PhotoI, PhotoContent, PhotoGallery as PhotoGalleryI, PhotoGalleryContent, Pricing as PricingI, PricingContent, PricingShort as PricingShortI, PricingShortContent, PricingEntry, PricingRange, PricingColumn, StaticRangeDate, StaticPricingRange, AmenitiesCore as AmenitiesCoreI, AmenitiesCoreContent, AccoCard as AccoCardI, AccoCardContent, ContactForm as ContactFormI, ContactFormContent, BookingRequest as BookingRequestI, BookingRequestContent, CardContent, AccoDescription as AccoDescriptionI, AccoDescriptionContent, Section as SectionI, I18nFacade, Block, PageProps, Nav as NavI, FormatSpec, FormatTemplateName, SiteConfig, LangConfig, CookieConfig, SiteFonts, SiteTranslation, FontSpec, Hero, } from './types.js';
27
+ export type { GridPhoto, LeafletMap as LeafletMapI, LeafletMapContent, Calendar as CalendarI, CalendarContent, CalendarAvailable as CalendarAvailableI, CalendarAvailableContent, CalendarGrid as CalendarGridI, CalendarGridContent, CalendarRows as CalendarRowsI, CalendarRowsContent, Text as TextI, TextContent, Weather as WeatherI, WeatherContent, Photo as PhotoI, PhotoContent, PhotoGallery as PhotoGalleryI, PhotoGalleryContent, Pricing as PricingI, PricingContent, PricingShort as PricingShortI, PricingShortContent, PricingEntry, PricingRange, PricingColumn, StaticRangeDate, StaticPricingRange, AmenitiesCore as AmenitiesCoreI, AmenitiesCoreContent, AccoCard as AccoCardI, AccoCardContent, ContactForm as ContactFormI, ContactFormContent, BookingRequest as BookingRequestI, BookingRequestContent, AccoDescription as AccoDescriptionI, AccoDescriptionContent, Section as SectionI, I18nFacade, Block, PageProps, Nav as NavI, FormatSpec, FormatTemplateName, SiteConfig, LangConfig, CookieConfig, SiteFonts, SiteTranslation, FontSpec, Hero, } from './types.js';
28
28
  export { PRICING_COLUMNS, BLOCK_KINDS, isAccoCard, isText, isPhoto, isGallery, isLeafletMap, isWeather, isAmenitiesCore, isCalendarAvailable, isCalendar, isCalendarGrid, isCalendarRows, isPricing, isPricingShort, isAccoDescription, isBookingRequest, isContactForm, } from './types.js';
29
29
  export { randomID, randomName, Avatar, Button, Icon, Spinner, TextInput, AccoCard, AccoDescription, AmenitiesCore, Calendar, CalendarAvailable, LeafletMap, Photo, PhotoGallery, Pricing, PricingShort, Section, Text, Weather, BookingRequest, ContactForm, CalendarRows, CalendarGrid, Notes, PageComponent, };
package/dist/types.d.ts CHANGED
@@ -2,6 +2,7 @@ import { type Dinero, type DineroSnapshot } from 'dinero.js';
2
2
  import type { FirstMonth, OccuplanTranslations } from './occuplan/state.svelte.js';
3
3
  import type { DateTime, MonthNumbers, WeekdayNumbers } from 'luxon';
4
4
  import type { CookieType, Translation as CookieTranslation } from 'gdpr-cooco-banner';
5
+ import type { CalendarAvailableI } from './index.ts';
5
6
  export type WeekdayLabels = {
6
7
  [key in WeekdayNumbers]: string;
7
8
  };
@@ -223,13 +224,12 @@ export interface AccoCard {
223
224
  content: AccoCardContent;
224
225
  }
225
226
  export interface AccoCardContent {
226
- cardContent: CardContent;
227
227
  displayName: string;
228
- }
229
- export interface CardContent {
230
228
  coverPhoto: PhotoContent;
231
229
  slug?: string;
232
- blocks: Block[];
230
+ pricing: PricingShort;
231
+ avail: CalendarAvailable;
232
+ amenities: AmenitiesCore;
233
233
  }
234
234
  export interface AccoDescription {
235
235
  id: string;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "accomadesc",
3
- "version": "0.2.10",
3
+ "version": "0.2.12",
4
4
  "scripts": {
5
5
  "dev": "vite dev",
6
6
  "build": "vite build && npm run package",