airport-one-widgets 0.2.96 → 0.2.97

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/README.md CHANGED
@@ -5,6 +5,8 @@
5
5
 
6
6
  **Fly My Airport FAB local demos:** with the widgets dev server running, open [`/demo/fly-my-airport-fab.html`](http://localhost:3001/demo/fly-my-airport-fab.html) (see root [`index.html`](./index.html) for the full demo menu).
7
7
 
8
+ **Demo site:** `npm run build:demo` builds the demo pages into `demo-dist/` as a static site against the dev APIs (`https://dev-api.airportonellc.com`), so instance embeds load instances saved in the dev portal. [`vercel.json`](./vercel.json) deploys it: create a Vercel project with root directory `apps/airport-one-widgets` and set `FONTAWESOME_NPM_AUTH_TOKEN` and `VITE_FMA_API_DOMAIN` (the dev FMA site); `VITE_WIDGET_PUBLIC_CONFIG_API_BASE_URL` and `VITE_FIDS_WIDGET_API_BASE_URL` override the dev API. Open the airfare search demo with `?instance=<id>` to show a dev-portal instance; the site's domain must be in that airport's allowed embed domains.
9
+
8
10
  ## Releases and channels
9
11
 
10
12
  Airports load the bundle through `widgets.flymyairport.com`, which serves one
@@ -56,10 +58,43 @@ Required for managed instances:
56
58
  - `data-widget-instance-id`
57
59
 
58
60
  `origin` and `destination` are resolved per field: a host attribute overrides the saved
59
- instance config for that field only, and whichever value survives renders as a locked
60
- (read-only) input. Adding a `destination` attribute to an instance whose config sets an
61
- origin leaves that origin locked; the origin field only stays editable when no layer
62
- supplies one.
61
+ instance config for that field only. The card is about one airport, named in its header
62
+ with a Fly Out / Fly In toggle: the `origin` when set (a `destination` alongside it renders
63
+ as a locked field), otherwise a lone `destination` (the card opens on Fly In), otherwise
64
+ the subscribing airport.
65
+
66
+ ### Design and behavior (FMA Search 2.0, AIR-1722)
67
+
68
+ - **Destination**: empty, it lists every nonstop from the airport's published schedule
69
+ (`GET /v1/iata-auto-complete` on widget-api). Typing matches city, airport code, state
70
+ and country, nonstops first, then "search everywhere" KAYAK places with their nearby
71
+ airports. `autocomplete-type="schedule_data"` and airline-restricted embeds keep typed
72
+ results to the airport's own network.
73
+ - **Dates**: one field and a two-month calendar (one on narrow cards). With a destination
74
+ chosen, each day carries a nonstop bar or a one-stop bar with a dot, per day from
75
+ `GET /v1/route-calendar-month`, and months without the nonstop say so. The calendar stays
76
+ open with the range on wide cards and closes after the last date on narrow ones.
77
+ - **Trip type**, **travelers** (one count, 1–9, booked as adults) and **cabin** are menus above
78
+ the fields, as on the earlier widget; the Search button turns the accent color once the
79
+ form is complete and validates inline otherwise.
80
+ - **Search** opens the redirect worker link, which attributes the click-out and builds the
81
+ KAYAK results URL (cabin, travelers, nearby dates).
82
+ **Car** links FlyMyAirport's car rental page for the airport in a new tab, as the earlier
83
+ widget did.
84
+
85
+ | Attribute | Default | Description |
86
+ | ----------------- | --------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------- |
87
+ | `skin` | `site` when `theme="dark"`, otherwise `light` | `site` (flymyairport.com dark glass), `light` (white card), `dark`, `brand` (tinted by `primary-color`), `none` (no card; the host supplies contrast) |
88
+ | `labels` | `inside` | `outside` renders a visible label above each field for airports that need them |
89
+ | `market-name` | `{City} ({IATA})` | The airport's display name in the header (AIR-1585) |
90
+ | `primary-color` | `#0745A2` | Calendar route bar, destination tiles |
91
+ | `secondary-color` | `#FC6322` | One-stop dot, nonstop dots and badge, Search once complete, focus ring |
92
+ | `hide-branding` | `false` | Hides the FlyMyAirport wordmark and Powered by KAYAK |
93
+ | `hide-fma-logo` | `false` | Hides only the FlyMyAirport wordmark; Powered by KAYAK stays. In the portal only Airport One administrators can set it |
94
+ | `hide-car-button` | `false` | Hides the Flights / Car links |
95
+
96
+ Styling hooks: the `airfare-search-card` and `airfare-search-button` parts, and an
97
+ `--afs-font-family` custom property (the card otherwise inherits the host page's font).
63
98
 
64
99
  ## Airfare Content
65
100