willba-component-library 0.3.27 → 0.4.0

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.
Files changed (159) hide show
  1. package/README.md +75 -113
  2. package/lib/components/FilterBar/FilterBar.d.ts +1 -1
  3. package/lib/components/FilterCalendar/FilterCalendar.d.ts +1 -1
  4. package/lib/core/i18n/I18nProvider.d.ts +6 -0
  5. package/lib/core/i18n/index.d.ts +1 -0
  6. package/lib/embed.d.ts +18 -0
  7. package/lib/embed.esm.js +74 -0
  8. package/lib/embed.esm.js.map +1 -0
  9. package/lib/embed.umd.js +74 -0
  10. package/lib/embed.umd.js.map +1 -0
  11. package/lib/i18n.d.ts +2 -2
  12. package/lib/index.d.ts +2 -2
  13. package/lib/index.esm.js +1111 -930
  14. package/lib/index.esm.js.map +1 -1
  15. package/lib/index.js +1110 -929
  16. package/lib/index.js.map +1 -1
  17. package/package.json +9 -1
  18. package/.nvmrc +0 -1
  19. package/.storybook/main.ts +0 -17
  20. package/.storybook/preview.ts +0 -15
  21. package/lib/components/FilterBar/components/buttons/index.d.ts +0 -4
  22. package/lib/components/FilterBar/components/buttons/select-button/SelectButton.d.ts +0 -13
  23. package/lib/components/FilterBar/components/buttons/tab-button/TabButton.d.ts +0 -10
  24. package/lib/components/FilterBar/components/cards/image-card/ImageCard.d.ts +0 -11
  25. package/lib/components/FilterBar/components/cards/index.d.ts +0 -1
  26. package/lib/components/FilterBar/components/categories/Categories.d.ts +0 -8
  27. package/lib/components/FilterBar/components/common/FilterSectionHeader.d.ts +0 -8
  28. package/lib/components/FilterBar/components/dates/Dates.d.ts +0 -17
  29. package/lib/components/FilterBar/components/dates/index.d.ts +0 -1
  30. package/lib/components/FilterBar/components/guests/GuestCount/GuestCount.d.ts +0 -4
  31. package/lib/components/FilterBar/components/guests/Guests.d.ts +0 -12
  32. package/lib/components/FilterBar/components/locations/Locations.d.ts +0 -14
  33. package/lib/components/FilterBar/hooks/useFilterBar.d.ts +0 -32
  34. package/lib/components/FilterBar/hooks/useFilterUi.d.ts +0 -8
  35. package/lib/components/FilterBar/utils/calculateDropdownPosition.d.ts +0 -12
  36. package/lib/components/FilterBar/utils/getLocalizedContent.d.ts +0 -8
  37. package/lib/core/components/buttons/close-button/CloseButton.d.ts +0 -7
  38. package/lib/core/components/buttons/submit-button/SubmitButton.d.ts +0 -14
  39. package/lib/index.umd.js +0 -12489
  40. package/lib/index.umd.js.map +0 -1
  41. package/prettier.config.js +0 -6
  42. package/rollup.config.mjs +0 -63
  43. package/src/assets/IconsSvg.tsx +0 -69
  44. package/src/components/Button/Button.stories.tsx +0 -34
  45. package/src/components/Button/Button.tsx +0 -56
  46. package/src/components/Button/button.css +0 -30
  47. package/src/components/Button/index.ts +0 -1
  48. package/src/components/FilterBar/FilterBar.css +0 -35
  49. package/src/components/FilterBar/FilterBar.stories.tsx +0 -116
  50. package/src/components/FilterBar/FilterBar.tsx +0 -64
  51. package/src/components/FilterBar/FilterBarTypes.ts +0 -71
  52. package/src/components/FilterBar/components/Divider/Divider.css +0 -14
  53. package/src/components/FilterBar/components/Divider/Divider.tsx +0 -7
  54. package/src/components/FilterBar/components/FilterControls/FilterControls.css +0 -22
  55. package/src/components/FilterBar/components/FilterControls/FilterControls.tsx +0 -139
  56. package/src/components/FilterBar/components/FilterPanels/Categories/Categories.css +0 -21
  57. package/src/components/FilterBar/components/FilterPanels/Categories/Categories.tsx +0 -49
  58. package/src/components/FilterBar/components/FilterPanels/Dates/Dates.css +0 -9
  59. package/src/components/FilterBar/components/FilterPanels/Dates/Dates.tsx +0 -60
  60. package/src/components/FilterBar/components/FilterPanels/FilterPanels.css +0 -22
  61. package/src/components/FilterBar/components/FilterPanels/FilterPanels.tsx +0 -111
  62. package/src/components/FilterBar/components/FilterPanels/Guests/GuestCount/GuestCount.css +0 -58
  63. package/src/components/FilterBar/components/FilterPanels/Guests/GuestCount/GuestCount.tsx +0 -85
  64. package/src/components/FilterBar/components/FilterPanels/Guests/Guests.css +0 -24
  65. package/src/components/FilterBar/components/FilterPanels/Guests/Guests.tsx +0 -59
  66. package/src/components/FilterBar/components/FilterPanels/Locations/Locations.css +0 -16
  67. package/src/components/FilterBar/components/FilterPanels/Locations/Locations.tsx +0 -94
  68. package/src/components/FilterBar/components/FilterPanels/SectionHeader/SectionHeader.css +0 -34
  69. package/src/components/FilterBar/components/FilterPanels/SectionHeader/SectionHeader.tsx +0 -17
  70. package/src/components/FilterBar/components/FilterTabs/FilterTabs.css +0 -10
  71. package/src/components/FilterBar/components/FilterTabs/FilterTabs.tsx +0 -50
  72. package/src/components/FilterBar/components/ImageCard/ImageCard.css +0 -30
  73. package/src/components/FilterBar/components/ImageCard/ImageCard.tsx +0 -45
  74. package/src/components/FilterBar/components/SelectButton/SelectButton.css +0 -76
  75. package/src/components/FilterBar/components/SelectButton/SelectButton.tsx +0 -54
  76. package/src/components/FilterBar/components/TabButton/TabButton.css +0 -36
  77. package/src/components/FilterBar/components/TabButton/TabButton.tsx +0 -23
  78. package/src/components/FilterBar/components/index.ts +0 -6
  79. package/src/components/FilterBar/hooks/index.ts +0 -5
  80. package/src/components/FilterBar/hooks/useFilterActions.tsx +0 -126
  81. package/src/components/FilterBar/hooks/useFilterRefs.tsx +0 -21
  82. package/src/components/FilterBar/hooks/useFilterState.tsx +0 -86
  83. package/src/components/FilterBar/hooks/usePanelPosition.tsx +0 -52
  84. package/src/components/FilterBar/hooks/useScrollInToView.tsx +0 -29
  85. package/src/components/FilterBar/index.ts +0 -3
  86. package/src/components/FilterBar/providers/FilterBarProvider.tsx +0 -172
  87. package/src/components/FilterBar/providers/index.ts +0 -1
  88. package/src/components/FilterBar/utils/ageCategoriesRules.ts +0 -27
  89. package/src/components/FilterBar/utils/index.tsx +0 -3
  90. package/src/components/FilterBar/utils/parseGuests.tsx +0 -65
  91. package/src/components/FilterBar/utils/parseLocations.ts +0 -28
  92. package/src/components/FilterCalendar/FilterCalendar.css +0 -109
  93. package/src/components/FilterCalendar/FilterCalendar.stories.tsx +0 -554
  94. package/src/components/FilterCalendar/FilterCalendar.tsx +0 -115
  95. package/src/components/FilterCalendar/FilterCalendarTypes.ts +0 -11
  96. package/src/components/FilterCalendar/components/Footer.tsx +0 -96
  97. package/src/components/FilterCalendar/hooks/useFilterCalendar.ts +0 -163
  98. package/src/components/FilterCalendar/index.ts +0 -3
  99. package/src/core/components/buttons/CloseButton/CloseButton.css +0 -33
  100. package/src/core/components/buttons/CloseButton/CloseButton.tsx +0 -16
  101. package/src/core/components/buttons/SubmitButton/SubmitButton.css +0 -54
  102. package/src/core/components/buttons/SubmitButton/SubmitButton.tsx +0 -42
  103. package/src/core/components/calendar/Calendar.css +0 -280
  104. package/src/core/components/calendar/Calendar.tsx +0 -253
  105. package/src/core/components/calendar/CalendarTypes.ts +0 -48
  106. package/src/core/components/calendar/hooks/index.ts +0 -3
  107. package/src/core/components/calendar/hooks/useCalendarLoadingSpinner.tsx +0 -19
  108. package/src/core/components/calendar/hooks/useCalendarTooltips.tsx +0 -125
  109. package/src/core/components/calendar/hooks/useUpdateDisabledDates.tsx +0 -105
  110. package/src/core/components/calendar/utils/calendarSelectionRules.tsx +0 -180
  111. package/src/core/components/calendar/utils/checkForContinuousSelection.tsx +0 -86
  112. package/src/core/components/calendar/utils/disabledDatesByPage.tsx +0 -31
  113. package/src/core/components/calendar/utils/handleCalendarModifiers.tsx +0 -118
  114. package/src/core/components/calendar/utils/handleRangeContextDisabledDates.tsx +0 -75
  115. package/src/core/components/calendar/utils/index.ts +0 -8
  116. package/src/core/components/calendar/utils/nightsCount.tsx +0 -19
  117. package/src/core/components/calendar/utils/parseDate.tsx +0 -17
  118. package/src/core/components/calendar/utils/parseDates.tsx +0 -12
  119. package/src/core/components/index.ts +0 -7
  120. package/src/core/hooks/index.ts +0 -4
  121. package/src/core/hooks/useAutoFocus.tsx +0 -27
  122. package/src/core/hooks/useAwaitRender.tsx +0 -12
  123. package/src/core/hooks/useCloseFilterSection.tsx +0 -29
  124. package/src/core/hooks/useUpdateTranslations.tsx +0 -14
  125. package/src/i18n.ts +0 -27
  126. package/src/index.ts +0 -8
  127. package/src/locales/en/common.json +0 -18
  128. package/src/locales/en/filterBar.json +0 -33
  129. package/src/locales/fi/common.json +0 -19
  130. package/src/locales/fi/filterBar.json +0 -33
  131. package/src/themes/Default.css +0 -69
  132. package/src/themes/useTheme.tsx +0 -27
  133. package/stories/Button.stories.ts +0 -50
  134. package/stories/Button.tsx +0 -53
  135. package/stories/Configure.mdx +0 -364
  136. package/stories/Header.stories.ts +0 -27
  137. package/stories/Header.tsx +0 -70
  138. package/stories/Page.stories.ts +0 -29
  139. package/stories/Page.tsx +0 -91
  140. package/stories/assets/accessibility.png +0 -0
  141. package/stories/assets/accessibility.svg +0 -5
  142. package/stories/assets/addon-library.png +0 -0
  143. package/stories/assets/assets.png +0 -0
  144. package/stories/assets/context.png +0 -0
  145. package/stories/assets/discord.svg +0 -15
  146. package/stories/assets/docs.png +0 -0
  147. package/stories/assets/figma-plugin.png +0 -0
  148. package/stories/assets/github.svg +0 -3
  149. package/stories/assets/share.png +0 -0
  150. package/stories/assets/styling.png +0 -0
  151. package/stories/assets/testing.png +0 -0
  152. package/stories/assets/theming.png +0 -0
  153. package/stories/assets/tutorials.svg +0 -12
  154. package/stories/assets/youtube.svg +0 -4
  155. package/stories/button.css +0 -30
  156. package/stories/header.css +0 -32
  157. package/stories/page.css +0 -69
  158. package/tsconfig.json +0 -29
  159. /package/lib/components/FilterBar/components/{divider → Divider}/Divider.d.ts +0 -0
package/README.md CHANGED
@@ -1,165 +1,127 @@
1
1
  ## Description
2
2
 
3
- Willba Component Library is a custom UI component collection that can be utilized across multiple platforms. It is available as an <a href="https://www.npmjs.com/package/willba-component-library">npm package</a>, or can be used directly through scripts.
3
+ Willba Component Library is a custom UI component collection that can be used across multiple platforms as an [npm package](https://www.npmjs.com/package/willba-component-library) inside a React app, or as a standalone `<script>` snippet on any website.
4
4
 
5
5
  <div style="display: flex; gap: 20px;">
6
- <img src="https://lh3.googleusercontent.com/fife/ALs6j_E9S05-AoxQW3EDUN_R0_CoKocZjB_0SwUe2s04qlzSMBaR18MI_AizFrkKf7JLELYTyzuUTVr5z_IehlqgF_fmQ9MFAhDfm5ATXvL6PjXqK5tClfew0sAXHodybiN2PFhqfmOsikYpaT-NxYBg6ISV8jIjKkXuQCCr7m1_FqqEMDm8zj5s2Gj4Vs8pT42J9pce2Z1ZXnkMMPYiN37cm-ozobzjP4WOA4400RptGwJmqrvKkZxhJcB-Y-ZbifPkuIp9Wzb0FhKFsEe01l6GiGBmQlT7HeuH74N3FnsLx9GVvhbyPWLaaN9H4p7V9WzDwVvMmJWICrhfLxptJn0EYaxuYfkrLbKQsF5NC-3dvk43AGDfHukDphV5AukZBomSGoIqK9d3cdaiT3zctH4ksupAP6lEv2AQgJE0u-_wuSzMW8f5Vn2_rHUhxAXPDYvL1MH6KNv8jI39adbIyeK9xAF1sIpv2rpHtyiJcCTO_xMeJWgKXNKUdh5vAKRS1vzNFBTkQDy-lriFgGUxy3y1BHv0CtCs_l_Cl2B8xqbDXjkGzKJHxR1HYquOI0WZJDVWTrufwarVrXRTlY07VK6UcF6WEFd_UDzS44adkAXD2Vpf_xDTrRsoi0lcRBgctj6MWkEzOJPTQJK014XPROQ_PoF547CN_ht9G3HqITvWB-Bn6OTYWGbfbc4wPR7MB-iWS8XawNLn-TzQhn3ZzB1kLcCc0u9SNjhXGeFvFAcoPll21y1FX85tQYrXlnIzlIikKzAxuKjiNFDC4Bvrj8RarVeTaEcUU5wv6NswE6MJ-mI5_s28AmgoDurW4mAGhJH6f1BhNDAy6E2oz3kB9ezhqUSWfyl6WfO2eQ9oOxg8ib5kmowcE9220FgrW06Tjl75sQrbVEy4dtYWb-OKbfWwaAfFUbn70RoMaClv4x-ilqRcytfUMNsm41hETt9tbJvRnneBQaZ_ZudwxZvOrILOjXVIf5v5vKLhmSnte9d9DScxT5sdACCCYmZxVafzJxfX1Jew1O8b1nh7lsxD62Pd3HCgUQoaMWLRx2EZBZeL-IkWS-IJRtcd_cN0Mg0Rzk9X-OZZ1YomoAZVH6d7Bg1PxlT9205BuvFTxLyvUZ0wk4FHP40bTMd4_PN1Qt9LCSm3fxZCCBSbF8szl_NT-9bC2iY2fvAVCX4ZPeqKiS6RCi4Gf8C-WDOGusQj5SDestBh8wEbWvgP7C0e20pXUzj94vyAlFCEL0rIdopGzerPT5BS7TNqeKtZNnh-dVgUfGsbp81K03LqbW3cx14JAmB6Z_j7QOrwVC-qrzcbgmP1_DG1Q7VsPki8yJ0JUWzoTgHCk8Shbuhqy3uvfvNwdJlf2YkTejKQIIOy8zeSO7Xja65PF8VYaV-wadRchVku1YSOVNjyVOjYWSQAAFJP-BUczh0_pvXw3TXs_S_TEtq50AgNGRiq_Kex4uxeapDzaWjy3xMwod-M5ewz6zuTS2PMRkl57oN904ebC-2fScIKUZDBJ87IcwL7dq1IGaUOdb5FKcB8Bat8nxhNDVGEG_o6dCQmgUwXGt1HyHhrmXnEheLzPLDG3ePIpZz6u4UFb3d92yxqX9_5KSFFRHdM69U6FC01SiPe2OUKwPQ-ISDd_ETIyvNWLsh-NzsEYzs3RIAVOjBxKRDmA7Jboeet6g" alt="Filter Bar Calendar" style="width: auto; max-width: 50%;">
6
+ <img src="https://lh3.googleusercontent.com/d/1n5U0vBMseBci4xV5wH8vApeAcRjcyos_" alt="Filter Bar Calendar" style="width: auto; max-width: 50%;">
7
7
  <img src="https://lh3.googleusercontent.com/d/1KCTqGgM2IZDY2nZ1ZTDf9WgX_zhmVB6D" alt="Filter Bar Guests" style="width: auto; max-width: 50%;">
8
8
  </div>
9
9
 
10
- ## React usage
10
+ ## Components
11
11
 
12
- ### Install the package:
12
+ | HTML tag | React component |
13
+ | --------------------- | --------------- |
14
+ | `<willba-filter-bar>` | `FilterBar` |
15
+
16
+ ## Use in a React app
17
+
18
+ Install:
13
19
 
14
20
  ```sh
15
- // with npm
16
21
  npm install willba-component-library
17
-
18
- // with yarn
22
+ # or
19
23
  yarn add willba-component-library
20
24
  ```
21
25
 
22
- ### Import and use the package:
26
+ Import and render:
23
27
 
24
28
  ```jsx
25
- import React from 'react'
26
- import ReactDOM from 'react-dom'
27
29
  import { FilterBar } from 'willba-component-library'
28
30
 
29
- function App() {
31
+ export function MyPage() {
30
32
  return (
31
33
  <FilterBar
32
- redirectUrl={'https://store.vendor.willba.app/'}
33
- language={'en'}
34
- disableCalendarDates={{
35
- disabledDatesByPage: [
36
- {
37
- offset: 7,
38
- page: '/rooms',
39
- },
40
- {
41
- offset: -1,
42
- page: '/events',
43
- },
44
- ],
45
- }}
46
- mode={'dark'}
47
- ageCategories={[
48
- {
49
- id: '2',
50
- name: 'Alle 6 vuotiaat',
51
- minVal: 0,
52
- sortOrder: 3,
53
- },
54
- {
55
- id: '3',
56
- name: '6-16 vuotiaat',
57
- minVal: 0,
58
- sortOrder: 2,
59
- },
60
- {
61
- id: '1',
62
- name: 'Aikuiset',
63
- minVal: 1,
64
- sortOrder: 1,
65
- },
66
- ]}
34
+ redirectUrl="https://store.vendor.willba.app/"
35
+ language="en"
36
+ mode="dark"
67
37
  tabs={[
68
- {
69
- label: 'Rooms',
70
- path: '/rooms',
71
- default: true,
72
- order: 2,
73
- },
74
- {
75
- label: 'Events',
76
- path: '/events',
77
- default: false,
78
- order: 1,
79
- },
38
+ { label: 'Rooms', path: '/rooms', default: true, order: 1 },
39
+ { label: 'Events', path: '/events', default: false, order: 2 },
40
+ ]}
41
+ ageCategories={[
42
+ { id: '1', name: 'Adults', minVal: 1, sortOrder: 1 },
43
+ { id: '2', name: 'Children', minVal: 0, sortOrder: 2 },
80
44
  ]}
81
45
  locations={{
82
46
  multiSelect: false,
83
- disabled: false,
84
- data: [
85
- {
86
- id: 1,
87
- label: 'Helsinki',
88
- description: 'Capital of Finland',
89
- imageUrl: 'https://example.com/helsinki.jpg',
90
- },
91
- ],
47
+ data: [{ id: 1, label: 'Helsinki', description: 'Capital of Finland' }],
92
48
  }}
93
49
  />
94
50
  )
95
51
  }
96
-
97
- ReactDOM.render(<App />, document.querySelector('#app'))
98
52
  ```
99
53
 
100
- ## Script usage
54
+ See [FilterBar props](#filterbar-props) for all available props. TypeScript types are exported as `FilterBarTypes` and `FilterCalendarTypes`.
55
+
56
+ ## Use as a script tag (WordPress, plain HTML, anywhere)
57
+
58
+ Drop one HTML tag and one script tag onto any page:
101
59
 
102
60
  ```html
103
- <div
104
- id="will-filter-bar"
105
- style="display: flex; justify-content: center; margin-bottom: 50px"
106
- ></div>
61
+ <willba-filter-bar id="will-filter-bar"></willba-filter-bar>
107
62
 
108
- <script src="https://unpkg.com/react@18.3.1/umd/react.production.min.js"></script>
109
- <script src="https://unpkg.com/react-dom@18.3.1/umd/react-dom.production.min.js"></script>
110
- <script src="https://cdn.jsdelivr.net/npm/willba-component-library@0.3.27/lib/index.umd.js"></script>
63
+ <script src="https://cdn.jsdelivr.net/npm/willba-component-library@0.4.0/lib/embed.umd.js"></script>
111
64
 
112
65
  <script>
113
- const renderFilterBar = async () => {
114
- try {
115
- // Specify domain in order to get the correct filter banner config
116
- const domain = 'customer.willba.store'
117
- // Set mode to "dark" or "light" for filter bar style color background
118
- const mode = 'dark'
119
- // Add fallback locale in case navigator.language is not available
120
- const fallbackLocale = 'fi'
121
- // Set request timeout in milliseconds
122
- const requestTimeout = 10000
66
+ document.getElementById('will-filter-bar').props = {
67
+ redirectUrl: 'https://store.vendor.willba.app/',
68
+ language: 'en',
69
+ mode: 'dark',
70
+ tabs: [{ label: 'Rooms', path: '/rooms', default: true, order: 1 }],
71
+ ageCategories: [{ id: '1', name: 'Adults', minVal: 1, sortOrder: 1 }],
72
+ locations: { multiSelect: false, data: [{ id: 1, label: 'Helsinki' }] },
73
+ }
74
+ </script>
75
+ ```
123
76
 
124
- const locale = (navigator.language || fallbackLocale).split('-')[0]
125
- const url = `https://${domain}/api/services/filter-bar-config?locale=${locale}`
77
+ The custom element mounts inside an isolated Shadow DOM. React, ReactDOM, i18n, and all CSS are bundled inside the script — nothing on the host page can interfere with it, and it cannot interfere with the host page.
126
78
 
127
- const response = await fetch(url, {
128
- method: 'GET',
129
- headers: { Accept: 'application/json' },
130
- signal: AbortSignal.timeout(requestTimeout),
131
- })
79
+ ### Passing props
132
80
 
133
- if (!response.ok) return
81
+ Use the `.props` setter to pass any prop the React component accepts. Re-assigning `.props` re-renders the element. Setting `.props` before the element upgrades is safe — the value is buffered and applied automatically.
134
82
 
135
- const { filterBarConfig } = await response.json()
136
- if (!filterBarConfig) return
83
+ ```js
84
+ const el = document.getElementById('will-filter-bar')
85
+ el.props = { ...el.props, language: 'fi' } // switch language at runtime
86
+ ```
137
87
 
138
- const filterBarContainer = document.getElementById('will-filter-bar')
139
- const WillbaFilterBar = WillbaComponentLibrary?.FilterBar
88
+ ### Loading config from an API
140
89
 
141
- if (!filterBarContainer || !WillbaFilterBar) return
90
+ Common pattern when the snippet sits on a customer site and the prop config lives on a backend:
142
91
 
143
- const root = ReactDOM.createRoot(filterBarContainer)
144
- root.render(
145
- React.createElement(WillbaFilterBar, {
146
- ...filterBarConfig,
147
- redirectUrl: `https://${domain}`,
148
- mode,
149
- })
92
+ ```html
93
+ <willba-filter-bar id="will-filter-bar"></willba-filter-bar>
94
+ <script src="https://cdn.jsdelivr.net/npm/willba-component-library@0.4.0/lib/embed.umd.js"></script>
95
+ <script>
96
+ ;(async () => {
97
+ try {
98
+ const domain = 'customer.willba.store'
99
+ const locale = (navigator.language || 'fi').split('-')[0]
100
+ const res = await fetch(
101
+ `https://${domain}/api/services/filter-bar-config?locale=${locale}`,
102
+ {
103
+ headers: { Accept: 'application/json' },
104
+ signal: AbortSignal.timeout(10000),
105
+ }
150
106
  )
107
+ if (!res.ok) return
108
+
109
+ const { filterBarConfig } = await res.json()
110
+ if (!filterBarConfig) return
111
+
112
+ document.getElementById('will-filter-bar').props = {
113
+ ...filterBarConfig,
114
+ redirectUrl: `https://${domain}`,
115
+ mode: 'dark',
116
+ }
151
117
  } catch (error) {
152
118
  console.error('Failed to render filter bar:', error)
153
119
  }
154
- }
155
-
156
- window.addEventListener('DOMContentLoaded', () => {
157
- renderFilterBar()
158
- })
120
+ })()
159
121
  </script>
160
122
  ```
161
123
 
162
- ## Props of FilterBar
124
+ ## FilterBar props
163
125
 
164
126
  | Name | Value | Description |
165
127
  | -------------------- | ---------- | ---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
@@ -2,4 +2,4 @@ import React from 'react';
2
2
  import { FilterBarTypes } from './FilterBarTypes';
3
3
  import '../../themes/Default.css';
4
4
  import './FilterBar.css';
5
- export declare const FilterBar: ({ language, ageCategories, redirectUrl, palette, onSubmit, fullWidth, disableCalendarDates, mode, tabs, outerLoading, locations, }: FilterBarTypes) => React.JSX.Element;
5
+ export declare const FilterBar: (props: FilterBarTypes) => React.JSX.Element;
@@ -2,4 +2,4 @@ import React from 'react';
2
2
  import { FilterCalendarTypes } from './FilterCalendarTypes';
3
3
  import '../../themes/Default.css';
4
4
  import './FilterCalendar.css';
5
- export default function FilterCalendar({ calendarOffset, language, palette, onSubmit, disableCalendarDates: outerDisableCalendarDates, toggleCalendar, loadingData, setToggleCalendar, requestDates, showFeedback, noActiveSelection, rangeContext: outerRangeContext, }: FilterCalendarTypes): React.JSX.Element;
5
+ export default function FilterCalendar(props: FilterCalendarTypes): React.JSX.Element;
@@ -0,0 +1,6 @@
1
+ import React, { PropsWithChildren } from 'react';
2
+ type Props = PropsWithChildren<{
3
+ language?: string;
4
+ }>;
5
+ export declare const I18nProvider: ({ language, children }: Props) => React.JSX.Element;
6
+ export {};
@@ -0,0 +1 @@
1
+ export { I18nProvider } from './I18nProvider';
package/lib/embed.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ import React from 'react';
2
+ import { FilterBarTypes } from './components/FilterBar/FilterBarTypes';
3
+ declare abstract class WillbaElement<P extends object> extends HTMLElement {
4
+ private _props;
5
+ private _root;
6
+ private _shadow;
7
+ private _container;
8
+ set props(value: Partial<P>);
9
+ get props(): Partial<P>;
10
+ protected abstract renderReact(props: Partial<P>): React.ReactNode;
11
+ connectedCallback(): void;
12
+ disconnectedCallback(): void;
13
+ private _render;
14
+ }
15
+ export declare class WillbaFilterBarElement extends WillbaElement<FilterBarTypes> {
16
+ protected renderReact(props: Partial<FilterBarTypes>): React.JSX.Element;
17
+ }
18
+ export {};