@purpur/library 9.4.1 → 9.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/CHANGELOG.json +33 -0
- package/CHANGELOG.md +18 -1
- package/dist/LICENSE.txt +8 -1
- package/dist/calendar-BXQ3v62X.js +2 -0
- package/dist/{calendar-CBBV8n3x.js.map → calendar-BXQ3v62X.js.map} +1 -1
- package/dist/{calendar-DEXw83mu.mjs → calendar-d53vgYqR.mjs} +481 -465
- package/dist/{calendar-DEXw83mu.mjs.map → calendar-d53vgYqR.mjs.map} +1 -1
- package/dist/calendar.cjs.js +1 -1
- package/dist/calendar.es.js +3 -3
- package/dist/comparison-table-C74IAVqz.js +2 -0
- package/dist/comparison-table-C74IAVqz.js.map +1 -0
- package/dist/comparison-table-DctKxmX9.mjs +267 -0
- package/dist/comparison-table-DctKxmX9.mjs.map +1 -0
- package/dist/comparison-table.cjs.js +1 -1
- package/dist/comparison-table.es.js +1 -1
- package/dist/components/calendar/src/calendar.d.ts +4 -11
- package/dist/components/calendar/src/calendar.d.ts.map +1 -1
- package/dist/components/comparison-table/src/comparison-table.d.ts.map +1 -1
- package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts +2 -1
- package/dist/components/comparison-table/src/components/OptionCard/option-card.d.ts.map +1 -1
- package/dist/components/comparison-table/src/components/ScrollProgress/scroll-progress.d.ts +1 -2
- package/dist/components/comparison-table/src/components/ScrollProgress/scroll-progress.d.ts.map +1 -1
- package/dist/components/date-field/src/date-field.d.ts.map +1 -1
- package/dist/components/date-picker/src/date-picker.d.ts +11 -2
- package/dist/components/date-picker/src/date-picker.d.ts.map +1 -1
- package/dist/components/date-range-field/src/date-range-field.d.ts +27 -0
- package/dist/components/date-range-field/src/date-range-field.d.ts.map +1 -0
- package/dist/components-metadata.js +10 -0
- package/dist/date-field-BKKty89_.js +2 -0
- package/dist/{date-field-BJaomFjs.js.map → date-field-BKKty89_.js.map} +1 -1
- package/dist/{date-field-D3rTtf9Y.mjs → date-field-Cv5CKR1y.mjs} +276 -268
- package/dist/{date-field-D3rTtf9Y.mjs.map → date-field-Cv5CKR1y.mjs.map} +1 -1
- package/dist/date-field.cjs.js +1 -1
- package/dist/date-field.es.js +1 -1
- package/dist/date-picker-CzxhZxsw.mjs +1611 -0
- package/dist/date-picker-CzxhZxsw.mjs.map +1 -0
- package/dist/date-picker-uyPKJulK.js +2 -0
- package/dist/date-picker-uyPKJulK.js.map +1 -0
- package/dist/date-picker.cjs.js +1 -1
- package/dist/date-picker.es.js +1 -1
- package/dist/date-range-field-CFcjprIl.mjs +142 -0
- package/dist/date-range-field-CFcjprIl.mjs.map +1 -0
- package/dist/date-range-field-D8vLeSwp.js +2 -0
- package/dist/date-range-field-D8vLeSwp.js.map +1 -0
- package/dist/date-range-field.cjs.js +2 -0
- package/dist/date-range-field.cjs.js.map +1 -0
- package/dist/date-range-field.es.js +5 -0
- package/dist/date-range-field.es.js.map +1 -0
- package/dist/{floating-ui.react-dom-gsHLgcoR.mjs → floating-ui.react-dom-EredA301.mjs} +3 -3
- package/dist/{floating-ui.react-dom-gsHLgcoR.mjs.map → floating-ui.react-dom-EredA301.mjs.map} +1 -1
- package/dist/{format-DpkYPs7O.mjs → format-CWOXI-dC.mjs} +8 -8
- package/dist/{format-DpkYPs7O.mjs.map → format-CWOXI-dC.mjs.map} +1 -1
- package/dist/libraries/library/src/date-range-field.d.ts +6 -0
- package/dist/libraries/library/src/date-range-field.d.ts.map +1 -0
- package/dist/libraries/library/src/library.d.ts +1 -0
- package/dist/libraries/library/src/library.d.ts.map +1 -1
- package/dist/library.cjs.js +1 -1
- package/dist/library.es.js +636 -633
- package/dist/library.es.js.map +1 -1
- package/dist/{popover-_xJATlhN.mjs → popover-I26xNbTz.mjs} +2 -2
- package/dist/{popover-_xJATlhN.mjs.map → popover-I26xNbTz.mjs.map} +1 -1
- package/dist/popover.es.js +1 -1
- package/dist/purpur.css +1 -1
- package/dist/{stepper-CNnx_NiR.mjs → stepper-CWR2vGPj.mjs} +2 -2
- package/dist/{stepper-CNnx_NiR.mjs.map → stepper-CWR2vGPj.mjs.map} +1 -1
- package/dist/stepper.es.js +1 -1
- package/dist/{table-D_sdSJyr.mjs → table-g_n68i4s.mjs} +2 -2
- package/dist/{table-D_sdSJyr.mjs.map → table-g_n68i4s.mjs.map} +1 -1
- package/dist/table.es.js +1 -1
- package/dist/{tooltip-VlURN8H3.mjs → tooltip-LU2Cy-QC.mjs} +2 -2
- package/dist/{tooltip-VlURN8H3.mjs.map → tooltip-LU2Cy-QC.mjs.map} +1 -1
- package/dist/tooltip.es.js +1 -1
- package/dist/{zh-TW-oiRD71xW.mjs → zh-TW-DrQ6h7hA.mjs} +2 -2
- package/dist/{zh-TW-oiRD71xW.mjs.map → zh-TW-DrQ6h7hA.mjs.map} +1 -1
- package/package.json +29 -28
- package/src/aliases.ts +7 -0
- package/src/date-range-field.ts +6 -0
- package/src/entries.js +1 -0
- package/src/library.ts +2 -0
- package/dist/calendar-CBBV8n3x.js +0 -2
- package/dist/comparison-table-8bOJmz-L.mjs +0 -275
- package/dist/comparison-table-8bOJmz-L.mjs.map +0 -1
- package/dist/comparison-table-mKL2IHXW.js +0 -2
- package/dist/comparison-table-mKL2IHXW.js.map +0 -1
- package/dist/date-field-BJaomFjs.js +0 -2
- package/dist/date-picker-CbUNbOhn.mjs +0 -1415
- package/dist/date-picker-CbUNbOhn.mjs.map +0 -1
- package/dist/date-picker-DYXNB5aU.js +0 -2
- package/dist/date-picker-DYXNB5aU.js.map +0 -1
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@purpur/library",
|
|
3
|
-
"version": "9.4.
|
|
3
|
+
"version": "9.4.3",
|
|
4
4
|
"license": "AGPL-3.0-only",
|
|
5
5
|
"sideEffects": [
|
|
6
6
|
"*.css",
|
|
@@ -89,7 +89,7 @@
|
|
|
89
89
|
"devDependencies": {
|
|
90
90
|
"@microsoft/api-extractor": "7.58.7",
|
|
91
91
|
"@microsoft/rush-lib": "5.175.1",
|
|
92
|
-
"@storybook/react-vite": "10.
|
|
92
|
+
"@storybook/react-vite": "10.4.0",
|
|
93
93
|
"@testing-library/dom": "10.4.1",
|
|
94
94
|
"@types/node": "24.10.9",
|
|
95
95
|
"change-case": "5.4.4",
|
|
@@ -99,82 +99,83 @@
|
|
|
99
99
|
"prettier": "2.8.8",
|
|
100
100
|
"react-dom": "19.2.4",
|
|
101
101
|
"react": "19.2.4",
|
|
102
|
-
"storybook": "10.
|
|
102
|
+
"storybook": "10.4.0",
|
|
103
103
|
"tsx": "4.21.0",
|
|
104
104
|
"typescript": "5.9.3",
|
|
105
105
|
"vite-plugin-dts": "4.5.4",
|
|
106
106
|
"vite-plugin-static-copy": "3.1.6",
|
|
107
107
|
"vite": "7.3.2",
|
|
108
108
|
"shx": "0.4.0",
|
|
109
|
-
"@purpur/accordion": "8.21.0",
|
|
110
109
|
"@purpur/action": "8.21.0",
|
|
111
110
|
"@purpur/badge": "8.21.0",
|
|
112
|
-
"@purpur/autocomplete": "8.21.0",
|
|
113
111
|
"@purpur/alert-badge": "8.21.0",
|
|
112
|
+
"@purpur/accordion": "8.21.0",
|
|
113
|
+
"@purpur/autocomplete": "8.21.0",
|
|
114
114
|
"@purpur/breadcrumbs": "8.21.0",
|
|
115
115
|
"@purpur/button": "8.21.0",
|
|
116
116
|
"@purpur/calendar": "8.21.0",
|
|
117
117
|
"@purpur/card": "8.21.0",
|
|
118
|
-
"@purpur/checkbox": "8.21.0",
|
|
119
118
|
"@purpur/chip-group": "8.21.0",
|
|
119
|
+
"@purpur/checkbox": "8.21.0",
|
|
120
|
+
"@purpur/common-types": "8.21.0",
|
|
120
121
|
"@purpur/color-dot": "8.21.0",
|
|
122
|
+
"@purpur/countdown": "8.21.0",
|
|
121
123
|
"@purpur/component-rig": "1.0.0",
|
|
122
|
-
"@purpur/common-types": "8.21.0",
|
|
123
|
-
"@purpur/container": "8.21.0",
|
|
124
124
|
"@purpur/content-block": "8.21.0",
|
|
125
|
-
"@purpur/
|
|
126
|
-
"@purpur/date-field": "8.21.0",
|
|
125
|
+
"@purpur/container": "8.21.0",
|
|
127
126
|
"@purpur/counter-badge": "8.21.0",
|
|
128
|
-
"@purpur/date-picker": "8.21.0",
|
|
129
127
|
"@purpur/cta-link": "8.21.0",
|
|
130
|
-
"@purpur/field
|
|
131
|
-
"@purpur/
|
|
128
|
+
"@purpur/date-field": "8.21.0",
|
|
129
|
+
"@purpur/date-picker": "8.21.0",
|
|
132
130
|
"@purpur/dismissable-chip-group": "8.21.0",
|
|
131
|
+
"@purpur/drawer": "8.21.0",
|
|
132
|
+
"@purpur/field-error-text": "8.21.0",
|
|
133
133
|
"@purpur/field-helper-text": "8.21.0",
|
|
134
134
|
"@purpur/footer": "8.21.0",
|
|
135
|
-
"@purpur/grid": "8.21.0",
|
|
136
135
|
"@purpur/heading": "8.21.0",
|
|
137
136
|
"@purpur/hero-banner": "8.21.0",
|
|
137
|
+
"@purpur/grid": "8.21.0",
|
|
138
138
|
"@purpur/icon": "8.21.0",
|
|
139
139
|
"@purpur/illustrative-icon": "8.21.0",
|
|
140
140
|
"@purpur/label": "8.21.0",
|
|
141
|
-
"@purpur/listbox": "8.21.0",
|
|
142
141
|
"@purpur/link": "8.21.0",
|
|
143
142
|
"@purpur/logo": "8.21.0",
|
|
144
|
-
"@purpur/
|
|
143
|
+
"@purpur/listbox": "8.21.0",
|
|
145
144
|
"@purpur/notification-banner": "8.21.0",
|
|
146
|
-
"@purpur/
|
|
145
|
+
"@purpur/modal": "8.21.0",
|
|
147
146
|
"@purpur/notification": "8.21.0",
|
|
147
|
+
"@purpur/pagination": "8.21.0",
|
|
148
148
|
"@purpur/paragraph": "8.21.0",
|
|
149
149
|
"@purpur/password-field": "8.21.0",
|
|
150
|
-
"@purpur/popover": "8.21.0",
|
|
151
150
|
"@purpur/product-card": "8.21.0",
|
|
152
|
-
"@purpur/promotion-card": "8.21.0",
|
|
153
151
|
"@purpur/quantity-selector": "8.21.0",
|
|
154
|
-
"@purpur/
|
|
152
|
+
"@purpur/promotion-card": "8.21.0",
|
|
155
153
|
"@purpur/radio-button-group": "8.21.0",
|
|
156
|
-
"@purpur/
|
|
154
|
+
"@purpur/popover": "8.21.0",
|
|
157
155
|
"@purpur/rich-text": "8.21.0",
|
|
156
|
+
"@purpur/search-field": "8.21.0",
|
|
157
|
+
"@purpur/radio-card-group": "8.21.0",
|
|
158
|
+
"@purpur/slider": "8.21.0",
|
|
158
159
|
"@purpur/select": "8.21.0",
|
|
159
160
|
"@purpur/skeleton": "8.21.0",
|
|
160
|
-
"@purpur/slider": "8.21.0",
|
|
161
161
|
"@purpur/spinner": "8.21.0",
|
|
162
|
-
"@purpur/spacer": "8.21.0",
|
|
163
162
|
"@purpur/stepper": "8.21.0",
|
|
164
|
-
"@purpur/table": "8.21.0",
|
|
165
163
|
"@purpur/tabs": "8.21.0",
|
|
164
|
+
"@purpur/spacer": "8.21.0",
|
|
165
|
+
"@purpur/table": "8.21.0",
|
|
166
166
|
"@purpur/text-area": "8.21.0",
|
|
167
167
|
"@purpur/text-field": "8.21.0",
|
|
168
|
+
"@purpur/toggle": "8.21.0",
|
|
168
169
|
"@purpur/text-spacing": "8.21.0",
|
|
169
170
|
"@purpur/theme": "8.21.0",
|
|
170
|
-
"@purpur/toggle": "8.21.0",
|
|
171
171
|
"@purpur/tokens": "8.21.0",
|
|
172
|
-
"@purpur/visually-hidden": "8.21.0",
|
|
173
172
|
"@purpur/tooltip": "8.21.0",
|
|
174
|
-
"@purpur/
|
|
173
|
+
"@purpur/visually-hidden": "8.21.0",
|
|
174
|
+
"@purpur/chat-field": "9.4.2",
|
|
175
175
|
"@purpur/dropdown": "0.1.0",
|
|
176
176
|
"@purpur/carousel": "8.21.0",
|
|
177
|
-
"@purpur/comparison-table": "8.21.0"
|
|
177
|
+
"@purpur/comparison-table": "8.21.0",
|
|
178
|
+
"@purpur/date-range-field": "8.21.0"
|
|
178
179
|
},
|
|
179
180
|
"peerDependencies": {
|
|
180
181
|
"@types/react": "^18 || ^19",
|
package/src/aliases.ts
CHANGED
|
@@ -96,6 +96,13 @@ export const aliases = [
|
|
|
96
96
|
find: /^@purpur\/date-picker$/,
|
|
97
97
|
replacement: resolve(__dirname, "../../../components/date-picker/src/date-picker.tsx"),
|
|
98
98
|
},
|
|
99
|
+
{
|
|
100
|
+
find: /^@purpur\/date-range-field$/,
|
|
101
|
+
replacement: resolve(
|
|
102
|
+
__dirname,
|
|
103
|
+
"../../../components/date-range-field/src/date-range-field.tsx"
|
|
104
|
+
),
|
|
105
|
+
},
|
|
99
106
|
{
|
|
100
107
|
find: /^@purpur\/dismissable-chip-group$/,
|
|
101
108
|
replacement: resolve(
|
package/src/entries.js
CHANGED
package/src/library.ts
CHANGED
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";const se=require("react/jsx-runtime"),c=require("react"),Ye=require("./button-DmybVApa.js"),Et=require("./chevron-left.es-B0vPg5XM.js"),Tt=require("./chevron-right.es-Bv376M3o.js"),D=require("./format-CFKKBdIQ.js");function Yt(e,t,o="long"){return new Intl.DateTimeFormat("en-US",{hour:"numeric",timeZone:e,timeZoneName:o}).format(t).split(/\s/g).slice(2).join(" ")}const xt={},re={};function ee(e,t){try{const n=(xt[e]||=new Intl.DateTimeFormat("en-US",{timeZone:e,timeZoneName:"longOffset"}).format)(t).split("GMT")[1];return n in re?re[n]:xe(n,n.split(":"))}catch{if(e in re)return re[e];const o=e?.match(Bt);return o?xe(e,o.slice(1)):NaN}}const Bt=/([+-]\d\d):?(\d\d)?/;function xe(e,t){const o=+(t[0]||0),n=+(t[1]||0),s=+(t[2]||0)/60;return re[e]=o*60+n>0?o*60+n+s:o*60-n-s}class G extends Date{constructor(...t){super(),t.length>1&&typeof t[t.length-1]=="string"&&(this.timeZone=t.pop()),this.internal=new Date,isNaN(ee(this.timeZone,this))?this.setTime(NaN):t.length?typeof t[0]=="number"&&(t.length===1||t.length===2&&typeof t[1]!="number")?this.setTime(t[0]):typeof t[0]=="string"?this.setTime(+new Date(t[0])):t[0]instanceof Date?this.setTime(+t[0]):(this.setTime(+new Date(...t)),Ae(this),ge(this)):this.setTime(Date.now())}static tz(t,...o){return o.length?new G(...o,t):new G(Date.now(),t)}withTimeZone(t){return new G(+this,t)}getTimezoneOffset(){const t=-ee(this.timeZone,this);return t>0?Math.floor(t):Math.ceil(t)}setTime(t){return Date.prototype.setTime.apply(this,arguments),ge(this),+this}[Symbol.for("constructDateFrom")](t){return new G(+new Date(t),this.timeZone)}}const Be=/^(get|set)(?!UTC)/;Object.getOwnPropertyNames(Date.prototype).forEach(e=>{if(!Be.test(e))return;const t=e.replace(Be,"$1UTC");G.prototype[t]&&(e.startsWith("get")?G.prototype[e]=function(){return this.internal[t]()}:(G.prototype[e]=function(){return Date.prototype[t].apply(this.internal,arguments),Ft(this),+this},G.prototype[t]=function(){return Date.prototype[t].apply(this,arguments),ge(this),+this}))});function ge(e){e.internal.setTime(+e),e.internal.setUTCSeconds(e.internal.getUTCSeconds()-Math.round(-ee(e.timeZone,e)*60))}function Ft(e){Date.prototype.setFullYear.call(e,e.internal.getUTCFullYear(),e.internal.getUTCMonth(),e.internal.getUTCDate()),Date.prototype.setHours.call(e,e.internal.getUTCHours(),e.internal.getUTCMinutes(),e.internal.getUTCSeconds(),e.internal.getUTCMilliseconds()),Ae(e)}function Ae(e){const t=ee(e.timeZone,e),o=t>0?Math.floor(t):Math.ceil(t),n=new Date(+e);n.setUTCHours(n.getUTCHours()-1);const s=-new Date(+e).getTimezoneOffset(),r=-new Date(+n).getTimezoneOffset(),i=s-r,a=Date.prototype.getHours.apply(e)!==e.internal.getUTCHours();i&&a&&e.internal.setUTCMinutes(e.internal.getUTCMinutes()+i);const l=s-o;l&&Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+l);const f=new Date(+e);f.setUTCSeconds(0);const u=s>0?f.getSeconds():(f.getSeconds()-60)%60,d=Math.round(-(ee(e.timeZone,e)*60))%60;(d||u)&&(e.internal.setUTCSeconds(e.internal.getUTCSeconds()+d),Date.prototype.setUTCSeconds.call(e,Date.prototype.getUTCSeconds.call(e)+d+u));const h=ee(e.timeZone,e),p=h>0?Math.floor(h):Math.ceil(h),_=-new Date(+e).getTimezoneOffset()-p,b=p!==o,g=_-l;if(b&&g){Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+g);const S=ee(e.timeZone,e),k=S>0?Math.floor(S):Math.ceil(S),E=p-k;E&&(e.internal.setUTCMinutes(e.internal.getUTCMinutes()+E),Date.prototype.setUTCMinutes.call(e,Date.prototype.getUTCMinutes.call(e)+E))}}class I extends G{static tz(t,...o){return o.length?new I(...o,t):new I(Date.now(),t)}toISOString(){const[t,o,n]=this.tzComponents(),s=`${t}${o}:${n}`;return this.internal.toISOString().slice(0,-1)+s}toString(){return`${this.toDateString()} ${this.toTimeString()}`}toDateString(){const[t,o,n,s]=this.internal.toUTCString().split(" ");return`${t?.slice(0,-1)} ${n} ${o} ${s}`}toTimeString(){const t=this.internal.toUTCString().split(" ")[4],[o,n,s]=this.tzComponents();return`${t} GMT${o}${n}${s} (${Yt(this.timeZone,this)})`}toLocaleString(t,o){return Date.prototype.toLocaleString.call(this,t,{...o,timeZone:o?.timeZone||this.timeZone})}toLocaleDateString(t,o){return Date.prototype.toLocaleDateString.call(this,t,{...o,timeZone:o?.timeZone||this.timeZone})}toLocaleTimeString(t,o){return Date.prototype.toLocaleTimeString.call(this,t,{...o,timeZone:o?.timeZone||this.timeZone})}tzComponents(){const t=this.getTimezoneOffset(),o=t>0?"-":"+",n=String(Math.floor(Math.abs(t)/60)).padStart(2,"0"),s=String(Math.abs(t)%60).padStart(2,"0");return[o,n,s]}withTimeZone(t){return new I(+this,t)}[Symbol.for("constructDateFrom")](t){return new I(+new Date(t),this.timeZone)}}var m;(function(e){e.Root="root",e.Chevron="chevron",e.Day="day",e.DayButton="day_button",e.CaptionLabel="caption_label",e.Dropdowns="dropdowns",e.Dropdown="dropdown",e.DropdownRoot="dropdown_root",e.Footer="footer",e.MonthGrid="month_grid",e.MonthCaption="month_caption",e.MonthsDropdown="months_dropdown",e.Month="month",e.Months="months",e.Nav="nav",e.NextMonthButton="button_next",e.PreviousMonthButton="button_previous",e.Week="week",e.Weeks="weeks",e.Weekday="weekday",e.Weekdays="weekdays",e.WeekNumber="week_number",e.WeekNumberHeader="week_number_header",e.YearsDropdown="years_dropdown"})(m||(m={}));var Y;(function(e){e.disabled="disabled",e.hidden="hidden",e.outside="outside",e.focused="focused",e.today="today"})(Y||(Y={}));var q;(function(e){e.range_end="range_end",e.range_middle="range_middle",e.range_start="range_start",e.selected="selected"})(q||(q={}));var A;(function(e){e.weeks_before_enter="weeks_before_enter",e.weeks_before_exit="weeks_before_exit",e.weeks_after_enter="weeks_after_enter",e.weeks_after_exit="weeks_after_exit",e.caption_after_enter="caption_after_enter",e.caption_after_exit="caption_after_exit",e.caption_before_enter="caption_before_enter",e.caption_before_exit="caption_before_exit"})(A||(A={}));function He(e,t,o){const n=D.toDate(e,o?.in);if(isNaN(t))return D.constructFrom(e,NaN);if(!t)return n;const s=n.getDate(),r=D.constructFrom(e,n.getTime());r.setMonth(n.getMonth()+t+1,0);const i=r.getDate();return s>=i?r:(n.setFullYear(r.getFullYear(),r.getMonth(),s),n)}function It(e,t,o){return D.addDays(e,t*7,o)}function $t(e,t,o){return He(e,t*12,o)}function Pt(e,t){let o,n=t?.in;return e.forEach(s=>{!n&&typeof s=="object"&&(n=D.constructFrom.bind(null,s));const r=D.toDate(s,n);(!o||o<r||isNaN(+r))&&(o=r)}),D.constructFrom(n,o||NaN)}function At(e,t){let o,n=t?.in;return e.forEach(s=>{!n&&typeof s=="object"&&(n=D.constructFrom.bind(null,s));const r=D.toDate(s,n);(!o||o>r||isNaN(+r))&&(o=r)}),D.constructFrom(n,o||NaN)}function Ht(e,t,o){const[n,s]=D.normalizeDates(o?.in,e,t);return+D.startOfDay(n)==+D.startOfDay(s)}function Zt(e,t,o){const[n,s]=D.normalizeDates(o?.in,e,t),r=n.getFullYear()-s.getFullYear(),i=n.getMonth()-s.getMonth();return r*12+i}function jt(e,t){const o=D.toDate(e,t?.in),n=o.getMonth();return o.setFullYear(o.getFullYear(),n+1,0),o.setHours(23,59,59,999),o}function zt(e,t){const[o,n]=D.normalizeDates(e,t.start,t.end);return{start:o,end:n}}function qt(e,t){const{start:o,end:n}=zt(t?.in,e);let s=+o>+n;const r=s?+o:+n,i=s?n:o;i.setHours(0,0,0,0),i.setDate(1);let a=1;const l=[];for(;+i<=r;)l.push(D.constructFrom(o,i)),i.setMonth(i.getMonth()+a);return s?l.reverse():l}function Rt(e,t){const o=D.toDate(e,t?.in);return o.setDate(1),o.setHours(0,0,0,0),o}function Ut(e,t){const o=D.toDate(e,t?.in),n=o.getFullYear();return o.setFullYear(n+1,0,0),o.setHours(23,59,59,999),o}function Ze(e,t){const o=D.getDefaultOptions(),n=t?.weekStartsOn??t?.locale?.options?.weekStartsOn??o.weekStartsOn??o.locale?.options?.weekStartsOn??0,s=D.toDate(e,t?.in),r=s.getDay(),i=(r<n?-7:0)+6-(r-n);return s.setDate(s.getDate()+i),s.setHours(23,59,59,999),s}function Gt(e,t){return Ze(e,{...t,weekStartsOn:1})}function Kt(e,t){const o=D.toDate(e,t?.in),n=o.getFullYear(),s=o.getMonth(),r=D.constructFrom(o,0);return r.setFullYear(n,s+1,0),r.setHours(0,0,0,0),r.getDate()}function Lt(e,t){return D.toDate(e,t?.in).getMonth()}function Vt(e,t){return D.toDate(e,t?.in).getFullYear()}function Jt(e,t){return+D.toDate(e)>+D.toDate(t)}function Qt(e,t){return+D.toDate(e)<+D.toDate(t)}function Xt(e,t,o){const[n,s]=D.normalizeDates(o?.in,e,t);return n.getFullYear()===s.getFullYear()&&n.getMonth()===s.getMonth()}function en(e,t,o){const[n,s]=D.normalizeDates(o?.in,e,t);return n.getFullYear()===s.getFullYear()}function tn(e,t,o){const n=D.toDate(e,o?.in),s=n.getFullYear(),r=n.getDate(),i=D.constructFrom(e,0);i.setFullYear(s,t,15),i.setHours(0,0,0,0);const a=Kt(i);return n.setMonth(t,Math.min(r,a)),n}function nn(e,t,o){const n=D.toDate(e,o?.in);return isNaN(+n)?D.constructFrom(e,NaN):(n.setFullYear(t),n)}const Fe=5,on=4;function sn(e,t){const o=t.startOfMonth(e),n=o.getDay()>0?o.getDay():7,s=t.addDays(e,-n+1),r=t.addDays(s,Fe*7-1);return t.getMonth(e)===t.getMonth(r)?Fe:on}function je(e,t){const o=t.startOfMonth(e),n=o.getDay();return n===1?o:n===0?t.addDays(o,-6):t.addDays(o,-1*(n-1))}function rn(e,t){const o=je(e,t),n=sn(e,t);return t.addDays(o,n*7-1)}class Q{constructor(t,o){this.Date=Date,this.today=()=>this.overrides?.today?this.overrides.today():this.options.timeZone?I.tz(this.options.timeZone):new this.Date,this.newDate=(n,s,r)=>this.overrides?.newDate?this.overrides.newDate(n,s,r):this.options.timeZone?new I(n,s,r,this.options.timeZone):new Date(n,s,r),this.addDays=(n,s)=>this.overrides?.addDays?this.overrides.addDays(n,s):D.addDays(n,s),this.addMonths=(n,s)=>this.overrides?.addMonths?this.overrides.addMonths(n,s):He(n,s),this.addWeeks=(n,s)=>this.overrides?.addWeeks?this.overrides.addWeeks(n,s):It(n,s),this.addYears=(n,s)=>this.overrides?.addYears?this.overrides.addYears(n,s):$t(n,s),this.differenceInCalendarDays=(n,s)=>this.overrides?.differenceInCalendarDays?this.overrides.differenceInCalendarDays(n,s):D.differenceInCalendarDays(n,s),this.differenceInCalendarMonths=(n,s)=>this.overrides?.differenceInCalendarMonths?this.overrides.differenceInCalendarMonths(n,s):Zt(n,s),this.eachMonthOfInterval=n=>this.overrides?.eachMonthOfInterval?this.overrides.eachMonthOfInterval(n):qt(n),this.endOfBroadcastWeek=n=>this.overrides?.endOfBroadcastWeek?this.overrides.endOfBroadcastWeek(n):rn(n,this),this.endOfISOWeek=n=>this.overrides?.endOfISOWeek?this.overrides.endOfISOWeek(n):Gt(n),this.endOfMonth=n=>this.overrides?.endOfMonth?this.overrides.endOfMonth(n):jt(n),this.endOfWeek=(n,s)=>this.overrides?.endOfWeek?this.overrides.endOfWeek(n,s):Ze(n,this.options),this.endOfYear=n=>this.overrides?.endOfYear?this.overrides.endOfYear(n):Ut(n),this.format=(n,s,r)=>{const i=this.overrides?.format?this.overrides.format(n,s,this.options):D.format(n,s,this.options);return this.options.numerals&&this.options.numerals!=="latn"?this.replaceDigits(i):i},this.getISOWeek=n=>this.overrides?.getISOWeek?this.overrides.getISOWeek(n):D.getISOWeek(n),this.getMonth=(n,s)=>this.overrides?.getMonth?this.overrides.getMonth(n,this.options):Lt(n,this.options),this.getYear=(n,s)=>this.overrides?.getYear?this.overrides.getYear(n,this.options):Vt(n,this.options),this.getWeek=(n,s)=>this.overrides?.getWeek?this.overrides.getWeek(n,this.options):D.getWeek(n,this.options),this.isAfter=(n,s)=>this.overrides?.isAfter?this.overrides.isAfter(n,s):Jt(n,s),this.isBefore=(n,s)=>this.overrides?.isBefore?this.overrides.isBefore(n,s):Qt(n,s),this.isDate=n=>this.overrides?.isDate?this.overrides.isDate(n):D.isDate(n),this.isSameDay=(n,s)=>this.overrides?.isSameDay?this.overrides.isSameDay(n,s):Ht(n,s),this.isSameMonth=(n,s)=>this.overrides?.isSameMonth?this.overrides.isSameMonth(n,s):Xt(n,s),this.isSameYear=(n,s)=>this.overrides?.isSameYear?this.overrides.isSameYear(n,s):en(n,s),this.max=n=>this.overrides?.max?this.overrides.max(n):Pt(n),this.min=n=>this.overrides?.min?this.overrides.min(n):At(n),this.setMonth=(n,s)=>this.overrides?.setMonth?this.overrides.setMonth(n,s):tn(n,s),this.setYear=(n,s)=>this.overrides?.setYear?this.overrides.setYear(n,s):nn(n,s),this.startOfBroadcastWeek=(n,s)=>this.overrides?.startOfBroadcastWeek?this.overrides.startOfBroadcastWeek(n,this):je(n,this),this.startOfDay=n=>this.overrides?.startOfDay?this.overrides.startOfDay(n):D.startOfDay(n),this.startOfISOWeek=n=>this.overrides?.startOfISOWeek?this.overrides.startOfISOWeek(n):D.startOfISOWeek(n),this.startOfMonth=n=>this.overrides?.startOfMonth?this.overrides.startOfMonth(n):Rt(n),this.startOfWeek=(n,s)=>this.overrides?.startOfWeek?this.overrides.startOfWeek(n,this.options):D.startOfWeek(n,this.options),this.startOfYear=n=>this.overrides?.startOfYear?this.overrides.startOfYear(n):D.startOfYear(n),this.options={locale:D.enUS,...t},this.overrides=o}getDigitMap(){const{numerals:t="latn"}=this.options,o=new Intl.NumberFormat("en-US",{numberingSystem:t}),n={};for(let s=0;s<10;s++)n[s.toString()]=o.format(s);return n}replaceDigits(t){const o=this.getDigitMap();return t.replace(/\d/g,n=>o[n]||n)}formatNumber(t){return this.replaceDigits(t.toString())}}const K=new Q;class ze{constructor(t,o,n=K){this.date=t,this.displayMonth=o,this.outside=!!(o&&!n.isSameMonth(t,o)),this.dateLib=n}isEqualTo(t){return this.dateLib.isSameDay(t.date,this.date)&&this.dateLib.isSameMonth(t.displayMonth,this.displayMonth)}}class an{constructor(t,o){this.date=t,this.weeks=o}}class cn{constructor(t,o){this.days=o,this.weekNumber=t}}function V(e,t,o=!1,n=K){let{from:s,to:r}=e;const{differenceInCalendarDays:i,isSameDay:a}=n;return s&&r?(i(r,s)<0&&([s,r]=[r,s]),i(t,s)>=(o?1:0)&&i(r,t)>=(o?1:0)):!o&&r?a(r,t):!o&&s?a(s,t):!1}function qe(e){return!!(e&&typeof e=="object"&&"before"in e&&"after"in e)}function _e(e){return!!(e&&typeof e=="object"&&"from"in e)}function Re(e){return!!(e&&typeof e=="object"&&"after"in e)}function Ue(e){return!!(e&&typeof e=="object"&&"before"in e)}function Ge(e){return!!(e&&typeof e=="object"&&"dayOfWeek"in e)}function Ke(e,t){return Array.isArray(e)&&e.every(t.isDate)}function J(e,t,o=K){const n=Array.isArray(t)?t:[t],{isSameDay:s,differenceInCalendarDays:r,isAfter:i}=o;return n.some(a=>{if(typeof a=="boolean")return a;if(o.isDate(a))return s(e,a);if(Ke(a,o))return a.includes(e);if(_e(a))return V(a,e,!1,o);if(Ge(a))return Array.isArray(a.dayOfWeek)?a.dayOfWeek.includes(e.getDay()):a.dayOfWeek===e.getDay();if(qe(a)){const l=r(a.before,e),f=r(a.after,e),u=l>0,d=f<0;return i(a.before,a.after)?d&&u:u||d}return Re(a)?r(e,a.after)>0:Ue(a)?r(a.before,e)>0:typeof a=="function"?a(e):!1})}function ln(e,t,o,n,s){const{disabled:r,hidden:i,modifiers:a,showOutsideDays:l,broadcastCalendar:f,today:u}=t,{isSameDay:d,isSameMonth:h,startOfMonth:p,isBefore:w,endOfMonth:_,isAfter:b}=s,g=o&&p(o),S=n&&_(n),k={[Y.focused]:[],[Y.outside]:[],[Y.disabled]:[],[Y.hidden]:[],[Y.today]:[]},E={};for(const y of e){const{date:v,displayMonth:M}=y,C=!!(M&&!h(v,M)),x=!!(g&&w(v,g)),$=!!(S&&b(v,S)),P=!!(r&&J(v,r,s)),H=!!(i&&J(v,i,s))||x||$||!f&&!l&&C||f&&l===!1&&C,te=d(v,u??s.today());C&&k.outside.push(y),P&&k.disabled.push(y),H&&k.hidden.push(y),te&&k.today.push(y),a&&Object.keys(a).forEach(ne=>{const oe=a?.[ne];oe&&J(v,oe,s)&&(E[ne]?E[ne].push(y):E[ne]=[y])})}return y=>{const v={[Y.focused]:!1,[Y.disabled]:!1,[Y.hidden]:!1,[Y.outside]:!1,[Y.today]:!1},M={};for(const C in k){const x=k[C];v[C]=x.some($=>$===y)}for(const C in E)M[C]=E[C].some(x=>x===y);return{...v,...M}}}function fn(e,t,o={}){return Object.entries(e).filter(([,s])=>s===!0).reduce((s,[r])=>(o[r]?s.push(o[r]):t[Y[r]]?s.push(t[Y[r]]):t[q[r]]&&s.push(t[q[r]]),s),[t[m.Day]])}function dn(e){return c.createElement("button",{...e})}function un(e){return c.createElement("span",{...e})}function hn(e){const{size:t=24,orientation:o="left",className:n}=e;return c.createElement("svg",{className:n,width:t,height:t,viewBox:"0 0 24 24"},o==="up"&&c.createElement("polygon",{points:"6.77 17 12.5 11.43 18.24 17 20 15.28 12.5 8 5 15.28"}),o==="down"&&c.createElement("polygon",{points:"6.77 8 12.5 13.57 18.24 8 20 9.72 12.5 17 5 9.72"}),o==="left"&&c.createElement("polygon",{points:"16 18.112 9.81111111 12 16 5.87733333 14.0888889 4 6 12 14.0888889 20"}),o==="right"&&c.createElement("polygon",{points:"8 18.112 14.18888889 12 8 5.87733333 9.91111111 4 18 12 9.91111111 20"}))}function mn(e){const{day:t,modifiers:o,...n}=e;return c.createElement("td",{...n})}function yn(e){const{day:t,modifiers:o,...n}=e,s=c.useRef(null);return c.useEffect(()=>{o.focused&&s.current?.focus()},[o.focused]),c.createElement("button",{ref:s,...n})}function pn(e){const{options:t,className:o,components:n,classNames:s,...r}=e,i=[s[m.Dropdown],o].join(" "),a=t?.find(({value:l})=>l===r.value);return c.createElement("span",{"data-disabled":r.disabled,className:s[m.DropdownRoot]},c.createElement(n.Select,{className:i,...r},t?.map(({value:l,label:f,disabled:u})=>c.createElement(n.Option,{key:l,value:l,disabled:u},f))),c.createElement("span",{className:s[m.CaptionLabel],"aria-hidden":!0},a?.label,c.createElement(n.Chevron,{orientation:"down",size:18,className:s[m.Chevron]})))}function Dn(e){return c.createElement("div",{...e})}function kn(e){return c.createElement("div",{...e})}function Mn(e){const{calendarMonth:t,displayIndex:o,...n}=e;return c.createElement("div",{...n},e.children)}function bn(e){const{calendarMonth:t,displayIndex:o,...n}=e;return c.createElement("div",{...n})}function vn(e){return c.createElement("table",{...e})}function wn(e){return c.createElement("div",{...e})}const Le=c.createContext(void 0);function ae(){const e=c.useContext(Le);if(e===void 0)throw new Error("useDayPicker() must be used within a custom component.");return e}function On(e){const{components:t}=ae();return c.createElement(t.Dropdown,{...e})}function gn(e){const{onPreviousClick:t,onNextClick:o,previousMonth:n,nextMonth:s,...r}=e,{components:i,classNames:a,labels:{labelPrevious:l,labelNext:f}}=ae(),u=c.useCallback(h=>{s&&o?.(h)},[s,o]),d=c.useCallback(h=>{n&&t?.(h)},[n,t]);return c.createElement("nav",{...r},c.createElement(i.PreviousMonthButton,{type:"button",className:a[m.PreviousMonthButton],tabIndex:n?void 0:-1,"aria-disabled":n?void 0:!0,"aria-label":l(n),onClick:d},c.createElement(i.Chevron,{disabled:n?void 0:!0,className:a[m.Chevron],orientation:"left"})),c.createElement(i.NextMonthButton,{type:"button",className:a[m.NextMonthButton],tabIndex:s?void 0:-1,"aria-disabled":s?void 0:!0,"aria-label":f(s),onClick:u},c.createElement(i.Chevron,{disabled:s?void 0:!0,orientation:"right",className:a[m.Chevron]})))}function _n(e){const{components:t}=ae();return c.createElement(t.Button,{...e})}function Cn(e){return c.createElement("option",{...e})}function Wn(e){const{components:t}=ae();return c.createElement(t.Button,{...e})}function Sn(e){const{rootRef:t,...o}=e;return c.createElement("div",{...o,ref:t})}function Nn(e){return c.createElement("select",{...e})}function En(e){const{week:t,...o}=e;return c.createElement("tr",{...o})}function Tn(e){return c.createElement("th",{...e})}function Yn(e){return c.createElement("thead",{"aria-hidden":!0},c.createElement("tr",{...e}))}function xn(e){const{week:t,...o}=e;return c.createElement("th",{...o})}function Bn(e){return c.createElement("th",{...e})}function Fn(e){return c.createElement("tbody",{...e})}function In(e){const{components:t}=ae();return c.createElement(t.Dropdown,{...e})}const $n=Object.freeze(Object.defineProperty({__proto__:null,Button:dn,CaptionLabel:un,Chevron:hn,Day:mn,DayButton:yn,Dropdown:pn,DropdownNav:Dn,Footer:kn,Month:Mn,MonthCaption:bn,MonthGrid:vn,Months:wn,MonthsDropdown:On,Nav:gn,NextMonthButton:_n,Option:Cn,PreviousMonthButton:Wn,Root:Sn,Select:Nn,Week:En,WeekNumber:xn,WeekNumberHeader:Bn,Weekday:Tn,Weekdays:Yn,Weeks:Fn,YearsDropdown:In},Symbol.toStringTag,{value:"Module"}));function Pn(e){return{...$n,...e}}function An(e){const t={"data-mode":e.mode??void 0,"data-required":"required"in e?e.required:void 0,"data-multiple-months":e.numberOfMonths&&e.numberOfMonths>1||void 0,"data-week-numbers":e.showWeekNumber||void 0,"data-broadcast-calendar":e.broadcastCalendar||void 0,"data-nav-layout":e.navLayout||void 0};return Object.entries(e).forEach(([o,n])=>{o.startsWith("data-")&&(t[o]=n)}),t}function Ve(){const e={};for(const t in m)e[m[t]]=`rdp-${m[t]}`;for(const t in Y)e[Y[t]]=`rdp-${Y[t]}`;for(const t in q)e[q[t]]=`rdp-${q[t]}`;for(const t in A)e[A[t]]=`rdp-${A[t]}`;return e}function Je(e,t,o){return(o??new Q(t)).format(e,"LLLL y")}const Hn=Je;function Zn(e,t,o){return(o??new Q(t)).format(e,"d")}function jn(e,t=K){return t.format(e,"LLLL")}function zn(e,t=K){return e<10?t.formatNumber(`0${e.toLocaleString()}`):t.formatNumber(`${e.toLocaleString()}`)}function qn(){return""}function Rn(e,t,o){return(o??new Q(t)).format(e,"cccccc")}function Qe(e,t=K){return t.format(e,"yyyy")}const Un=Qe,Gn=Object.freeze(Object.defineProperty({__proto__:null,formatCaption:Je,formatDay:Zn,formatMonthCaption:Hn,formatMonthDropdown:jn,formatWeekNumber:zn,formatWeekNumberHeader:qn,formatWeekdayName:Rn,formatYearCaption:Un,formatYearDropdown:Qe},Symbol.toStringTag,{value:"Module"}));function Kn(e){return e?.formatMonthCaption&&!e.formatCaption&&(e.formatCaption=e.formatMonthCaption),e?.formatYearCaption&&!e.formatYearDropdown&&(e.formatYearDropdown=e.formatYearCaption),{...Gn,...e}}function Ln(e,t,o,n,s){const{startOfMonth:r,startOfYear:i,endOfYear:a,eachMonthOfInterval:l,getMonth:f}=s;return l({start:i(e),end:a(e)}).map(h=>{const p=n.formatMonthDropdown(h,s),w=f(h),_=t&&h<r(t)||o&&h>r(o)||!1;return{value:w,label:p,disabled:_}})}function Vn(e,t={},o={}){let n={...t?.[m.Day]};return Object.entries(e).filter(([,s])=>s===!0).forEach(([s])=>{n={...n,...o?.[s]}}),n}function Jn(e,t,o){const n=e.today(),s=t?e.startOfISOWeek(n):e.startOfWeek(n),r=[];for(let i=0;i<7;i++){const a=e.addDays(s,i);r.push(a)}return r}function Qn(e,t,o,n){if(!e||!t)return;const{startOfYear:s,endOfYear:r,addYears:i,getYear:a,isBefore:l,isSameYear:f}=n,u=s(e),d=r(t),h=[];let p=u;for(;l(p,d)||f(p,d);)h.push(p),p=i(p,1);return h.map(w=>{const _=o.formatYearDropdown(w,n);return{value:a(w),label:_,disabled:!1}})}function Xe(e,t,o){return(o??new Q(t)).format(e,"LLLL y")}const Xn=Xe;function eo(e,t,o,n){let s=(n??new Q(o)).format(e,"PPPP");return t?.today&&(s=`Today, ${s}`),s}function et(e,t,o,n){let s=(n??new Q(o)).format(e,"PPPP");return t.today&&(s=`Today, ${s}`),t.selected&&(s=`${s}, selected`),s}const to=et;function no(){return""}function oo(e){return"Choose the Month"}function so(e){return"Go to the Next Month"}function ro(e){return"Go to the Previous Month"}function ao(e,t,o){return(o??new Q(t)).format(e,"cccc")}function io(e,t){return`Week ${e}`}function co(e){return"Week Number"}function lo(e){return"Choose the Year"}const fo=Object.freeze(Object.defineProperty({__proto__:null,labelCaption:Xn,labelDay:to,labelDayButton:et,labelGrid:Xe,labelGridcell:eo,labelMonthDropdown:oo,labelNav:no,labelNext:so,labelPrevious:ro,labelWeekNumber:io,labelWeekNumberHeader:co,labelWeekday:ao,labelYearDropdown:lo},Symbol.toStringTag,{value:"Module"})),ie=e=>e instanceof HTMLElement?e:null,ve=e=>[...e.querySelectorAll("[data-animated-month]")??[]],uo=e=>ie(e.querySelector("[data-animated-month]")),we=e=>ie(e.querySelector("[data-animated-caption]")),Oe=e=>ie(e.querySelector("[data-animated-weeks]")),ho=e=>ie(e.querySelector("[data-animated-nav]")),mo=e=>ie(e.querySelector("[data-animated-weekdays]"));function yo(e,t,{classNames:o,months:n,focused:s,dateLib:r}){const i=c.useRef(null),a=c.useRef(n),l=c.useRef(!1);c.useLayoutEffect(()=>{const f=a.current;if(a.current=n,!t||!e.current||!(e.current instanceof HTMLElement)||n.length===0||f.length===0||n.length!==f.length)return;const u=r.isSameMonth(n[0].date,f[0].date),d=r.isAfter(n[0].date,f[0].date),h=d?o[A.caption_after_enter]:o[A.caption_before_enter],p=d?o[A.weeks_after_enter]:o[A.weeks_before_enter],w=i.current,_=e.current.cloneNode(!0);if(_ instanceof HTMLElement?(ve(_).forEach(k=>{if(!(k instanceof HTMLElement))return;const E=uo(k);E&&k.contains(E)&&k.removeChild(E);const y=we(k);y&&y.classList.remove(h);const v=Oe(k);v&&v.classList.remove(p)}),i.current=_):i.current=null,l.current||u||s)return;const b=w instanceof HTMLElement?ve(w):[],g=ve(e.current);if(g&&g.every(S=>S instanceof HTMLElement)&&b&&b.every(S=>S instanceof HTMLElement)){l.current=!0,e.current.style.isolation="isolate";const S=ho(e.current);S&&(S.style.zIndex="1"),g.forEach((k,E)=>{const y=b[E];if(!y)return;k.style.position="relative",k.style.overflow="hidden";const v=we(k);v&&v.classList.add(h);const M=Oe(k);M&&M.classList.add(p);const C=()=>{l.current=!1,e.current&&(e.current.style.isolation=""),S&&(S.style.zIndex=""),v&&v.classList.remove(h),M&&M.classList.remove(p),k.style.position="",k.style.overflow="",k.contains(y)&&k.removeChild(y)};y.style.pointerEvents="none",y.style.position="absolute",y.style.overflow="hidden",y.setAttribute("aria-hidden","true");const x=mo(y);x&&(x.style.opacity="0");const $=we(y);$&&($.classList.add(d?o[A.caption_before_exit]:o[A.caption_after_exit]),$.addEventListener("animationend",C));const P=Oe(y);P&&P.classList.add(d?o[A.weeks_before_exit]:o[A.weeks_after_exit]),k.insertBefore(y,k.firstChild)})}})}function po(e,t,o,n){const s=e[0],r=e[e.length-1],{ISOWeek:i,fixedWeeks:a,broadcastCalendar:l}=o??{},{addDays:f,differenceInCalendarDays:u,differenceInCalendarMonths:d,endOfBroadcastWeek:h,endOfISOWeek:p,endOfMonth:w,endOfWeek:_,isAfter:b,startOfBroadcastWeek:g,startOfISOWeek:S,startOfWeek:k}=n,E=l?g(s,n):i?S(s):k(s),y=l?h(r):i?p(w(r)):_(w(r)),v=u(y,E),M=d(r,s)+1,C=[];for(let P=0;P<=v;P++){const H=f(E,P);if(t&&b(H,t))break;C.push(H)}const $=(l?35:42)*M;if(a&&C.length<$){const P=$-C.length;for(let H=0;H<P;H++){const te=f(C[C.length-1],1);C.push(te)}}return C}function Do(e){const t=[];return e.reduce((o,n)=>{const s=n.weeks.reduce((r,i)=>[...r,...i.days],t);return[...o,...s]},t)}function ko(e,t,o,n){const{numberOfMonths:s=1}=o,r=[];for(let i=0;i<s;i++){const a=n.addMonths(e,i);if(t&&a>t)break;r.push(a)}return r}function Ie(e,t,o,n){const{month:s,defaultMonth:r,today:i=n.today(),numberOfMonths:a=1}=e;let l=s||r||i;const{differenceInCalendarMonths:f,addMonths:u,startOfMonth:d}=n;if(o&&f(o,l)<a-1){const h=-1*(a-1);l=u(o,h)}return t&&f(l,t)<0&&(l=t),d(l)}function Mo(e,t,o,n){const{addDays:s,endOfBroadcastWeek:r,endOfISOWeek:i,endOfMonth:a,endOfWeek:l,getISOWeek:f,getWeek:u,startOfBroadcastWeek:d,startOfISOWeek:h,startOfWeek:p}=n,w=e.reduce((_,b)=>{const g=o.broadcastCalendar?d(b,n):o.ISOWeek?h(b):p(b),S=o.broadcastCalendar?r(b):o.ISOWeek?i(a(b)):l(a(b)),k=t.filter(M=>M>=g&&M<=S),E=o.broadcastCalendar?35:42;if(o.fixedWeeks&&k.length<E){const M=t.filter(C=>{const x=E-k.length;return C>S&&C<=s(S,x)});k.push(...M)}const y=k.reduce((M,C)=>{const x=o.ISOWeek?f(C):u(C),$=M.find(H=>H.weekNumber===x),P=new ze(C,b,n);return $?$.days.push(P):M.push(new cn(x,[P])),M},[]),v=new an(b,y);return _.push(v),_},[]);return o.reverseMonths?w.reverse():w}function bo(e,t){let{startMonth:o,endMonth:n}=e;const{startOfYear:s,startOfDay:r,startOfMonth:i,endOfMonth:a,addYears:l,endOfYear:f,newDate:u,today:d}=t,{fromYear:h,toYear:p,fromMonth:w,toMonth:_}=e;!o&&w&&(o=w),!o&&h&&(o=t.newDate(h,0,1)),!n&&_&&(n=_),!n&&p&&(n=u(p,11,31));const b=e.captionLayout==="dropdown"||e.captionLayout==="dropdown-years";return o?o=i(o):h?o=u(h,0,1):!o&&b&&(o=s(l(e.today??d(),-100))),n?n=a(n):p?n=u(p,11,31):!n&&b&&(n=f(e.today??d())),[o&&r(o),n&&r(n)]}function vo(e,t,o,n){if(o.disableNavigation)return;const{pagedNavigation:s,numberOfMonths:r=1}=o,{startOfMonth:i,addMonths:a,differenceInCalendarMonths:l}=n,f=s?r:1,u=i(e);if(!t)return a(u,f);if(!(l(t,e)<r))return a(u,f)}function wo(e,t,o,n){if(o.disableNavigation)return;const{pagedNavigation:s,numberOfMonths:r}=o,{startOfMonth:i,addMonths:a,differenceInCalendarMonths:l}=n,f=s?r??1:1,u=i(e);if(!t)return a(u,-f);if(!(l(u,t)<=0))return a(u,-f)}function Oo(e){const t=[];return e.reduce((o,n)=>[...o,...n.weeks],t)}function ue(e,t){const[o,n]=c.useState(e);return[t===void 0?o:t,n]}function go(e,t){const[o,n]=bo(e,t),{startOfMonth:s,endOfMonth:r}=t,i=Ie(e,o,n,t),[a,l]=ue(i,e.month?i:void 0);c.useEffect(()=>{const v=Ie(e,o,n,t);l(v)},[e.timeZone]);const f=ko(a,n,e,t),u=po(f,e.endMonth?r(e.endMonth):void 0,e,t),d=Mo(f,u,e,t),h=Oo(d),p=Do(d),w=wo(a,o,e,t),_=vo(a,n,e,t),{disableNavigation:b,onMonthChange:g}=e,S=v=>h.some(M=>M.days.some(C=>C.isEqualTo(v))),k=v=>{if(b)return;let M=s(v);o&&M<s(o)&&(M=s(o)),n&&M>s(n)&&(M=s(n)),l(M),g?.(M)};return{months:d,weeks:h,days:p,navStart:o,navEnd:n,previousMonth:w,nextMonth:_,goToMonth:k,goToDay:v=>{S(v)||k(v.date)}}}var U;(function(e){e[e.Today=0]="Today",e[e.Selected=1]="Selected",e[e.LastFocused=2]="LastFocused",e[e.FocusedModifier=3]="FocusedModifier"})(U||(U={}));function $e(e){return!e[Y.disabled]&&!e[Y.hidden]&&!e[Y.outside]}function _o(e,t,o,n){let s,r=-1;for(const i of e){const a=t(i);$e(a)&&(a[Y.focused]&&r<U.FocusedModifier?(s=i,r=U.FocusedModifier):n?.isEqualTo(i)&&r<U.LastFocused?(s=i,r=U.LastFocused):o(i.date)&&r<U.Selected?(s=i,r=U.Selected):a[Y.today]&&r<U.Today&&(s=i,r=U.Today))}return s||(s=e.find(i=>$e(t(i)))),s}function Co(e,t,o,n,s,r,i){const{ISOWeek:a,broadcastCalendar:l}=r,{addDays:f,addMonths:u,addWeeks:d,addYears:h,endOfBroadcastWeek:p,endOfISOWeek:w,endOfWeek:_,max:b,min:g,startOfBroadcastWeek:S,startOfISOWeek:k,startOfWeek:E}=i;let v={day:f,week:d,month:u,year:h,startOfWeek:M=>l?S(M,i):a?k(M):E(M),endOfWeek:M=>l?p(M):a?w(M):_(M)}[e](o,t==="after"?1:-1);return t==="before"&&n?v=b([n,v]):t==="after"&&s&&(v=g([s,v])),v}function tt(e,t,o,n,s,r,i,a=0){if(a>365)return;const l=Co(e,t,o.date,n,s,r,i),f=!!(r.disabled&&J(l,r.disabled,i)),u=!!(r.hidden&&J(l,r.hidden,i)),d=l,h=new ze(l,d,i);return!f&&!u?h:tt(e,t,h,n,s,r,i,a+1)}function Wo(e,t,o,n,s){const{autoFocus:r}=e,[i,a]=c.useState(),l=_o(t.days,o,n||(()=>!1),i),[f,u]=c.useState(r?l:void 0);return{isFocusTarget:_=>!!l?.isEqualTo(_),setFocused:u,focused:f,blur:()=>{a(f),u(void 0)},moveFocus:(_,b)=>{if(!f)return;const g=tt(_,b,f,t.navStart,t.navEnd,e,s);g&&(t.goToDay(g),u(g))}}}function So(e,t){const{selected:o,required:n,onSelect:s}=e,[r,i]=ue(o,s?o:void 0),a=s?o:r,{isSameDay:l}=t,f=p=>a?.some(w=>l(w,p))??!1,{min:u,max:d}=e;return{selected:a,select:(p,w,_)=>{let b=[...a??[]];if(f(p)){if(a?.length===u||n&&a?.length===1)return;b=a?.filter(g=>!l(g,p))}else a?.length===d?b=[p]:b=[...b,p];return s||i(b),s?.(b,p,w,_),b},isSelected:f}}function No(e,t,o=0,n=0,s=!1,r=K){const{from:i,to:a}=t||{},{isSameDay:l,isAfter:f,isBefore:u}=r;let d;if(!i&&!a)d={from:e,to:o>0?void 0:e};else if(i&&!a)l(i,e)?s?d={from:i,to:void 0}:d=void 0:u(e,i)?d={from:e,to:i}:d={from:i,to:e};else if(i&&a)if(l(i,e)&&l(a,e))s?d={from:i,to:a}:d=void 0;else if(l(i,e))d={from:i,to:o>0?void 0:e};else if(l(a,e))d={from:e,to:o>0?void 0:e};else if(u(e,i))d={from:e,to:a};else if(f(e,i))d={from:i,to:e};else if(f(e,a))d={from:i,to:e};else throw new Error("Invalid range");if(d?.from&&d?.to){const h=r.differenceInCalendarDays(d.to,d.from);n>0&&h>n?d={from:e,to:void 0}:o>1&&h<o&&(d={from:e,to:void 0})}return d}function Eo(e,t,o=K){const n=Array.isArray(t)?t:[t];let s=e.from;const r=o.differenceInCalendarDays(e.to,e.from),i=Math.min(r,6);for(let a=0;a<=i;a++){if(n.includes(s.getDay()))return!0;s=o.addDays(s,1)}return!1}function Pe(e,t,o=K){return V(e,t.from,!1,o)||V(e,t.to,!1,o)||V(t,e.from,!1,o)||V(t,e.to,!1,o)}function To(e,t,o=K){const n=Array.isArray(t)?t:[t];if(n.filter(a=>typeof a!="function").some(a=>typeof a=="boolean"?a:o.isDate(a)?V(e,a,!1,o):Ke(a,o)?a.some(l=>V(e,l,!1,o)):_e(a)?a.from&&a.to?Pe(e,{from:a.from,to:a.to},o):!1:Ge(a)?Eo(e,a.dayOfWeek,o):qe(a)?o.isAfter(a.before,a.after)?Pe(e,{from:o.addDays(a.after,1),to:o.addDays(a.before,-1)},o):J(e.from,a,o)||J(e.to,a,o):Re(a)||Ue(a)?J(e.from,a,o)||J(e.to,a,o):!1))return!0;const i=n.filter(a=>typeof a=="function");if(i.length){let a=e.from;const l=o.differenceInCalendarDays(e.to,e.from);for(let f=0;f<=l;f++){if(i.some(u=>u(a)))return!0;a=o.addDays(a,1)}}return!1}function Yo(e,t){const{disabled:o,excludeDisabled:n,selected:s,required:r,onSelect:i}=e,[a,l]=ue(s,i?s:void 0),f=i?s:a;return{selected:f,select:(h,p,w)=>{const{min:_,max:b}=e,g=h?No(h,f,_,b,r,t):void 0;return n&&o&&g?.from&&g.to&&To({from:g.from,to:g.to},o,t)&&(g.from=h,g.to=void 0),i||l(g),i?.(g,h,p,w),g},isSelected:h=>f&&V(f,h,!1,t)}}function xo(e,t){const{selected:o,required:n,onSelect:s}=e,[r,i]=ue(o,s?o:void 0),a=s?o:r,{isSameDay:l}=t;return{selected:a,select:(d,h,p)=>{let w=d;return!n&&a&&a&&l(d,a)&&(w=void 0),s||i(w),s?.(w,d,h,p),w},isSelected:d=>a?l(a,d):!1}}function Bo(e,t){const o=xo(e,t),n=So(e,t),s=Yo(e,t);switch(e.mode){case"single":return o;case"multiple":return n;case"range":return s;default:return}}function Fo(e){let t=e;t.timeZone&&(t={...e},t.today&&(t.today=new I(t.today,t.timeZone)),t.month&&(t.month=new I(t.month,t.timeZone)),t.defaultMonth&&(t.defaultMonth=new I(t.defaultMonth,t.timeZone)),t.startMonth&&(t.startMonth=new I(t.startMonth,t.timeZone)),t.endMonth&&(t.endMonth=new I(t.endMonth,t.timeZone)),t.mode==="single"&&t.selected?t.selected=new I(t.selected,t.timeZone):t.mode==="multiple"&&t.selected?t.selected=t.selected?.map(O=>new I(O,t.timeZone)):t.mode==="range"&&t.selected&&(t.selected={from:t.selected.from?new I(t.selected.from,t.timeZone):void 0,to:t.selected.to?new I(t.selected.to,t.timeZone):void 0}));const{components:o,formatters:n,labels:s,dateLib:r,locale:i,classNames:a}=c.useMemo(()=>{const O={...D.enUS,...t.locale};return{dateLib:new Q({locale:O,weekStartsOn:t.broadcastCalendar?1:t.weekStartsOn,firstWeekContainsDate:t.firstWeekContainsDate,useAdditionalWeekYearTokens:t.useAdditionalWeekYearTokens,useAdditionalDayOfYearTokens:t.useAdditionalDayOfYearTokens,timeZone:t.timeZone,numerals:t.numerals},t.dateLib),components:Pn(t.components),formatters:Kn(t.formatters),labels:{...fo,...t.labels},locale:O,classNames:{...Ve(),...t.classNames}}},[t.locale,t.broadcastCalendar,t.weekStartsOn,t.firstWeekContainsDate,t.useAdditionalWeekYearTokens,t.useAdditionalDayOfYearTokens,t.timeZone,t.numerals,t.dateLib,t.components,t.formatters,t.labels,t.classNames]),{captionLayout:l,mode:f,navLayout:u,numberOfMonths:d=1,onDayBlur:h,onDayClick:p,onDayFocus:w,onDayKeyDown:_,onDayMouseEnter:b,onDayMouseLeave:g,onNextClick:S,onPrevClick:k,showWeekNumber:E,styles:y}=t,{formatCaption:v,formatDay:M,formatMonthDropdown:C,formatWeekNumber:x,formatWeekNumberHeader:$,formatWeekdayName:P,formatYearDropdown:H}=n,te=go(t,r),{days:ne,months:oe,navStart:ce,navEnd:he,previousMonth:Z,nextMonth:j,goToMonth:L}=te,me=ln(ne,t,ce,he,r),{isSelected:ye,select:pe,selected:le}=Bo(t,r)??{},{blur:Ce,focused:We,isFocusTarget:ot,moveFocus:Se,setFocused:fe}=Wo(t,te,me,ye??(()=>!1),r),{labelDayButton:st,labelGridcell:rt,labelGrid:at,labelMonthDropdown:it,labelNav:Ne,labelPrevious:ct,labelNext:lt,labelWeekday:ft,labelWeekNumber:dt,labelWeekNumberHeader:ut,labelYearDropdown:ht}=s,mt=c.useMemo(()=>Jn(r,t.ISOWeek),[r,t.ISOWeek]),Ee=f!==void 0||p!==void 0,De=c.useCallback(()=>{Z&&(L(Z),k?.(Z))},[Z,L,k]),ke=c.useCallback(()=>{j&&(L(j),S?.(j))},[L,j,S]),yt=c.useCallback((O,T)=>W=>{W.preventDefault(),W.stopPropagation(),fe(O),pe?.(O.date,T,W),p?.(O.date,T,W)},[pe,p,fe]),pt=c.useCallback((O,T)=>W=>{fe(O),w?.(O.date,T,W)},[w,fe]),Dt=c.useCallback((O,T)=>W=>{Ce(),h?.(O.date,T,W)},[Ce,h]),kt=c.useCallback((O,T)=>W=>{const X={ArrowLeft:[W.shiftKey?"month":"day",t.dir==="rtl"?"after":"before"],ArrowRight:[W.shiftKey?"month":"day",t.dir==="rtl"?"before":"after"],ArrowDown:[W.shiftKey?"year":"week","after"],ArrowUp:[W.shiftKey?"year":"week","before"],PageUp:[W.shiftKey?"year":"month","before"],PageDown:[W.shiftKey?"year":"month","after"],Home:["startOfWeek","before"],End:["endOfWeek","after"]};if(X[W.key]){W.preventDefault(),W.stopPropagation();const[z,de]=X[W.key];Se(z,de)}_?.(O.date,T,W)},[Se,_,t.dir]),Mt=c.useCallback((O,T)=>W=>{b?.(O.date,T,W)},[b]),bt=c.useCallback((O,T)=>W=>{g?.(O.date,T,W)},[g]),vt=c.useCallback(O=>T=>{const W=Number(T.target.value),X=r.setMonth(r.startOfMonth(O),W);L(X)},[r,L]),wt=c.useCallback(O=>T=>{const W=Number(T.target.value),X=r.setYear(r.startOfMonth(O),W);L(X)},[r,L]),{className:Ot,style:gt}=c.useMemo(()=>({className:[a[m.Root],t.className].filter(Boolean).join(" "),style:{...y?.[m.Root],...t.style}}),[a,t.className,t.style,y]),_t=An(t),Te=c.useRef(null);yo(Te,!!t.animate,{classNames:a,months:oe,focused:We,dateLib:r});const Ct={dayPickerProps:t,selected:le,select:pe,isSelected:ye,months:oe,nextMonth:j,previousMonth:Z,goToMonth:L,getModifiers:me,components:o,classNames:a,styles:y,labels:s,formatters:n};return c.createElement(Le.Provider,{value:Ct},c.createElement(o.Root,{rootRef:t.animate?Te:void 0,className:Ot,style:gt,dir:t.dir,id:t.id,lang:t.lang,nonce:t.nonce,title:t.title,role:t.role,"aria-label":t["aria-label"],..._t},c.createElement(o.Months,{className:a[m.Months],style:y?.[m.Months]},!t.hideNavigation&&!u&&c.createElement(o.Nav,{"data-animated-nav":t.animate?"true":void 0,className:a[m.Nav],style:y?.[m.Nav],"aria-label":Ne(),onPreviousClick:De,onNextClick:ke,previousMonth:Z,nextMonth:j}),oe.map((O,T)=>{const W=Ln(O.date,ce,he,n,r),X=Qn(ce,he,n,r);return c.createElement(o.Month,{"data-animated-month":t.animate?"true":void 0,className:a[m.Month],style:y?.[m.Month],key:T,displayIndex:T,calendarMonth:O},u==="around"&&!t.hideNavigation&&T===0&&c.createElement(o.PreviousMonthButton,{type:"button",className:a[m.PreviousMonthButton],tabIndex:Z?void 0:-1,"aria-disabled":Z?void 0:!0,"aria-label":ct(Z),onClick:De,"data-animated-button":t.animate?"true":void 0},c.createElement(o.Chevron,{disabled:Z?void 0:!0,className:a[m.Chevron],orientation:t.dir==="rtl"?"right":"left"})),c.createElement(o.MonthCaption,{"data-animated-caption":t.animate?"true":void 0,className:a[m.MonthCaption],style:y?.[m.MonthCaption],calendarMonth:O,displayIndex:T},l?.startsWith("dropdown")?c.createElement(o.DropdownNav,{className:a[m.Dropdowns],style:y?.[m.Dropdowns]},l==="dropdown"||l==="dropdown-months"?c.createElement(o.MonthsDropdown,{className:a[m.MonthsDropdown],"aria-label":it(),classNames:a,components:o,disabled:!!t.disableNavigation,onChange:vt(O.date),options:W,style:y?.[m.Dropdown],value:r.getMonth(O.date)}):c.createElement("span",null,C(O.date,r)),l==="dropdown"||l==="dropdown-years"?c.createElement(o.YearsDropdown,{className:a[m.YearsDropdown],"aria-label":ht(r.options),classNames:a,components:o,disabled:!!t.disableNavigation,onChange:wt(O.date),options:X,style:y?.[m.Dropdown],value:r.getYear(O.date)}):c.createElement("span",null,H(O.date,r)),c.createElement("span",{role:"status","aria-live":"polite",style:{border:0,clip:"rect(0 0 0 0)",height:"1px",margin:"-1px",overflow:"hidden",padding:0,position:"absolute",width:"1px",whiteSpace:"nowrap",wordWrap:"normal"}},v(O.date,r.options,r))):c.createElement(o.CaptionLabel,{className:a[m.CaptionLabel],role:"status","aria-live":"polite"},v(O.date,r.options,r))),u==="around"&&!t.hideNavigation&&T===d-1&&c.createElement(o.NextMonthButton,{type:"button",className:a[m.NextMonthButton],tabIndex:j?void 0:-1,"aria-disabled":j?void 0:!0,"aria-label":lt(j),onClick:ke,"data-animated-button":t.animate?"true":void 0},c.createElement(o.Chevron,{disabled:j?void 0:!0,className:a[m.Chevron],orientation:t.dir==="rtl"?"left":"right"})),T===d-1&&u==="after"&&!t.hideNavigation&&c.createElement(o.Nav,{"data-animated-nav":t.animate?"true":void 0,className:a[m.Nav],style:y?.[m.Nav],"aria-label":Ne(),onPreviousClick:De,onNextClick:ke,previousMonth:Z,nextMonth:j}),c.createElement(o.MonthGrid,{role:"grid","aria-multiselectable":f==="multiple"||f==="range","aria-label":at(O.date,r.options,r)||void 0,className:a[m.MonthGrid],style:y?.[m.MonthGrid]},!t.hideWeekdays&&c.createElement(o.Weekdays,{"data-animated-weekdays":t.animate?"true":void 0,className:a[m.Weekdays],style:y?.[m.Weekdays]},E&&c.createElement(o.WeekNumberHeader,{"aria-label":ut(r.options),className:a[m.WeekNumberHeader],style:y?.[m.WeekNumberHeader],scope:"col"},$()),mt.map((z,de)=>c.createElement(o.Weekday,{"aria-label":ft(z,r.options,r),className:a[m.Weekday],key:de,style:y?.[m.Weekday],scope:"col"},P(z,r.options,r)))),c.createElement(o.Weeks,{"data-animated-weeks":t.animate?"true":void 0,className:a[m.Weeks],style:y?.[m.Weeks]},O.weeks.map((z,de)=>c.createElement(o.Week,{className:a[m.Week],key:z.weekNumber,style:y?.[m.Week],week:z},E&&c.createElement(o.WeekNumber,{week:z,style:y?.[m.WeekNumber],"aria-label":dt(z.weekNumber,{locale:i}),className:a[m.WeekNumber],scope:"row",role:"rowheader"},x(z.weekNumber,r)),z.days.map(B=>{const{date:R}=B,N=me(B);if(N[Y.focused]=!N.hidden&&!!We?.isEqualTo(B),N[q.selected]=ye?.(R)||N.selected,_e(le)){const{from:Me,to:be}=le;N[q.range_start]=!!(Me&&be&&r.isSameDay(R,Me)),N[q.range_end]=!!(Me&&be&&r.isSameDay(R,be)),N[q.range_middle]=V(le,R,!0,r)}const Wt=Vn(N,y,t.modifiersStyles),St=fn(N,a,t.modifiersClassNames),Nt=!Ee&&!N.hidden?rt(R,N,r.options,r):void 0;return c.createElement(o.Day,{key:`${r.format(R,"yyyy-MM-dd")}_${r.format(B.displayMonth,"yyyy-MM")}`,day:B,modifiers:N,className:St.join(" "),style:Wt,role:"gridcell","aria-selected":N.selected||void 0,"aria-label":Nt,"data-day":r.format(R,"yyyy-MM-dd"),"data-month":B.outside?r.format(R,"yyyy-MM"):void 0,"data-selected":N.selected||void 0,"data-disabled":N.disabled||void 0,"data-hidden":N.hidden||void 0,"data-outside":B.outside||void 0,"data-focused":N.focused||void 0,"data-today":N.today||void 0},!N.hidden&&Ee?c.createElement(o.DayButton,{className:a[m.DayButton],style:y?.[m.DayButton],type:"button",day:B,modifiers:N,disabled:N.disabled||void 0,tabIndex:ot(B)?0:-1,"aria-label":st(R,N,r.options,r),onClick:yt(B,N),onBlur:Dt(B,N),onFocus:pt(B,N),onKeyDown:kt(B,N),onMouseEnter:Mt(B,N),onMouseLeave:bt(B,N)},M(R,r.options,r)):!N.hidden&&M(B.date,r.options,r))}))))))})),t.footer&&c.createElement(o.Footer,{className:a[m.Footer],style:y?.[m.Footer],role:"status","aria-live":"polite"},t.footer)))}const Io="_root_bdmmk_3",$o="_months_bdmmk_88",Po="_month_bdmmk_88",Ao="_day_button_bdmmk_96",Ho="_day_bdmmk_96",Zo="_selected_bdmmk_105",jo="_month_caption_bdmmk_111",zo="_dropdown_root_bdmmk_120",qo="_weekday_bdmmk_124",Ro="_week_number_bdmmk_125",Uo="_range_middle_bdmmk_135",Go="_disabled_bdmmk_144",Ko="_outside_bdmmk_153",Lo="_button_next_bdmmk_161",Vo="_button_previous_bdmmk_162",F={root:Io,months:$o,month:Po,day_button:Ao,day:Ho,selected:Zo,month_caption:jo,dropdown_root:zo,weekday:qo,week_number:Ro,range_middle:Uo,disabled:Go,outside:Ko,button_next:Lo,button_previous:Vo},nt=e=>{const{firstElementRef:t,...o}=e,n=Ve(),s={...F,root:`${n.root} ${F.root}`,day_button:`${n.day_button} ${F.day_button}`,day:`${n.day} ${F.day}`,weekday:`${n.weekday} ${F.weekday}`,week_number:`${n.week_number} ${F.week_number}`,month_caption:`${n.month_caption} ${F.month_caption}`,disabled:`${n.disabled} ${F.disabled}`,dropdown:`${n.dropdown} ${F.dropdown}`,years_dropdown:`${n.years_dropdown} ${F.years_dropdown}`,outside:`${n.outside} ${F.outside}`,dropdown_root:`${n.dropdown_root} ${F.dropdown_root}`,months:`${n.months} ${F.months}`,month:`${n.month} ${F.month}`,button_next:`${n.button_next} ${F.button_next}`,button_previous:`${n.button_previous} ${F.button_previous}`},r=new Date().getFullYear()-10,i=new Date().getFullYear()+10,[a,l]=c.useState();return c.useEffect(()=>{o.mode==="single"&&o.selected instanceof Date?l(o.selected):o.mode==="range"&&o.selected&&typeof o.selected=="object"&&"from"in o.selected&&o.selected.from instanceof Date&&l(o.selected.from)},[o.selected,o.mode]),se.jsx(Fo,{weekStartsOn:1,captionLayout:"dropdown-years",startMonth:new Date(r,0),endMonth:new Date(i,11),...o,month:a,onMonthChange:l,classNames:s,navLayout:"around",components:{PreviousMonthButton:({["aria-label"]:f,...u})=>se.jsx(Ye.Button,{ref:t,variant:"text",size:"sm",iconOnly:!0,"aria-label":f??"",...u,children:se.jsx(Et.l,{size:"sm"})}),NextMonthButton:({["aria-label"]:f,...u})=>se.jsx(Ye.Button,{variant:"text",size:"sm",iconOnly:!0,"aria-label":f??"",...u,children:se.jsx(Tt.n,{size:"sm"})})}})};nt.displayName="Calendar";exports.Calendar=nt;
|
|
2
|
-
//# sourceMappingURL=calendar-CBBV8n3x.js.map
|
|
@@ -1,275 +0,0 @@
|
|
|
1
|
-
import { jsx as o, jsxs as _ } from "react/jsx-runtime";
|
|
2
|
-
import { isValidElement as q, useState as L, useCallback as E, useEffect as R, useId as B, useRef as F, createElement as H } from "react";
|
|
3
|
-
import { c as z } from "./bind-CU-R61T-.mjs";
|
|
4
|
-
import { a as K } from "./checkmark.es-DdgIZN2R.mjs";
|
|
5
|
-
import { e as W } from "./minus.es-BK9qA9iJ.mjs";
|
|
6
|
-
import { l as O } from "./chevron-down.es-PCIIj6oG.mjs";
|
|
7
|
-
import { P as j } from "./paragraph-DSxXmX_0.mjs";
|
|
8
|
-
import { a as G } from "./badge-DalD-yqG.mjs";
|
|
9
|
-
import { b as M } from "./button-4-yWOgtD.mjs";
|
|
10
|
-
import { H as J } from "./heading-xwBuT_-9.mjs";
|
|
11
|
-
import { l as Q } from "./arrow-left.es-DU-PX-Il.mjs";
|
|
12
|
-
import { i as U } from "./arrow-right.es-C7SkjAB6.mjs";
|
|
13
|
-
const X = {
|
|
14
|
-
"purpur-comparison-table__wrapper": "_purpur-comparison-table__wrapper_1udkj_1",
|
|
15
|
-
"purpur-comparison-table": "_purpur-comparison-table_1udkj_1",
|
|
16
|
-
"purpur-comparison-table--primary": "_purpur-comparison-table--primary_1udkj_11",
|
|
17
|
-
"purpur-comparison-table--secondary": "_purpur-comparison-table--secondary_1udkj_15",
|
|
18
|
-
"purpur-comparison-table__feature-row": "_purpur-comparison-table__feature-row_1udkj_32",
|
|
19
|
-
"purpur-comparison-table__cards": "_purpur-comparison-table__cards_1udkj_32",
|
|
20
|
-
"purpur-comparison-table__separator": "_purpur-comparison-table__separator_1udkj_49"
|
|
21
|
-
}, Y = {
|
|
22
|
-
"purpur-comparison-table-cell": "_purpur-comparison-table-cell_117pb_1",
|
|
23
|
-
"purpur-comparison-table-cell--check": "_purpur-comparison-table-cell--check_117pb_16",
|
|
24
|
-
"purpur-comparison-table-cell--minus": "_purpur-comparison-table-cell--minus_117pb_19",
|
|
25
|
-
"purpur-comparison-table-cell__icon": "_purpur-comparison-table-cell__icon_117pb_22"
|
|
26
|
-
}, A = z.bind(Y), D = "purpur-comparison-table-cell", Z = ({ value: e }) => {
|
|
27
|
-
const s = q(e) || ["string", "number"].includes(typeof e), m = A(D, [s ? "" : `${D}--${e ? "check" : "minus"}`]), c = e ? K : W;
|
|
28
|
-
return /* @__PURE__ */ o("span", { className: A(m), children: s ? e : /* @__PURE__ */ o(c, { size: "xs", className: A(`${D}__icon`) }) });
|
|
29
|
-
}, rr = {
|
|
30
|
-
"purpur-comparison-table-lead-cell": "_purpur-comparison-table-lead-cell_1vild_1",
|
|
31
|
-
"purpur-comparison-table-lead-cell__description": "_purpur-comparison-table-lead-cell__description_1vild_5",
|
|
32
|
-
"purpur-comparison-table-lead-cell__summary": "_purpur-comparison-table-lead-cell__summary_1vild_40",
|
|
33
|
-
"purpur-comparison-table-lead-cell__summary-title": "_purpur-comparison-table-lead-cell__summary-title_1vild_48",
|
|
34
|
-
"purpur-comparison-table-lead-cell__summary-icon": "_purpur-comparison-table-lead-cell__summary-icon_1vild_51"
|
|
35
|
-
}, k = z.bind(rr), S = "purpur-comparison-table-lead-cell", or = ({ title: e, description: s }) => {
|
|
36
|
-
const l = typeof s == "string", m = k(S);
|
|
37
|
-
return /* @__PURE__ */ _("details", { className: m, "data-is-expandable": l, children: [
|
|
38
|
-
/* @__PURE__ */ _("summary", { className: k(`${S}__summary`), tabIndex: l ? 0 : -1, children: [
|
|
39
|
-
/* @__PURE__ */ o(j, { className: k(`${S}__summary-title`), variant: "paragraph-100-bold", children: e }),
|
|
40
|
-
/* @__PURE__ */ o(O, { className: k(`${S}__summary-icon`), size: "sm" })
|
|
41
|
-
] }),
|
|
42
|
-
s && /* @__PURE__ */ o(j, { variant: "paragraph-100", className: k(`${S}__description`), children: s })
|
|
43
|
-
] });
|
|
44
|
-
}, er = {
|
|
45
|
-
"purpur-comparison-table-option-card": "_purpur-comparison-table-option-card_15113_1",
|
|
46
|
-
"purpur-comparison-table-option-card--highlighted": "_purpur-comparison-table-option-card--highlighted_15113_11",
|
|
47
|
-
"purpur-comparison-table-option-card__badge": "_purpur-comparison-table-option-card__badge_15113_14",
|
|
48
|
-
"purpur-comparison-table-option-card__main-content": "_purpur-comparison-table-option-card__main-content_15113_19",
|
|
49
|
-
"purpur-comparison-table-option-card__image": "_purpur-comparison-table-option-card__image_15113_25",
|
|
50
|
-
"purpur-comparison-table-option-card__body": "_purpur-comparison-table-option-card__body_15113_31",
|
|
51
|
-
"purpur-comparison-table-option-card__description": "_purpur-comparison-table-option-card__description_15113_36",
|
|
52
|
-
"purpur-comparison-table-option-card__description-text": "_purpur-comparison-table-option-card__description-text_15113_41",
|
|
53
|
-
"purpur-comparison-table-option-card__read-more": "_purpur-comparison-table-option-card__read-more_15113_50",
|
|
54
|
-
"purpur-comparison-table-option-card__read-more-icon": "_purpur-comparison-table-option-card__read-more-icon_15113_54",
|
|
55
|
-
"purpur-comparison-table-option-card__footer": "_purpur-comparison-table-option-card__footer_15113_62",
|
|
56
|
-
"purpur-comparison-table-option-card__price": "_purpur-comparison-table-option-card__price_15113_67",
|
|
57
|
-
"purpur-comparison-table-option-card--show-full-descriptions": "_purpur-comparison-table-option-card--show-full-descriptions_15113_74",
|
|
58
|
-
"purpur-comparison-table-option-card--first-card": "_purpur-comparison-table-option-card--first-card_15113_107"
|
|
59
|
-
}, u = z.bind(er), p = "purpur-comparison-table-option-card", ar = ({
|
|
60
|
-
id: e,
|
|
61
|
-
description: s,
|
|
62
|
-
variablePriceText: l,
|
|
63
|
-
price: m,
|
|
64
|
-
isHighlighted: c,
|
|
65
|
-
ariaLabels: f,
|
|
66
|
-
badge: h,
|
|
67
|
-
actions: g,
|
|
68
|
-
isFirstCard: v,
|
|
69
|
-
image: $,
|
|
70
|
-
title: C,
|
|
71
|
-
showFullDescriptions: r,
|
|
72
|
-
toggleShowFullDescriptions: i
|
|
73
|
-
}) => {
|
|
74
|
-
const d = u(p, {
|
|
75
|
-
[`${p}--highlighted`]: c,
|
|
76
|
-
[`${p}--first-card`]: v,
|
|
77
|
-
[`${p}--show-full-descriptions`]: r
|
|
78
|
-
}), b = () => {
|
|
79
|
-
if (!s) return null;
|
|
80
|
-
const n = s.length > 50;
|
|
81
|
-
return /* @__PURE__ */ _("div", { className: u(`${p}__description`), children: [
|
|
82
|
-
/* @__PURE__ */ o(j, { variant: "paragraph-100", className: u(`${p}__description-text`), children: s }),
|
|
83
|
-
n && /* @__PURE__ */ _(
|
|
84
|
-
M,
|
|
85
|
-
{
|
|
86
|
-
variant: "text",
|
|
87
|
-
size: "xs",
|
|
88
|
-
className: u(`${p}__read-more`),
|
|
89
|
-
onClick: i,
|
|
90
|
-
children: [
|
|
91
|
-
/* @__PURE__ */ o("span", { className: u(`${p}__read-more-text`), children: r ? f.readLess : f.readMore }),
|
|
92
|
-
/* @__PURE__ */ o(O, { className: u(`${p}__read-more-icon`), size: "xs" })
|
|
93
|
-
]
|
|
94
|
-
}
|
|
95
|
-
)
|
|
96
|
-
] });
|
|
97
|
-
};
|
|
98
|
-
return /* @__PURE__ */ _("article", { className: d, "data-card-id": e, children: [
|
|
99
|
-
h && /* @__PURE__ */ o(G, { ...h, className: u(`${p}__badge`) }),
|
|
100
|
-
/* @__PURE__ */ _("section", { className: u(`${p}__main-content`), children: [
|
|
101
|
-
/* @__PURE__ */ o("img", { src: $.src, alt: $.alt, className: u(`${p}__image`) }),
|
|
102
|
-
/* @__PURE__ */ _("div", { className: u(`${p}__body`), children: [
|
|
103
|
-
/* @__PURE__ */ o(J, { tag: "h3", variant: "title-200", className: u(`${p}__title`), children: C }),
|
|
104
|
-
b()
|
|
105
|
-
] })
|
|
106
|
-
] }),
|
|
107
|
-
/* @__PURE__ */ _("footer", { className: u(`${p}__footer`), children: [
|
|
108
|
-
/* @__PURE__ */ _("span", { className: u(`${p}__price`), id: e, children: [
|
|
109
|
-
/* @__PURE__ */ o(j, { variant: "paragraph-100", children: l }),
|
|
110
|
-
/* @__PURE__ */ o(j, { variant: "paragraph-100-bold", children: m })
|
|
111
|
-
] }),
|
|
112
|
-
g
|
|
113
|
-
] })
|
|
114
|
-
] });
|
|
115
|
-
}, tr = "_active_ybbe8_44", sr = {
|
|
116
|
-
"purpur-comparison-table-scroll-progress": "_purpur-comparison-table-scroll-progress_ybbe8_1",
|
|
117
|
-
"purpur-comparison-table-scroll-progress__indicators": "_purpur-comparison-table-scroll-progress__indicators_ybbe8_15",
|
|
118
|
-
"purpur-comparison-table-scroll-progress__indicator": "_purpur-comparison-table-scroll-progress__indicator_ybbe8_15",
|
|
119
|
-
active: tr,
|
|
120
|
-
"purpur-comparison-table-scroll-progress__buttons": "_purpur-comparison-table-scroll-progress__buttons_ybbe8_48",
|
|
121
|
-
"purpur-comparison-table-scroll-progress__button": "_purpur-comparison-table-scroll-progress__button_ybbe8_48",
|
|
122
|
-
"purpur-comparison-table-scroll-progress__button-icon": "_purpur-comparison-table-scroll-progress__button-icon_ybbe8_57"
|
|
123
|
-
}, y = z.bind(sr), N = "purpur-comparison-table-scroll-progress", cr = ({ items: e, container: s, parentId: l, ariaLabels: m }) => {
|
|
124
|
-
const [c, f] = L(/* @__PURE__ */ new Set()), h = E(
|
|
125
|
-
(r) => {
|
|
126
|
-
const i = window.matchMedia("(prefers-reduced-motion: reduce)").matches;
|
|
127
|
-
document.querySelector(
|
|
128
|
-
`[data-card-id="${r}-${l}"]`
|
|
129
|
-
)?.scrollIntoView({ behavior: i ? "instant" : "smooth", block: "nearest" });
|
|
130
|
-
},
|
|
131
|
-
[l]
|
|
132
|
-
), g = E(() => {
|
|
133
|
-
if (c.size === 0) return;
|
|
134
|
-
const i = Math.min(...Array.from(c)) - 1;
|
|
135
|
-
i < 0 || h(i);
|
|
136
|
-
}, [c, h]), v = E(() => {
|
|
137
|
-
if (c.size === 0) return;
|
|
138
|
-
const i = Math.max(...Array.from(c)) + 1;
|
|
139
|
-
i >= e.length || h(i);
|
|
140
|
-
}, [c, e.length, h]), $ = E(
|
|
141
|
-
(r) => {
|
|
142
|
-
(r.key === "ArrowRight" || r.key === "ArrowLeft") && (r.preventDefault(), r.key === "ArrowRight" ? v() : r.key === "ArrowLeft" && g());
|
|
143
|
-
},
|
|
144
|
-
[v, g]
|
|
145
|
-
);
|
|
146
|
-
R(() => {
|
|
147
|
-
const r = s.current;
|
|
148
|
-
if (!r) return;
|
|
149
|
-
const i = new IntersectionObserver(
|
|
150
|
-
(d) => {
|
|
151
|
-
f((b) => {
|
|
152
|
-
const a = new Set(b);
|
|
153
|
-
return d.forEach((n) => {
|
|
154
|
-
let t = n.target.getAttribute("data-card-id")?.match(new RegExp(`(\\d+)-${l}`))?.[1];
|
|
155
|
-
t && (t = parseInt(t, 10), n.isIntersecting ? a.add(t) : a.delete(t));
|
|
156
|
-
}), a;
|
|
157
|
-
});
|
|
158
|
-
},
|
|
159
|
-
{ root: r, threshold: 0.5 }
|
|
160
|
-
);
|
|
161
|
-
return e.forEach((d, b) => {
|
|
162
|
-
const a = document.querySelector(
|
|
163
|
-
`[data-card-id="${b}-${l}"]`
|
|
164
|
-
);
|
|
165
|
-
a && i.observe(a);
|
|
166
|
-
}), () => i.disconnect();
|
|
167
|
-
}, [s, e, l]), R(() => {
|
|
168
|
-
const r = s.current;
|
|
169
|
-
if (r)
|
|
170
|
-
return r.addEventListener("keydown", $), () => r.removeEventListener("keydown", $);
|
|
171
|
-
}, [s, $]);
|
|
172
|
-
const C = () => {
|
|
173
|
-
if (c.size === 0) return;
|
|
174
|
-
const r = [], i = c.size, d = Math.min(...Array.from(c)), b = e.slice(0, d).length, a = e.slice(d + i).length;
|
|
175
|
-
let n = 0;
|
|
176
|
-
for (let t = 0; t < e.length; t++) {
|
|
177
|
-
if (b + 1 !== t && b <= t && t < e.length - a) continue;
|
|
178
|
-
let x = "active";
|
|
179
|
-
(t < b || t > e.length - 1 - a) && (x = ""), r.push(
|
|
180
|
-
/* @__PURE__ */ o("li", { className: y(`${N}__indicator`, x) }, `indicator-${n++}`)
|
|
181
|
-
);
|
|
182
|
-
}
|
|
183
|
-
return r.length < 2 ? null : r;
|
|
184
|
-
};
|
|
185
|
-
return /* @__PURE__ */ _("li", { className: y(N), children: [
|
|
186
|
-
/* @__PURE__ */ o("ul", { className: y(`${N}__indicators`), children: C() }),
|
|
187
|
-
/* @__PURE__ */ _("div", { className: y(`${N}__buttons`), children: [
|
|
188
|
-
/* @__PURE__ */ o(
|
|
189
|
-
M,
|
|
190
|
-
{
|
|
191
|
-
"aria-label": m.previous,
|
|
192
|
-
variant: "secondary",
|
|
193
|
-
iconOnly: !0,
|
|
194
|
-
className: y(`${N}__button`),
|
|
195
|
-
disabled: c.has(0),
|
|
196
|
-
onClick: g,
|
|
197
|
-
children: /* @__PURE__ */ o(Q, { className: y(`${N}__button-icon`), size: "xs" })
|
|
198
|
-
}
|
|
199
|
-
),
|
|
200
|
-
/* @__PURE__ */ o(
|
|
201
|
-
M,
|
|
202
|
-
{
|
|
203
|
-
"aria-label": m.next,
|
|
204
|
-
variant: "secondary",
|
|
205
|
-
iconOnly: !0,
|
|
206
|
-
className: y(`${N}__button`),
|
|
207
|
-
disabled: c.has(e.length - 1),
|
|
208
|
-
onClick: v,
|
|
209
|
-
children: /* @__PURE__ */ o(U, { className: y(`${N}__button-icon`), size: "xs" })
|
|
210
|
-
}
|
|
211
|
-
)
|
|
212
|
-
] })
|
|
213
|
-
] });
|
|
214
|
-
}, I = z.bind(X), w = "purpur-comparison-table", nr = ({
|
|
215
|
-
classname: e,
|
|
216
|
-
features: s,
|
|
217
|
-
items: l,
|
|
218
|
-
ariaLabels: m,
|
|
219
|
-
variant: c = "primary"
|
|
220
|
-
}) => {
|
|
221
|
-
const f = B(), h = I(e, w, `${w}--${c}`), g = F(null), [v, $] = L(!1), C = E(() => {
|
|
222
|
-
$((a) => !a);
|
|
223
|
-
}, []), r = () => /* @__PURE__ */ _("li", { className: I(`${w}__cards`), children: [
|
|
224
|
-
/* @__PURE__ */ o("div", { className: I(`${w}__separator`) }),
|
|
225
|
-
l.map((a, n) => /* @__PURE__ */ H(
|
|
226
|
-
ar,
|
|
227
|
-
{
|
|
228
|
-
...a,
|
|
229
|
-
showFullDescriptions: v,
|
|
230
|
-
toggleShowFullDescriptions: C,
|
|
231
|
-
key: n,
|
|
232
|
-
isFirstCard: n === 0,
|
|
233
|
-
ariaLabels: m,
|
|
234
|
-
id: `${n}-${f}`
|
|
235
|
-
}
|
|
236
|
-
))
|
|
237
|
-
] }), i = () => Object.entries(s).map(([a, n], t) => /* @__PURE__ */ _("li", { className: I(`${w}__feature-row`), children: [
|
|
238
|
-
/* @__PURE__ */ o(or, { title: a, description: n }),
|
|
239
|
-
l.map((x, T) => /* @__PURE__ */ o(Z, { value: x.features[a] ?? !1 }, T))
|
|
240
|
-
] }, t)), d = F(0), b = (a) => {
|
|
241
|
-
const n = a.currentTarget, t = n.querySelector("[data-card-id]")?.clientWidth ?? 0, x = Math.round(n.scrollLeft / t), T = x * t + x, P = a.timeStamp - d.current, V = Math.abs(n.scrollLeft - T);
|
|
242
|
-
d.current && P < 200 || V < 10 || (d.current = a.timeStamp, n.scrollTo({ left: T, behavior: "smooth" }));
|
|
243
|
-
};
|
|
244
|
-
return /* @__PURE__ */ o("div", { className: I(w + "__wrapper"), children: /* @__PURE__ */ _(
|
|
245
|
-
"ul",
|
|
246
|
-
{
|
|
247
|
-
id: w + `-${f}`,
|
|
248
|
-
ref: g,
|
|
249
|
-
className: h,
|
|
250
|
-
onScrollEnd: b,
|
|
251
|
-
style: {
|
|
252
|
-
// @ts-expect-error | Typescript doesn't recognize the CSS variable, but it works as intended
|
|
253
|
-
"--initial-columns": l.length + 1
|
|
254
|
-
},
|
|
255
|
-
children: [
|
|
256
|
-
/* @__PURE__ */ o(
|
|
257
|
-
cr,
|
|
258
|
-
{
|
|
259
|
-
items: l,
|
|
260
|
-
container: g,
|
|
261
|
-
ariaLabels: m,
|
|
262
|
-
parentId: CSS.escape(f)
|
|
263
|
-
}
|
|
264
|
-
),
|
|
265
|
-
r(),
|
|
266
|
-
i()
|
|
267
|
-
]
|
|
268
|
-
}
|
|
269
|
-
) });
|
|
270
|
-
};
|
|
271
|
-
nr.displayName = "ComparisonTable";
|
|
272
|
-
export {
|
|
273
|
-
nr as C
|
|
274
|
-
};
|
|
275
|
-
//# sourceMappingURL=comparison-table-8bOJmz-L.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"comparison-table-8bOJmz-L.mjs","sources":["../../../components/comparison-table/src/components/Cell/cell.tsx","../../../components/comparison-table/src/components/LeadCell/lead-cell.tsx","../../../components/comparison-table/src/components/OptionCard/option-card.tsx","../../../components/comparison-table/src/components/ScrollProgress/scroll-progress.tsx","../../../components/comparison-table/src/comparison-table.tsx"],"sourcesContent":["import React, { isValidElement, type ReactNode } from \"react\";\nimport { IconCheckmark } from \"@purpur/icon/checkmark\";\nimport { IconMinus } from \"@purpur/icon/minus\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./cell.module.scss\";\n\ntype CellProps = {\n value: boolean | ReactNode;\n};\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table-cell\";\n\nexport const Cell = ({ value }: CellProps) => {\n const isReactNode = isValidElement(value) || [\"string\", \"number\"].includes(typeof value);\n\n const getClassName = () => {\n if (isReactNode) return \"\";\n return `${rootClassName}--${value ? \"check\" : \"minus\"}`;\n };\n\n const classes = cx(rootClassName, [getClassName()]);\n\n const Icon = value ? IconCheckmark : IconMinus;\n\n return (\n <span className={cx(classes)}>\n {isReactNode ? value : <Icon size=\"xs\" className={cx(`${rootClassName}__icon`)} />}\n </span>\n );\n};\n","import React, { type ReactNode } from \"react\";\nimport { IconChevronDown } from \"@purpur/icon/chevron-down\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./lead-cell.module.scss\";\n\ntype LeadCellProps = {\n title: string;\n description?: ReactNode;\n};\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table-lead-cell\";\n\nexport const LeadCell = ({ title, description }: LeadCellProps) => {\n const isExpandable = typeof description === \"string\";\n const classes = cx(rootClassName);\n\n return (\n <details className={classes} data-is-expandable={isExpandable}>\n <summary className={cx(`${rootClassName}__summary`)} tabIndex={isExpandable ? 0 : -1}>\n <Paragraph className={cx(`${rootClassName}__summary-title`)} variant=\"paragraph-100-bold\">\n {title}\n </Paragraph>\n <IconChevronDown className={cx(`${rootClassName}__summary-icon`)} size=\"sm\" />\n </summary>\n {description && (\n <Paragraph variant=\"paragraph-100\" className={cx(`${rootClassName}__description`)}>\n {description}\n </Paragraph>\n )}\n </details>\n );\n};\n","import React, { type ReactNode } from \"react\";\nimport { Badge, type BadgeProps } from \"@purpur/badge\";\nimport { Button } from \"@purpur/button\";\nimport { Heading } from \"@purpur/heading\";\nimport { IconChevronDown } from \"@purpur/icon/chevron-down\";\nimport { Paragraph } from \"@purpur/paragraph\";\nimport c from \"classnames/bind\";\n\nimport { type ComparisonTableProps } from \"../../comparison-table\";\nimport styles from \"./option-card.module.scss\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table-option-card\";\n\nexport type OptionCardProps = {\n image: {\n src: string;\n alt: string;\n };\n\n title: string;\n description: string;\n variablePriceText: string;\n price: string;\n\n actions: ReactNode;\n\n badge?: BadgeProps;\n isHighlighted?: boolean;\n};\n\ntype OptionCardPropsAdditions = {\n id: string;\n isFirstCard: boolean;\n ariaLabels: ComparisonTableProps[\"ariaLabels\"];\n\n showFullDescriptions: boolean;\n toggleShowFullDescriptions: () => void;\n};\n\nexport const OptionCard = ({\n id,\n description,\n variablePriceText,\n price,\n isHighlighted,\n ariaLabels,\n badge,\n actions,\n isFirstCard,\n image,\n title,\n showFullDescriptions,\n toggleShowFullDescriptions,\n}: OptionCardProps & OptionCardPropsAdditions) => {\n const classes = cx(rootClassName, {\n [`${rootClassName}--highlighted`]: isHighlighted,\n [`${rootClassName}--first-card`]: isFirstCard,\n [`${rootClassName}--show-full-descriptions`]: showFullDescriptions,\n });\n\n const renderDescription = () => {\n if (!description) return null;\n\n const longThreshold = 50;\n const longDescription = description.length > longThreshold;\n\n return (\n <div className={cx(`${rootClassName}__description`)}>\n <Paragraph variant=\"paragraph-100\" className={cx(`${rootClassName}__description-text`)}>\n {description}\n </Paragraph>\n {longDescription && (\n <Button\n variant=\"text\"\n size=\"xs\"\n className={cx(`${rootClassName}__read-more`)}\n onClick={toggleShowFullDescriptions}\n >\n <span className={cx(`${rootClassName}__read-more-text`)}>\n {showFullDescriptions ? ariaLabels.readLess : ariaLabels.readMore}\n </span>\n <IconChevronDown className={cx(`${rootClassName}__read-more-icon`)} size=\"xs\" />\n </Button>\n )}\n </div>\n );\n };\n\n return (\n <article className={classes} data-card-id={id}>\n {badge && <Badge {...badge} className={cx(`${rootClassName}__badge`)} />}\n\n <section className={cx(`${rootClassName}__main-content`)}>\n <img src={image.src} alt={image.alt} className={cx(`${rootClassName}__image`)} />\n\n <div className={cx(`${rootClassName}__body`)}>\n <Heading tag=\"h3\" variant=\"title-200\" className={cx(`${rootClassName}__title`)}>\n {title}\n </Heading>\n {renderDescription()}\n </div>\n </section>\n\n <footer className={cx(`${rootClassName}__footer`)}>\n <span className={cx(`${rootClassName}__price`)} id={id}>\n <Paragraph variant=\"paragraph-100\">{variablePriceText}</Paragraph>\n <Paragraph variant=\"paragraph-100-bold\">{price}</Paragraph>\n </span>\n\n {actions}\n </footer>\n </article>\n );\n};\n","import React, { type RefObject, useCallback, useEffect, useState } from \"react\";\nimport { Button } from \"@purpur/button\";\nimport { IconArrowLeft } from \"@purpur/icon/arrow-left\";\nimport { IconArrowRight } from \"@purpur/icon/arrow-right\";\nimport c from \"classnames/bind\";\n\nimport { type ComparisonTableProps, type Features, type Item } from \"../../comparison-table\";\nimport styles from \"./scroll-progress.module.scss\";\n\nconst cx = c.bind(styles);\nconst rootClassName = \"purpur-comparison-table-scroll-progress\";\n\ntype ScrollProgressProps = {\n items: Array<Item<Features>>;\n container: RefObject<HTMLUListElement | null>;\n parentId: string;\n ariaLabels: ComparisonTableProps[\"ariaLabels\"];\n};\n\nexport const ScrollProgress = ({ items, container, parentId, ariaLabels }: ScrollProgressProps) => {\n const [inViewSet, setInViewSet] = useState<Set<number>>(new Set());\n\n const scrollToCard = useCallback(\n (index: number) => {\n const reduceMotion = window.matchMedia(\"(prefers-reduced-motion: reduce)\").matches;\n\n const card = document.querySelector(\n `[data-card-id=\"${index}-${parentId}\"]`\n ) as HTMLElement | null;\n card?.scrollIntoView({ behavior: reduceMotion ? \"instant\" : \"smooth\", block: \"nearest\" });\n },\n [parentId]\n );\n\n const previousCard = useCallback(() => {\n if (inViewSet.size === 0) return;\n\n const leftmostactiveIndex = Math.min(...Array.from(inViewSet));\n const targetIndex = leftmostactiveIndex - 1;\n\n if (targetIndex < 0) return;\n\n scrollToCard(targetIndex);\n }, [inViewSet, scrollToCard]);\n\n const nextCard = useCallback(() => {\n if (inViewSet.size === 0) return;\n\n const rightmostactiveIndex = Math.max(...Array.from(inViewSet));\n const targetIndex = rightmostactiveIndex + 1;\n\n if (targetIndex >= items.length) return;\n\n scrollToCard(targetIndex);\n }, [inViewSet, items.length, scrollToCard]);\n\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === \"ArrowRight\" || e.key === \"ArrowLeft\") {\n e.preventDefault();\n\n if (e.key === \"ArrowRight\") nextCard();\n else if (e.key === \"ArrowLeft\") previousCard();\n }\n },\n [nextCard, previousCard]\n );\n\n useEffect(() => {\n const root = container.current;\n\n if (!root) return;\n\n const observer = new IntersectionObserver(\n (entries) => {\n setInViewSet((prev) => {\n const next = new Set(prev);\n\n entries.forEach((entry) => {\n let index: number | string | undefined = entry.target\n .getAttribute(\"data-card-id\")\n ?.match(new RegExp(`(\\\\d+)-${parentId}`))?.[1];\n\n if (!index) return;\n\n index = parseInt(index, 10);\n\n if (entry.isIntersecting) {\n next.add(index);\n } else {\n next.delete(index);\n }\n });\n return next;\n });\n },\n { root, threshold: 0.5 }\n );\n\n items.forEach((_, index) => {\n const card = document.querySelector(\n `[data-card-id=\"${index}-${parentId}\"]`\n ) as HTMLElement | null;\n\n if (card) observer.observe(card);\n });\n\n return () => observer.disconnect();\n }, [container, items, parentId]);\n\n useEffect(() => {\n const root = container.current;\n\n if (!root) return;\n\n root.addEventListener(\"keydown\", handleKeyDown);\n\n return () => root.removeEventListener(\"keydown\", handleKeyDown);\n }, [container, handleKeyDown]);\n\n const renderIndicators = () => {\n if (inViewSet.size === 0) return;\n\n const indicators = [];\n const viewCapacity = inViewSet.size;\n const leftmostActiveIndex = Math.min(...Array.from(inViewSet));\n const head = items.slice(0, leftmostActiveIndex).length;\n const trail = items.slice(leftmostActiveIndex + viewCapacity).length;\n\n let key = 0;\n\n for (let i = 0; i < items.length; i++) {\n if (head + 1 !== i && head <= i && i < items.length - trail) continue;\n\n let status = \"active\";\n\n if (i < head || i > items.length - 1 - trail) status = \"\";\n\n indicators.push(\n <li key={`indicator-${key++}`} className={cx(`${rootClassName}__indicator`, status)} />\n );\n }\n\n if (indicators.length < 2) return null;\n\n return indicators;\n };\n\n return (\n <li className={cx(rootClassName)}>\n <ul className={cx(`${rootClassName}__indicators`)}>{renderIndicators()}</ul>\n\n <div className={cx(`${rootClassName}__buttons`)}>\n <Button\n aria-label={ariaLabels.previous}\n variant=\"secondary\"\n iconOnly\n className={cx(`${rootClassName}__button`)}\n disabled={inViewSet.has(0)}\n onClick={previousCard}\n >\n <IconArrowLeft className={cx(`${rootClassName}__button-icon`)} size=\"xs\" />\n </Button>\n <Button\n aria-label={ariaLabels.next}\n variant=\"secondary\"\n iconOnly\n className={cx(`${rootClassName}__button`)}\n disabled={inViewSet.has(items.length - 1)}\n onClick={nextCard}\n >\n <IconArrowRight className={cx(`${rootClassName}__button-icon`)} size=\"xs\" />\n </Button>\n </div>\n </li>\n );\n};\n","import React, { type ReactNode, type UIEvent, useCallback, useId, useRef, useState } from \"react\";\nimport c from \"classnames/bind\";\n\nimport styles from \"./comparison-table.module.scss\";\nimport { Cell } from \"./components/Cell/cell\";\nimport { LeadCell } from \"./components/LeadCell/lead-cell\";\nimport { OptionCard, type OptionCardProps } from \"./components/OptionCard/option-card\";\nimport { ScrollProgress } from \"./components/ScrollProgress/scroll-progress\";\n\nconst cx = c.bind(styles);\n\nconst rootClassName = \"purpur-comparison-table\";\n\nexport type Features = Record<string, ReactNode | null>;\n\nexport type Item<TFeatures extends Features = Features> = OptionCardProps & {\n features: Partial<Record<keyof TFeatures, ReactNode | string | boolean>>;\n};\n\nexport type ComparisonTableProps<TFeatures extends Features = Features> = {\n /** List of features that can be supported by the comparison table\n *\n * string = description of the feature that can be viewed by expanding cell.\n *\n * null = no description\n *\n {\n [featureName]: ReactNode | null\n }\n */\n features: TFeatures;\n\n /** List of items to be displayed in the comparison table\n *\n *\n Item = {\n image: {\n src: string;\n alt: string;\n };\n\n title: string;\n description: string;\n variablePriceText: string;\n price: string;\n actions: ReactNode;\n badge?: BadgeProps;\n isHighlighted?: boolean;\n\n features: {\n [featureName in keyof Features]?: string | boolean;\n };\n }\n */\n items: Array<Item<TFeatures>>;\n\n /** Aria labels for the comparison table and various components\n *\n {\n previous: string;\n next: string;\n readMore: string;\n readLess: string;\n }\n */\n ariaLabels: {\n previous: string;\n next: string;\n readMore: string;\n readLess: string;\n };\n variant?: \"primary\" | \"secondary\";\n classname?: string;\n};\n\nexport const ComparisonTable = <TFeatures extends Features>({\n classname,\n features,\n items,\n ariaLabels,\n variant = \"primary\",\n}: ComparisonTableProps<TFeatures>) => {\n const id = useId();\n const classes = cx(classname, rootClassName, `${rootClassName}--${variant}`);\n const containerRef = useRef<HTMLUListElement>(null);\n const [showFullDescriptions, setShowFullDescriptions] = useState(false);\n\n const handleToggleShowFullDescriptions = useCallback(() => {\n setShowFullDescriptions((prev) => !prev);\n }, []);\n\n const renderCards = () => {\n return (\n <li className={cx(`${rootClassName}__cards`)}>\n <div className={cx(`${rootClassName}__separator`)} />\n {items.map((item, index) => (\n <OptionCard\n {...item}\n showFullDescriptions={showFullDescriptions}\n toggleShowFullDescriptions={handleToggleShowFullDescriptions}\n key={index}\n isFirstCard={index === 0}\n ariaLabels={ariaLabels}\n id={`${index}-${id}`}\n />\n ))}\n </li>\n );\n };\n\n const renderFeatures = () => {\n return Object.entries(features).map(([title, description], i) => (\n <li key={i} className={cx(`${rootClassName}__feature-row`)}>\n <LeadCell title={title} description={description} />\n {items.map((item, index) => (\n <Cell key={index} value={item.features[title as keyof TFeatures] ?? false} />\n ))}\n </li>\n ));\n };\n\n const deltaTime = useRef(0);\n\n const handleScrollEnd = (e: UIEvent<HTMLUListElement>) => {\n /**\n * This function makes sure that the scroll position is never stuck between two cards, since scroll snap is not fully reliable.\n */\n\n const target = e.currentTarget;\n const cardwidth = target.querySelector(\"[data-card-id]\")?.clientWidth ?? 0;\n const cardPos = Math.round(target.scrollLeft / cardwidth);\n const scrollTarget = cardPos * cardwidth + cardPos;\n const timeDiff = e.timeStamp - deltaTime.current;\n const scrollDiff = Math.abs(target.scrollLeft - scrollTarget);\n\n if (deltaTime.current && timeDiff < 200) return;\n if (scrollDiff < 10) return;\n\n deltaTime.current = e.timeStamp;\n\n target.scrollTo({ left: scrollTarget, behavior: \"smooth\" });\n };\n\n return (\n <div className={cx(rootClassName + \"__wrapper\")}>\n <ul\n id={rootClassName + `-${id}`}\n ref={containerRef}\n className={classes}\n // eslint-disable-next-line react/no-unknown-property\n onScrollEnd={handleScrollEnd}\n style={{\n // @ts-expect-error | Typescript doesn't recognize the CSS variable, but it works as intended\n [\"--initial-columns\"]: items.length + 1,\n }}\n >\n <ScrollProgress\n items={items}\n container={containerRef}\n ariaLabels={ariaLabels}\n parentId={CSS.escape(id)}\n />\n {renderCards()}\n {renderFeatures()}\n </ul>\n </div>\n );\n};\n\nComparisonTable.displayName = \"ComparisonTable\";\n"],"names":["cx","c","styles","rootClassName","Cell","value","isReactNode","isValidElement","classes","Icon","IconCheckmark","IconMinus","jsx","LeadCell","title","description","isExpandable","jsxs","Paragraph","IconChevronDown","OptionCard","id","variablePriceText","price","isHighlighted","ariaLabels","badge","actions","isFirstCard","image","showFullDescriptions","toggleShowFullDescriptions","renderDescription","longDescription","Button","Badge","Heading","ScrollProgress","items","container","parentId","inViewSet","setInViewSet","useState","scrollToCard","useCallback","index","reduceMotion","previousCard","targetIndex","nextCard","handleKeyDown","e","useEffect","root","observer","entries","prev","next","entry","_","card","renderIndicators","indicators","viewCapacity","leftmostActiveIndex","head","trail","key","i","status","IconArrowLeft","IconArrowRight","ComparisonTable","classname","features","variant","useId","containerRef","useRef","setShowFullDescriptions","handleToggleShowFullDescriptions","renderCards","item","createElement","renderFeatures","deltaTime","handleScrollEnd","target","cardwidth","cardPos","scrollTarget","timeDiff","scrollDiff"],"mappings":"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"}
|