@ionic/core 9.0.11-dev.11793888057.13a7fa02 → 9.0.11-dev.11793890855.1bf6a6e5

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 (38) hide show
  1. package/components/ion-accordion.js +1 -1
  2. package/components/ion-datetime-button.js +1 -1
  3. package/components/ion-datetime.js +1 -1
  4. package/components/{p-BCQSEpww.js → p-B7ExaLVL.js} +1 -1
  5. package/dist/cjs/ion-accordion_2.cjs.entry.js +1 -1
  6. package/dist/cjs/ion-datetime-button.cjs.entry.js +33 -6
  7. package/dist/cjs/ion-datetime.cjs.entry.js +339 -37
  8. package/dist/cjs/ionic.cjs.js +1 -1
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/collection/components/accordion/accordion.ionic.css +11 -3
  11. package/dist/collection/components/datetime/datetime.ionic.css +211 -5
  12. package/dist/collection/components/datetime/datetime.ios.css +164 -0
  13. package/dist/collection/components/datetime/datetime.js +394 -36
  14. package/dist/collection/components/datetime/datetime.md.css +152 -0
  15. package/dist/collection/components/datetime/utils/state.js +18 -1
  16. package/dist/collection/components/datetime-button/datetime-button.js +34 -6
  17. package/dist/docs.json +153 -3
  18. package/dist/esm/{format-NT7iHsbA.js → format-DUHrIiJq.js} +1 -1
  19. package/dist/esm/ion-accordion_2.entry.js +1 -1
  20. package/dist/esm/ion-datetime-button.entry.js +34 -7
  21. package/dist/esm/ion-datetime.entry.js +340 -38
  22. package/dist/esm/ionic.js +1 -1
  23. package/dist/esm/loader.js +1 -1
  24. package/dist/html.html-data.json +21 -1
  25. package/dist/ionic/ionic.esm.js +1 -1
  26. package/dist/ionic/{p-8e2bd5e6.entry.js → p-8b107444.entry.js} +1 -1
  27. package/dist/ionic/{p-BtccSO5J.js → p-CaOPF8Xt.js} +1 -1
  28. package/dist/ionic/p-ceca04fb.entry.js +4 -0
  29. package/dist/ionic/p-ec99dc1f.entry.js +4 -0
  30. package/dist/types/components/datetime/datetime-interface.d.ts +4 -0
  31. package/dist/types/components/datetime/datetime.d.ts +73 -6
  32. package/dist/types/components/datetime/utils/state.d.ts +5 -2
  33. package/dist/types/components.d.ts +37 -4
  34. package/hydrate/index.js +381 -44
  35. package/hydrate/index.mjs +381 -44
  36. package/package.json +1 -1
  37. package/dist/ionic/p-0743a26a.entry.js +0 -4
  38. package/dist/ionic/p-ad46d2fd.entry.js +0 -4
@@ -1,4 +1,4 @@
1
1
  /*!
2
2
  * (C) Ionic http://ionicframework.com - MIT License
3
3
  */
4
- import{p as n}from"./p-DFBWAYvo.js";const e=(n,e)=>n.month===e.month&&n.day===e.day&&n.year===e.year,r=(n,e)=>!!(n.year<e.year||n.year===e.year&&n.month<e.month||n.year===e.year&&n.month===e.month&&null!==n.day&&n.day<e.day),o=(n,e)=>!!(n.year>e.year||n.year===e.year&&n.month>e.month||n.year===e.year&&n.month===e.month&&null!==n.day&&n.day>e.day),t=(e,t,a)=>{const i=Array.isArray(e)?e:[e];for(const d of i)if(void 0!==t&&r(d,t)||void 0!==a&&o(d,a)){n(`[ion-datetime] - The value provided to ion-datetime is out of bounds.\n\nMin: ${JSON.stringify(t)}\nMax: ${JSON.stringify(a)}\nValue: ${JSON.stringify(e)}`);break}},a=(n,e)=>{if(void 0!==e)return e;const r=new Intl.DateTimeFormat(n,{hour:"numeric"}),o=r.resolvedOptions();if(void 0!==o.hourCycle)return o.hourCycle;const t=new Date("5/18/2021 00:00"),a=r.formatToParts(t).find((n=>"hour"===n.type));if(!a)throw new Error("Hour value not found from DateTimeFormat");switch(a.value){case"0":return"h11";case"12":return"h12";case"00":return"h23";case"24":return"h24";default:throw new Error(`Invalid hour cycle "${e}"`)}},i=n=>"h23"===n||"h24"===n,d=(n,e)=>4===n||6===n||9===n||11===n?30:2===n?(n=>n%4==0&&n%100!=0||n%400==0)(e)?29:28:31,s=(n,e={month:"numeric",year:"numeric"})=>"month"===new Intl.DateTimeFormat(n,e).formatToParts(new Date)[0].type,u=n=>"dayPeriod"===new Intl.DateTimeFormat(n,{hour:"numeric"}).formatToParts(new Date)[0].type,m=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,c=/^((\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,v=n=>{if(void 0===n)return;let e,r=n;return"string"==typeof n&&(r=n.replace(/\[|\]|\s/g,"").split(",")),e=Array.isArray(r)?r.map((n=>parseInt(n,10))).filter(isFinite):[r],e},y=n=>({month:parseInt(n.getAttribute("data-month"),10),day:parseInt(n.getAttribute("data-day"),10),year:parseInt(n.getAttribute("data-year"),10),dayOfWeek:parseInt(n.getAttribute("data-day-of-week"),10)});function l(e){if(Array.isArray(e)){const n=[];for(const r of e){const e=l(r);if(!e)return;n.push(e)}return n}let r=null;if(null!=e&&""!==e&&(r=c.exec(e),r?(r.unshift(void 0,void 0),r[2]=r[3]=void 0):r=m.exec(e)),null!==r){for(let n=1;n<8;n++)r[n]=void 0!==r[n]?parseInt(r[n],10):void 0;return{year:r[1],month:r[2],day:r[3],hour:r[4],minute:r[5],ampm:r[4]<12?"am":"pm"}}n(`[ion-datetime] - Unable to parse date string: ${e}. Please provide a valid ISO 8601 datetime string.`)}const h=(n,e,t)=>e&&r(n,e)?e:t&&o(n,t)?t:n,f=n=>n>=12?"pm":"am",w=(n,e)=>{const r=l(n);if(void 0===r)return;const{month:o,day:t,year:a,hour:i,minute:s}=r,u=a??e.year,m=o??12;return{month:m,day:t??d(m,u),year:u,hour:i??23,minute:s??59}},p=(n,e)=>{const r=l(n);if(void 0===r)return;const{month:o,day:t,year:a,hour:i,minute:d}=r;return{month:o??1,day:t??1,year:a??e.year,hour:i??0,minute:d??0}},I=n=>("0"+(void 0!==n?Math.abs(n):"0")).slice(-2);function $(n){if(Array.isArray(n))return n.map((n=>$(n)));let e="";var r;return void 0!==n.year?(e=("000"+(void 0!==(r=n.year)?Math.abs(r):"0")).slice(-4),void 0!==n.month&&(e+="-"+I(n.month),void 0!==n.day&&(e+="-"+I(n.day),void 0!==n.hour&&(e+=`T${I(n.hour)}:${I(n.minute)}:00`)))):void 0!==n.hour&&(e=I(n.hour)+":"+I(n.minute)),e}const T=(n,e)=>void 0===e?n:"am"===e?12===n?0:n:12===n?12:n+12,k=n=>{const{dayOfWeek:e}=n;if(null==e)throw new Error("No day of week provided");return g(n,e)},D=n=>{const{dayOfWeek:e}=n;if(null==e)throw new Error("No day of week provided");return E(n,6-e)},M=n=>E(n,1),N=n=>g(n,1),O=n=>g(n,7),Z=n=>E(n,7),g=(n,e)=>{const{month:r,day:o,year:t}=n;if(null===o)throw new Error("No day provided");const a={month:r,day:o,year:t};if(a.day=o-e,a.day<1&&(a.month-=1),a.month<1&&(a.month=12,a.year-=1),a.day<1){const n=d(a.month,a.year);a.day=n+a.day}return a},E=(n,e)=>{const{month:r,day:o,year:t}=n;if(null===o)throw new Error("No day provided");const a={month:r,day:o,year:t},i=d(r,t);return a.day=o+e,a.day>i&&(a.day-=i,a.month+=1),a.month>12&&(a.month=1,a.year+=1),a},A=n=>{const e=1===n.month?12:n.month-1,r=1===n.month?n.year-1:n.year,o=d(e,r);return{month:e,year:r,day:o<n.day?o:n.day}},C=n=>{const e=12===n.month?1:n.month+1,r=12===n.month?n.year+1:n.year,o=d(e,r);return{month:e,year:r,day:o<n.day?o:n.day}},P=(n,e)=>{const r=n.month,o=n.year+e,t=d(r,o);return{month:r,year:o,day:t<n.day?t:n.day}},U=n=>P(n,-1),V=n=>P(n,1),F=(n,e,r)=>e?n:T(n,r),W=(n,e)=>{const{ampm:r,hour:o}=n;let t=o;return"am"===r&&"pm"===e?t=T(t,"pm"):"pm"===r&&"am"===e&&(t=Math.abs(t-12)),t},b=(n,r,o)=>{const{month:t,day:a,year:i}=n,s=h({...n},r,o),u=d(t,i);return null!==a&&u<a&&(s.day=u),void 0!==r&&e(s,r)&&void 0!==s.hour&&void 0!==r.hour&&(s.hour<r.hour?(s.hour=r.hour,s.minute=r.minute):s.hour===r.hour&&void 0!==s.minute&&void 0!==r.minute&&s.minute<r.minute&&(s.minute=r.minute)),void 0!==o&&e(n,o)&&void 0!==s.hour&&void 0!==o.hour&&(s.hour>o.hour?(s.hour=o.hour,s.minute=o.minute):s.hour===o.hour&&void 0!==s.minute&&void 0!==o.minute&&s.minute>o.minute&&(s.minute=o.minute)),s},x=({refParts:n,monthValues:t,dayValues:a,yearValues:i,hourValues:d,minuteValues:s,minParts:u,maxParts:m})=>{const{hour:c,minute:v,day:y,month:l,year:h}=n,w={...n,dayOfWeek:void 0};if(void 0!==i){const n=i.filter((n=>!(void 0!==u&&n<u.year||void 0!==m&&n>m.year)));w.year=J(h,n)}if(void 0!==t){const n=t.filter((n=>!(void 0!==u&&w.year===u.year&&n<u.month||void 0!==m&&w.year===m.year&&n>m.month)));w.month=J(l,n)}if(null!==y&&void 0!==a){const n=a.filter((n=>!(void 0!==u&&r({...w,day:n},u)||void 0!==m&&o({...w,day:n},m))));w.day=J(y,n)}if(void 0!==c&&void 0!==d){const n=d.filter((n=>!(void 0!==u?.hour&&e(w,u)&&n<u.hour||void 0!==m?.hour&&e(w,m)&&n>m.hour)));w.hour=J(c,n),w.ampm=f(w.hour)}if(void 0!==v&&void 0!==s){const n=s.filter((n=>!(void 0!==u?.minute&&e(w,u)&&w.hour===u.hour&&n<u.minute||void 0!==m?.minute&&e(w,m)&&w.hour===m.hour&&n>m.minute)));w.minute=J(v,n)}return w},J=(n,e)=>{let r=e[0],o=Math.abs(r-n);for(let t=1;t<e.length;t++){const a=e[t],i=Math.abs(a-n);i<o&&(r=a,o=i)}return r},S=n=>({...n,timeZone:"UTC",timeZoneName:void 0}),j=(n,e,r,o={hour:"numeric",minute:"numeric"})=>{const t={hour:e.hour,minute:e.minute};return void 0===t.hour||void 0===t.minute?"Invalid Time":new Intl.DateTimeFormat(n,{...S(o),hourCycle:r}).format(new Date($({year:2023,day:1,month:1,...t})+"Z"))},B=n=>{const e=n.toString();return e.length>1?e:`0${e}`},G=(n,e)=>{if(0===n)switch(e){case"h11":return"0";case"h12":return"12";case"h23":return"00";case"h24":return"24";default:throw new Error(`Invalid hour cycle "${e}"`)}return i(e)?B(n):n.toString()},H=(n,e,r)=>{if(null===r.day)return null;const o=L(r),t=new Intl.DateTimeFormat(n,{weekday:"long",month:"long",day:"numeric",timeZone:"UTC"}).format(o);return e?`Today, ${t}`:t},q=(n,e)=>{const r=L(e);return new Intl.DateTimeFormat(n,{month:"long",year:"numeric",timeZone:"UTC"}).format(r)},z=(n,e)=>R(n,e,{day:"numeric"}).find((n=>"day"===n.type)).value,K=(n,e)=>Q(n,e,{year:"numeric"}),L=n=>new Date(`${n.month??1}/${n.day??1}/${n.year??2023}${void 0!==n.hour&&void 0!==n.minute?` ${n.hour}:${n.minute}`:""} GMT+0000`),Q=(n,e,r)=>{const o=L(e);return Y(n,S(r)).format(o)},R=(n,e,r)=>{const o=L(e);return Y(n,r).formatToParts(o)},Y=(n,e)=>new Intl.DateTimeFormat(n,{...e,timeZone:"UTC"}),X=n=>{if("RelativeTimeFormat"in Intl){const e=new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(0,"day");return e.charAt(0).toUpperCase()+e.slice(1)}return"Today"},_=n=>{const e=n.getTimezoneOffset();return n.setMinutes(n.getMinutes()-e),n},nn=_(new Date("2022T01:00")),en=_(new Date("2022T13:00")),rn=(n,e)=>{const r="am"===e?nn:en,o=new Intl.DateTimeFormat(n,{hour:"numeric",timeZone:"UTC"}).formatToParts(r).find((n=>"dayPeriod"===n.type));return o?o.value:(n=>void 0===n?"":n.toUpperCase())(e)},on=n=>Array.isArray(n)?n.join(","):n;export{Z as A,p as B,w as C,l as D,t as E,f as F,h as G,v as H,$ as I,x as J,s as K,u as L,q as M,j as N,Q as O,on as P,W as Q,A as a,X as b,K as c,a as d,F as e,G as f,C as g,B as h,rn as i,r as j,e as k,o as l,i as m,d as n,z as o,H as p,y as q,_ as r,V as s,U as t,D as u,b as v,k as w,N as x,M as y,O as z}
4
+ import{p as n}from"./p-DFBWAYvo.js";const e=(n,e)=>n.month===e.month&&n.day===e.day&&n.year===e.year,r=(n,e)=>!!(n.year<e.year||n.year===e.year&&n.month<e.month||n.year===e.year&&n.month===e.month&&null!==n.day&&n.day<e.day),o=(n,e)=>!!(n.year>e.year||n.year===e.year&&n.month>e.month||n.year===e.year&&n.month===e.month&&null!==n.day&&n.day>e.day),t=(e,t,a)=>{const i=Array.isArray(e)?e:[e];for(const d of i)if(void 0!==t&&r(d,t)||void 0!==a&&o(d,a)){n(`[ion-datetime] - The value provided to ion-datetime is out of bounds.\n\nMin: ${JSON.stringify(t)}\nMax: ${JSON.stringify(a)}\nValue: ${JSON.stringify(e)}`);break}},a=(n,e)=>{if(void 0!==e)return e;const r=new Intl.DateTimeFormat(n,{hour:"numeric"}),o=r.resolvedOptions();if(void 0!==o.hourCycle)return o.hourCycle;const t=new Date("5/18/2021 00:00"),a=r.formatToParts(t).find((n=>"hour"===n.type));if(!a)throw new Error("Hour value not found from DateTimeFormat");switch(a.value){case"0":return"h11";case"12":return"h12";case"00":return"h23";case"24":return"h24";default:throw new Error(`Invalid hour cycle "${e}"`)}},i=n=>"h23"===n||"h24"===n,d=(n,e)=>4===n||6===n||9===n||11===n?30:2===n?(n=>n%4==0&&n%100!=0||n%400==0)(e)?29:28:31,s=(n,e={month:"numeric",year:"numeric"})=>"month"===new Intl.DateTimeFormat(n,e).formatToParts(new Date)[0].type,u=n=>"dayPeriod"===new Intl.DateTimeFormat(n,{hour:"numeric"}).formatToParts(new Date)[0].type,m=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,c=/^((\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,v=n=>{if(void 0===n)return;let e,r=n;return"string"==typeof n&&(r=n.replace(/\[|\]|\s/g,"").split(",")),e=Array.isArray(r)?r.map((n=>parseInt(n,10))).filter(isFinite):[r],e},y=n=>({month:parseInt(n.getAttribute("data-month"),10),day:parseInt(n.getAttribute("data-day"),10),year:parseInt(n.getAttribute("data-year"),10),dayOfWeek:parseInt(n.getAttribute("data-day-of-week"),10)});function l(e){if(Array.isArray(e)){const n=[];for(const r of e){const e=l(r);if(!e)return;n.push(e)}return n}let r=null;if(null!=e&&""!==e&&(r=c.exec(e),r?(r.unshift(void 0,void 0),r[2]=r[3]=void 0):r=m.exec(e)),null!==r){for(let n=1;n<8;n++)r[n]=void 0!==r[n]?parseInt(r[n],10):void 0;return{year:r[1],month:r[2],day:r[3],hour:r[4],minute:r[5],ampm:r[4]<12?"am":"pm"}}n(`[ion-datetime] - Unable to parse date string: ${e}. Please provide a valid ISO 8601 datetime string.`)}const h=(n,e,t)=>e&&r(n,e)?e:t&&o(n,t)?t:n,f=n=>n>=12?"pm":"am",w=(n,e)=>{const r=l(n);if(void 0===r)return;const{month:o,day:t,year:a,hour:i,minute:s}=r,u=a??e.year,m=o??12;return{month:m,day:t??d(m,u),year:u,hour:i??23,minute:s??59}},p=(n,e)=>{const r=l(n);if(void 0===r)return;const{month:o,day:t,year:a,hour:i,minute:d}=r;return{month:o??1,day:t??1,year:a??e.year,hour:i??0,minute:d??0}},I=n=>("0"+(void 0!==n?Math.abs(n):"0")).slice(-2);function $(n){if(Array.isArray(n))return n.map((n=>$(n)));let e="";var r;return void 0!==n.year?(e=("000"+(void 0!==(r=n.year)?Math.abs(r):"0")).slice(-4),void 0!==n.month&&(e+="-"+I(n.month),void 0!==n.day&&(e+="-"+I(n.day),void 0!==n.hour&&(e+=`T${I(n.hour)}:${I(n.minute)}:00`)))):void 0!==n.hour&&(e=I(n.hour)+":"+I(n.minute)),e}const T=(n,e)=>void 0===e?n:"am"===e?12===n?0:n:12===n?12:n+12,k=n=>{const{dayOfWeek:e}=n;if(null==e)throw new Error("No day of week provided");return g(n,e)},D=n=>{const{dayOfWeek:e}=n;if(null==e)throw new Error("No day of week provided");return E(n,6-e)},M=n=>E(n,1),N=n=>g(n,1),O=n=>g(n,7),Z=n=>E(n,7),g=(n,e)=>{const{month:r,day:o,year:t}=n;if(null===o)throw new Error("No day provided");const a={month:r,day:o,year:t};if(a.day=o-e,a.day<1&&(a.month-=1),a.month<1&&(a.month=12,a.year-=1),a.day<1){const n=d(a.month,a.year);a.day=n+a.day}return a},E=(n,e)=>{const{month:r,day:o,year:t}=n;if(null===o)throw new Error("No day provided");const a={month:r,day:o,year:t},i=d(r,t);return a.day=o+e,a.day>i&&(a.day-=i,a.month+=1),a.month>12&&(a.month=1,a.year+=1),a},A=n=>{const e=1===n.month?12:n.month-1,r=1===n.month?n.year-1:n.year,o=d(e,r);return{month:e,year:r,day:o<n.day?o:n.day}},C=n=>{const e=12===n.month?1:n.month+1,r=12===n.month?n.year+1:n.year,o=d(e,r);return{month:e,year:r,day:o<n.day?o:n.day}},P=(n,e)=>{const r=n.month,o=n.year+e,t=d(r,o);return{month:r,year:o,day:t<n.day?t:n.day}},U=n=>P(n,-1),V=n=>P(n,1),F=(n,e,r)=>e?n:T(n,r),W=(n,e)=>{const{ampm:r,hour:o}=n;let t=o;return"am"===r&&"pm"===e?t=T(t,"pm"):"pm"===r&&"am"===e&&(t=Math.abs(t-12)),t},b=(n,r,o)=>{const{month:t,day:a,year:i}=n,s=h({...n},r,o),u=d(t,i);return null!==a&&u<a&&(s.day=u),void 0!==r&&e(s,r)&&void 0!==s.hour&&void 0!==r.hour&&(s.hour<r.hour?(s.hour=r.hour,s.minute=r.minute):s.hour===r.hour&&void 0!==s.minute&&void 0!==r.minute&&s.minute<r.minute&&(s.minute=r.minute)),void 0!==o&&e(n,o)&&void 0!==s.hour&&void 0!==o.hour&&(s.hour>o.hour?(s.hour=o.hour,s.minute=o.minute):s.hour===o.hour&&void 0!==s.minute&&void 0!==o.minute&&s.minute>o.minute&&(s.minute=o.minute)),s},x=({refParts:n,monthValues:t,dayValues:a,yearValues:i,hourValues:d,minuteValues:s,minParts:u,maxParts:m})=>{const{hour:c,minute:v,day:y,month:l,year:h}=n,w={...n,dayOfWeek:void 0};if(void 0!==i){const n=i.filter((n=>!(void 0!==u&&n<u.year||void 0!==m&&n>m.year)));w.year=J(h,n)}if(void 0!==t){const n=t.filter((n=>!(void 0!==u&&w.year===u.year&&n<u.month||void 0!==m&&w.year===m.year&&n>m.month)));w.month=J(l,n)}if(null!==y&&void 0!==a){const n=a.filter((n=>!(void 0!==u&&r({...w,day:n},u)||void 0!==m&&o({...w,day:n},m))));w.day=J(y,n)}if(void 0!==c&&void 0!==d){const n=d.filter((n=>!(void 0!==u?.hour&&e(w,u)&&n<u.hour||void 0!==m?.hour&&e(w,m)&&n>m.hour)));w.hour=J(c,n),w.ampm=f(w.hour)}if(void 0!==v&&void 0!==s){const n=s.filter((n=>!(void 0!==u?.minute&&e(w,u)&&w.hour===u.hour&&n<u.minute||void 0!==m?.minute&&e(w,m)&&w.hour===m.hour&&n>m.minute)));w.minute=J(v,n)}return w},J=(n,e)=>{let r=e[0],o=Math.abs(r-n);for(let t=1;t<e.length;t++){const a=e[t],i=Math.abs(a-n);i<o&&(r=a,o=i)}return r},S=n=>({...n,timeZone:"UTC",timeZoneName:void 0}),j=(n,e,r,o={hour:"numeric",minute:"numeric"})=>{const t={hour:e.hour,minute:e.minute};return void 0===t.hour||void 0===t.minute?"Invalid Time":new Intl.DateTimeFormat(n,{...S(o),hourCycle:r}).format(new Date($({year:2023,day:1,month:1,...t})+"Z"))},B=n=>{const e=n.toString();return e.length>1?e:`0${e}`},G=(n,e)=>{if(0===n)switch(e){case"h11":return"0";case"h12":return"12";case"h23":return"00";case"h24":return"24";default:throw new Error(`Invalid hour cycle "${e}"`)}return i(e)?B(n):n.toString()},H=(n,e,r)=>{if(null===r.day)return null;const o=L(r),t=new Intl.DateTimeFormat(n,{weekday:"long",month:"long",day:"numeric",timeZone:"UTC"}).format(o);return e?`Today, ${t}`:t},q=(n,e)=>{const r=L(e);return new Intl.DateTimeFormat(n,{month:"long",year:"numeric",timeZone:"UTC"}).format(r)},z=(n,e)=>R(n,e,{day:"numeric"}).find((n=>"day"===n.type)).value,K=(n,e)=>Q(n,e,{year:"numeric"}),L=n=>new Date(`${n.month??1}/${n.day??1}/${n.year??2023}${void 0!==n.hour&&void 0!==n.minute?` ${n.hour}:${n.minute}`:""} GMT+0000`),Q=(n,e,r)=>{const o=L(e);return Y(n,S(r)).format(o)},R=(n,e,r)=>{const o=L(e);return Y(n,r).formatToParts(o)},Y=(n,e)=>new Intl.DateTimeFormat(n,{...e,timeZone:"UTC"}),X=n=>{if("RelativeTimeFormat"in Intl){const e=new Intl.RelativeTimeFormat(n,{numeric:"auto"}).format(0,"day");return e.charAt(0).toUpperCase()+e.slice(1)}return"Today"},_=n=>{const e=n.getTimezoneOffset();return n.setMinutes(n.getMinutes()-e),n},nn=_(new Date("2022T01:00")),en=_(new Date("2022T13:00")),rn=(n,e)=>{const r="am"===e?nn:en,o=new Intl.DateTimeFormat(n,{hour:"numeric",timeZone:"UTC"}).formatToParts(r).find((n=>"dayPeriod"===n.type));return o?o.value:(n=>void 0===n?"":n.toUpperCase())(e)},on=n=>Array.isArray(n)?n.join(","):n;export{O as A,Z as B,p as C,w as D,l as E,t as F,h as G,f as H,v as I,x as J,s as K,u as L,q as M,j as N,Q as O,on as P,W as Q,A as a,X as b,K as c,a as d,F as e,G as f,C as g,B as h,rn as i,r as j,e as k,o as l,i as m,d as n,z as o,H as p,M as q,_ as r,$ as s,y as t,V as u,b as v,U as w,D as x,k as y,N as z}
@@ -12,7 +12,7 @@ require('./index-DkNv4J_i.js');
12
12
  require('./focus-visible-DGPRKkcx.js');
13
13
  require('./dir-Bma_9Lqh.js');
14
14
 
15
- const accordionIonicCss = () => `:host{display:block;position:relative;width:100%;overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host{position:relative}:host::after{-webkit-margin-start:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));right:0;left:0;bottom:0;display:block;position:absolute;height:var(--token-border-size-025, var(--token-scale-025, 1px));background-color:var(--token-border-default, var(--token-primitives-neutral-400, #d0d7df));content:"";z-index:3}:host(.accordion-last)::after{display:none}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}::slotted(ion-item[slot=header]){--border-radius:inherit;--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528));--border-width:var(--token-border-size-0, var(--token-scale-0, 0px));--inner-border-width:var(--token-scale-0, 0px);--min-height:var(--token-scale-700, 28px);--padding-top:var(--token-space-300, var(--token-scale-300, 12px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px));--padding-bottom:var(--token-space-300, var(--token-scale-300, 12px));--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--background-activated:var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #ebeef2));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.555556}#content-wrapper{-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-300, var(--token-scale-300, 12px));padding-bottom:var(--token-space-300, var(--token-scale-300, 12px));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.714286;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.6}`;
15
+ const accordionIonicCss = () => `:host{display:block;position:relative;width:100%;overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host{position:relative}:host::after{-webkit-margin-start:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-margin-end:var(--token-space-400, var(--token-scale-400, 16px));margin-inline-end:var(--token-space-400, var(--token-scale-400, 16px));right:0;left:0;bottom:0;display:block;position:absolute;height:var(--token-border-size-025, var(--token-scale-025, 1px));background-color:var(--token-border-default, var(--token-primitives-neutral-400, #d0d7df));content:"";z-index:3}:host(.accordion-last)::after{display:none}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}::slotted(ion-item[slot=header]){--border-radius:inherit;--color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528));--border-width:var(--token-border-size-0, var(--token-scale-0, 0px));--inner-border-width:var(--token-scale-0, 0px);--min-height:var(--token-scale-700, 28px);--padding-top:var(--token-space-300, var(--token-scale-300, 12px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px));--padding-bottom:var(--token-space-300, var(--token-scale-300, 12px));--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--background-activated:var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #ebeef2));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.555556}#content-wrapper{-webkit-padding-start:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-start:var(--token-space-400, var(--token-scale-400, 16px));-webkit-padding-end:var(--token-space-400, var(--token-scale-400, 16px));padding-inline-end:var(--token-space-400, var(--token-scale-400, 16px));padding-top:var(--token-space-300, var(--token-scale-300, 12px));padding-bottom:var(--token-space-300, var(--token-scale-300, 12px));font-family:var(--token-font-family, -apple-system, system-ui, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol");font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0);line-height:1.714286;color:var(--token-text-default, var(--token-primitives-neutral-1200, #242528))}:host(.accordion-disabled)::before{border-radius:inherit;right:0;left:0;top:0;bottom:0;position:absolute;background-color:var(--token-state-disabled, rgba(255, 255, 255, 0.6));content:"";pointer-events:none;z-index:2}`;
16
16
 
17
17
  const accordionIosCss = () => `:host{display:block;position:relative;width:100%;overflow:hidden;z-index:0}:host(.accordion-expanding) ::slotted(ion-item[slot=header]),:host(.accordion-expanded) ::slotted(ion-item[slot=header]){--border-width:0px}#content{overflow:hidden;will-change:max-height}:host(.accordion-collapsing) #content{max-height:0 !important}:host(.accordion-collapsed) #content{display:none}:host(.accordion-expanding) #content{max-height:0}:host(.accordion-expanding) #content-wrapper{overflow:auto}:host(.accordion-disabled) #header,:host(.accordion-readonly) #header,:host(.accordion-disabled) #content,:host(.accordion-readonly) #content{pointer-events:none}@media (prefers-reduced-motion: reduce){:host,#content{-webkit-transition:none !important;transition:none !important}}:host{background-color:var(--ion-background-color, #ffffff)}:host(.accordion-animated){-webkit-transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:all 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-animated) #content{-webkit-transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1);transition:max-height 300ms cubic-bezier(0.25, 0.8, 0.5, 1)}:host(.accordion-disabled) #header,:host(.accordion-disabled) #content{opacity:0.4}:host(.accordion-next) ::slotted(ion-item[slot=header]){--border-width:0.55px 0px 0.55px 0px}`;
18
18
 
@@ -54,7 +54,7 @@ const DatetimeButton = class {
54
54
  if (!datetimeEl) {
55
55
  return;
56
56
  }
57
- const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
57
+ const { value, locale, formatOptions, hourCycle, preferWheel, multiple, selectionMode, titleSelectedDatesFormatter, } = datetimeEl;
58
58
  const parsedValues = this.getParsedDateValues(value);
59
59
  /**
60
60
  * Both ion-datetime and ion-datetime-button default to today's date and
@@ -66,6 +66,8 @@ const DatetimeButton = class {
66
66
  if (!parsedDatetimes) {
67
67
  return;
68
68
  }
69
+ const isRangeMode = selectionMode === 'range';
70
+ const isMultipleMode = selectionMode === 'multiple' || (selectionMode === undefined && multiple);
69
71
  /**
70
72
  * If developers incorrectly use multiple="true"
71
73
  * with non "date" datetimes, then just select
@@ -75,11 +77,12 @@ const DatetimeButton = class {
75
77
  */
76
78
  const firstParsedDatetime = parsedDatetimes[0];
77
79
  const computedHourCycle = format.getHourCycle(locale, hourCycle);
80
+ const dateFormatOptions = formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' };
78
81
  this.dateText = this.timeText = undefined;
79
82
  switch (datetimePresentation) {
80
83
  case 'date-time':
81
84
  case 'time-date':
82
- const dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
85
+ const dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
83
86
  const timeText = format.getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
84
87
  if (preferWheel) {
85
88
  this.dateText = `${dateText} ${timeText}`;
@@ -90,7 +93,31 @@ const DatetimeButton = class {
90
93
  }
91
94
  break;
92
95
  case 'date':
93
- if (multiple && parsedValues.length !== 1) {
96
+ if (isRangeMode && parsedValues.length >= 2) {
97
+ /**
98
+ * Use the first and last entries in date order, matching
99
+ * how ion-datetime reads a range value.
100
+ */
101
+ let startIndex = 0;
102
+ let endIndex = parsedValues.length - 1;
103
+ if (format.isAfter(parsedDatetimes[startIndex], parsedDatetimes[endIndex])) {
104
+ [startIndex, endIndex] = [endIndex, startIndex];
105
+ }
106
+ const rangeValues = [parsedValues[startIndex], parsedValues[endIndex]];
107
+ const startDate = format.getLocalizedDateTime(locale, parsedDatetimes[startIndex], dateFormatOptions);
108
+ const endDate = format.getLocalizedDateTime(locale, parsedDatetimes[endIndex], dateFormatOptions);
109
+ let rangeText = `${startDate} - ${endDate}`;
110
+ if (titleSelectedDatesFormatter !== undefined) {
111
+ try {
112
+ rangeText = titleSelectedDatesFormatter(rangeValues);
113
+ }
114
+ catch (e) {
115
+ index.printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
116
+ }
117
+ }
118
+ this.dateText = rangeText;
119
+ }
120
+ else if (isMultipleMode && parsedValues.length !== 1) {
94
121
  let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
95
122
  if (titleSelectedDatesFormatter !== undefined) {
96
123
  try {
@@ -103,7 +130,7 @@ const DatetimeButton = class {
103
130
  this.dateText = headerText;
104
131
  }
105
132
  else {
106
- this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
133
+ this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, dateFormatOptions);
107
134
  }
108
135
  break;
109
136
  case 'time':
@@ -340,11 +367,11 @@ const DatetimeButton = class {
340
367
  render() {
341
368
  const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
342
369
  const theme$1 = ionicGlobal.getIonTheme(this);
343
- return (index.h(index.Host, { key: '73ba9456313d46e63db37c48b23b38e8e1f88ec6', class: theme.createColorClasses(color, {
370
+ return (index.h(index.Host, { key: 'e022c5c280d4f889c1ba7ca3e96b38063c5add30', class: theme.createColorClasses(color, {
344
371
  [theme$1]: true,
345
372
  [`${selectedButton}-active`]: datetimeActive,
346
373
  ['datetime-button-disabled']: disabled,
347
- }) }, dateText && (index.h("button", { key: '51f70f2d08823ccd399976c09152c278e0ef108e', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, index.h("slot", { key: '8422d6ca39d3bdecbefe6686afb9c2bcdb271a54', name: "date-target" }, dateText), theme$1 === 'md' && index.h("ion-ripple-effect", { key: 'f4c1c9c6bcdf772eb326371b9ab3795f7fbc0848' }))), timeText && (index.h("button", { key: '709a8bc9d0231bfc3c580bcca9065ccc66f4b7da', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, index.h("slot", { key: '2860f54f5a73aa3a42397a1a72619d6369a79025', name: "time-target" }, timeText), theme$1 === 'md' && index.h("ion-ripple-effect", { key: '306f594bffa84fea1f5e2528cab5ee56c0364e34' })))));
374
+ }) }, dateText && (index.h("button", { key: 'b1267d98cefbce7666b0cafa083c42f3116e2398', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, index.h("slot", { key: '3fdfa6adf73ee1e35cdb7f318f1d1ddcf4ab4d7b', name: "date-target" }, dateText), theme$1 === 'md' && index.h("ion-ripple-effect", { key: 'a832d63c77fffe8d7e0d28827bbb469726373d1e' }))), timeText && (index.h("button", { key: 'c589bdf2b8221609713f0d3554494dd08a1f2e5b', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, index.h("slot", { key: '10769ddadf7933d78744facaaa153bb413ff484a', name: "time-target" }, timeText), theme$1 === 'md' && index.h("ion-ripple-effect", { key: '7832de031919ddfb312528b45a3dc8e1c20edea6' })))));
348
375
  }
349
376
  get el() { return index.getElement(this); }
350
377
  };