@ecopages/radiant-ui 0.1.0-rc.16 → 0.1.0-rc.18

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 (83) hide show
  1. package/README.md +8 -0
  2. package/dist/components/ui/autocomplete/autocomplete.css +1 -2
  3. package/dist/components/ui/calendar/calendar.css +10 -5
  4. package/dist/components/ui/calendar/calendar.script.d.ts +1 -0
  5. package/dist/components/ui/calendar/index.js +1 -1
  6. package/dist/components/ui/calendar/index.js.map +3 -3
  7. package/dist/components/ui/checkbox-group/index.js +1 -1
  8. package/dist/components/ui/combobox/combobox.css +2 -2
  9. package/dist/components/ui/combobox/index.js +1 -1
  10. package/dist/components/ui/combobox/index.js.map +4 -4
  11. package/dist/components/ui/date-field/date-field.css +13 -17
  12. package/dist/components/ui/date-field/date-field.d.ts +7 -5
  13. package/dist/components/ui/date-field/date-field.script.d.ts +14 -47
  14. package/dist/components/ui/date-field/index.js +1 -1
  15. package/dist/components/ui/date-field/index.js.map +4 -4
  16. package/dist/components/ui/date-input/date-input-segment-dom.d.ts +25 -0
  17. package/dist/components/ui/date-input/date-input.css +49 -0
  18. package/dist/components/ui/date-input/date-input.d.ts +4 -0
  19. package/dist/components/ui/date-input/date-input.script.d.ts +84 -0
  20. package/dist/components/ui/date-input/index.d.ts +2 -0
  21. package/dist/components/ui/date-input/index.js +2 -0
  22. package/dist/components/ui/date-input/index.js.map +7 -0
  23. package/dist/components/ui/date-range-picker/date-range-picker.css +18 -19
  24. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +8 -6
  25. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +23 -46
  26. package/dist/components/ui/date-range-picker/index.js +1 -1
  27. package/dist/components/ui/date-range-picker/index.js.map +4 -4
  28. package/dist/components/ui/field/index.js +1 -1
  29. package/dist/components/ui/field/index.js.map +3 -3
  30. package/dist/components/ui/form/control-protocol.d.ts +2 -0
  31. package/dist/components/ui/form/form-context.d.ts +3 -0
  32. package/dist/components/ui/form/form.script.d.ts +3 -0
  33. package/dist/components/ui/form/index.js +1 -1
  34. package/dist/components/ui/form/index.js.map +3 -3
  35. package/dist/components/ui/hover-card/index.js +1 -1
  36. package/dist/components/ui/hover-card/index.js.map +3 -3
  37. package/dist/components/ui/input/index.js +1 -1
  38. package/dist/components/ui/input/index.js.map +2 -2
  39. package/dist/components/ui/input/input.css +1 -1
  40. package/dist/components/ui/label/index.js +1 -1
  41. package/dist/components/ui/label/index.js.map +2 -2
  42. package/dist/components/ui/menu-button/index.js +1 -1
  43. package/dist/components/ui/menu-button/index.js.map +3 -3
  44. package/dist/components/ui/menubar/index.js +1 -1
  45. package/dist/components/ui/menubar/index.js.map +3 -3
  46. package/dist/components/ui/navigation-menu/index.js +1 -1
  47. package/dist/components/ui/navigation-menu/index.js.map +3 -3
  48. package/dist/components/ui/number-field/number-field.css +1 -1
  49. package/dist/components/ui/popover/index.js +1 -1
  50. package/dist/components/ui/popover/index.js.map +3 -3
  51. package/dist/components/ui/select/index.js +1 -1
  52. package/dist/components/ui/select/index.js.map +4 -4
  53. package/dist/components/ui/select/select.css +2 -1
  54. package/dist/components/ui/shared/calendar-popover-behavior.d.ts +27 -0
  55. package/dist/components/ui/shared/popover.css +2 -0
  56. package/dist/components/ui/sidebar/index.d.ts +2 -1
  57. package/dist/components/ui/sidebar/index.js +1 -1
  58. package/dist/components/ui/sidebar/index.js.map +4 -4
  59. package/dist/components/ui/sidebar/sidebar-trigger.d.ts +12 -0
  60. package/dist/components/ui/sidebar/sidebar-trigger.script.d.ts +21 -5
  61. package/dist/components/ui/sidebar/sidebar.css +32 -13
  62. package/dist/components/ui/sidebar/sidebar.d.ts +1 -7
  63. package/dist/components/ui/sidebar/sidebar.script.d.ts +6 -0
  64. package/dist/components/ui/table/index.js +1 -1
  65. package/dist/components/ui/textarea/index.js.map +2 -2
  66. package/dist/components/ui/textarea/textarea.css +1 -1
  67. package/dist/components/ui/tooltip/index.js +1 -1
  68. package/dist/components/ui/tooltip/index.js.map +3 -3
  69. package/dist/index.d.ts +1 -0
  70. package/dist/index.js +1 -1
  71. package/dist/index.js.map +4 -4
  72. package/dist/lib/intl-date/index.d.ts +2 -0
  73. package/dist/lib/intl-date/segment-editing.d.ts +35 -0
  74. package/dist/lib/intl-date/segments.d.ts +0 -4
  75. package/dist/lib/viewport/breakpoints.d.ts +6 -0
  76. package/dist/lib/viewport/mobile-layout.d.ts +15 -0
  77. package/dist/styles/primitives.css +2 -0
  78. package/dist/styles/radiant-ui.css +8 -0
  79. package/dist/styles/style-dependencies.json +11 -4
  80. package/dist/styles/styles.css +148 -55
  81. package/dist/styles/tailwind.css +8 -0
  82. package/dist/styles/tokens/typography/default.css +8 -0
  83. package/package.json +18 -8
package/README.md CHANGED
@@ -28,6 +28,12 @@ pnpm run storybook
28
28
 
29
29
  Open the URL Storybook prints (default port `6006`).
30
30
 
31
+ ### Checking layout and styles
32
+
33
+ - **Automated (CI-friendly):** `pnpm run test:storybook` runs each story’s `play` function in a real browser (Vitest + Playwright). Layout helpers live in `.storybook/layout-assertions.ts` (overflow, `--text-control-input` font size, popover viewport bounds) — see `Components/DateRangePicker` → **NarrowLayout**. Input typography uses the `--text-control-input` token in `tokens/typography/default.css` (16px below `640px`, `--text-control` at `sm` and up).
34
+ - **Manual:** run `pnpm run storybook` and use the browser’s responsive mode or resize the preview; no third-party visual service required.
35
+ - **Pixel snapshots (optional):** Vitest browser mode supports Playwright `toHaveScreenshot()` with baselines committed in the repo if you want image diffs without Chromatic.
36
+
31
37
  Useful scripts:
32
38
 
33
39
  ```bash
@@ -44,6 +50,8 @@ pnpm run build:lib # generate exports + build JS/types + compile CSS
44
50
 
45
51
  Published CSS under `dist/` is **already compiled** (Tailwind `@apply` resolved). Theme and token values remain CSS custom properties so apps can swap themes at runtime. The package does not minify CSS.
46
52
 
53
+ Component entries register their nested custom elements as well as their own host. The package's `sideEffects` list preserves source `*.script.ts` / `*.script.tsx` registration modules during the library build and built `index.js` entries during consumer bundling. Removing those source side effects can leave nested Derived Trees as empty tags during SSR. `build:lib` runs `test:package` against isolated imports of the built date compositions and sidebar trigger to verify registration and server-rendered markup.
54
+
47
55
  ## Using radiant-ui
48
56
 
49
57
  ```ts
@@ -15,11 +15,10 @@
15
15
  background-color: var(--color-background, var(--background));
16
16
  padding-inline: var(--spacing-control-x, var(--space-control-x));
17
17
  padding-block: var(--spacing-control-y, var(--space-control-y));
18
- font-size: var(--text-sm, var(--text-sm));
19
- line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
20
18
  color: var(--color-on-background, var(--on-background));
21
19
  --tw-outline-style: none;
22
20
  outline-style: none;
21
+ font-size: var(--text-control-input);
23
22
  }
24
23
  .rui-autocomplete__input:focus-visible {
25
24
  --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
@@ -5,6 +5,7 @@ rui-calendar {
5
5
  }
6
6
  @layer components {
7
7
  .rui-calendar {
8
+ max-width: 100%;
8
9
  border-radius: var(--radius-container, var(--radius-container));
9
10
  border-style: var(--tw-border-style);
10
11
  border-width: 1px;
@@ -32,15 +33,15 @@ rui-calendar {
32
33
  }
33
34
  }
34
35
  .rui-calendar__month-panel {
35
- width: calc(var(--spacing, 0.25rem) * 64);
36
36
  flex-shrink: 0;
37
+ width: min(var(--rui-calendar-month-width, 16rem), calc(100vw - 1rem));
37
38
  }
38
39
  .rui-calendar__header {
39
40
  margin-bottom: var(--spacing-2, var(--space-2));
40
- display: flex;
41
+ display: grid;
42
+ grid-template-columns: 2rem 1fr 2rem;
41
43
  align-items: center;
42
- justify-content: space-between;
43
- gap: var(--spacing-inline, var(--space-inline));
44
+ gap: 0px;
44
45
  }
45
46
  .rui-calendar__nav-spacer {
46
47
  display: inline-flex;
@@ -49,7 +50,11 @@ rui-calendar {
49
50
  flex-shrink: 0;
50
51
  }
51
52
  .rui-calendar__month {
52
- flex: 1;
53
+ min-width: 0px;
54
+ overflow: hidden;
55
+ text-overflow: ellipsis;
56
+ white-space: nowrap;
57
+ padding-inline: var(--spacing-1, var(--space-1));
53
58
  text-align: center;
54
59
  --tw-font-weight: var(--font-weight-medium, var(--weight-medium));
55
60
  font-weight: var(--font-weight-medium, var(--weight-medium));
@@ -114,6 +114,7 @@ export declare class RuiCalendar extends RadiantElement {
114
114
  private previewRange;
115
115
  private clearRangePreview;
116
116
  private initialize;
117
+ constructor();
117
118
  protected onConnected(): void;
118
119
  onPropsUpdated(): void;
119
120
  onPrevMonth(event: Event): void;
@@ -1,2 +1,2 @@
1
- import{jsx as p,jsxs as ge}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as ft,customElement as Rt,event as St,onEvent as F,onUpdated as At,prop as S,state as A}from"@ecopages/radiant";function Se(t){if(!t)return;let e=t.split(",").map(n=>n.trim()).filter(Boolean);return e.length>1?e:e[0]}function q(t){if(t==null)return null;let e=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t.trim());if(!e)return null;let n=Number(e[1]),r=Number(e[2])-1,a=Number(e[3]),i=new Date(n,r,a);return i.getFullYear()!==n||i.getMonth()!==r||i.getDate()!==a?null:i}function L(t){let e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${r}`}function ne(t,e,n){return!(e&&t<e||n&&t>n)}function T(t,e){return t.localeCompare(e)}function O(t,e){return T(t,e)<=0?{start:t,end:e}:{start:e,end:t}}function C(t){if(!t)return null;let[e,n]=t.split("/");return!e||!n?null:O(e,n)}function re(t){if(!t)return"";let e=O(t.start,t.end);return`${e.start}/${e.end}`}function G(t){return t?t.split(",").map(e=>e.trim()).filter(Boolean).sort(T):[]}function ae(t){return[...new Set(t)].sort(T).join(",")}function ie(t,e){let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),[...n].sort(T)}function Ae(t,e){let n=O(e.start,e.end);return T(t,n.start)>=0&&T(t,n.end)<=0}function oe(t,e,n){if(e==="single"){let f=n.singleIso===t;return{isSelected:f,isRangeStart:f,isRangeEnd:f,isRangeMiddle:!1}}if(e==="multiple"){let f=n.multipleIsos?.includes(t)??!1;return{isSelected:f,isRangeStart:f,isRangeEnd:f,isRangeMiddle:!1}}let r=n.range;if(!r)return{isSelected:!1,isRangeStart:!1,isRangeEnd:!1,isRangeMiddle:!1};let a=O(r.start,r.end),i=Ae(t,a),o=t===a.start,c=t===a.end;return{isSelected:i,isRangeStart:o,isRangeEnd:c,isRangeMiddle:i&&!o&&!c}}function se(t,e,n){return e.anchor?{committed:O(e.anchor,n),draft:{anchor:null,hover:null}}:{committed:t,draft:{anchor:n,hover:n}}}function J(t){let e=pt(t);try{let r=new Intl.Locale(e).weekInfo;if(r?.firstDay!=null)return r.firstDay===7?0:r.firstDay}catch{}return e.startsWith("en-US")?0:1}function pt(t){return Array.isArray(t)?t[0]??navigator.language:t??navigator.language}function vt(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function yt(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function bt(t){let e=t.selectionMode??"single",n=t.value??"";if(e==="multiple")return{mode:e,multipleIsos:G(n)};if(e==="range"){let r=C(n);if(t.rangeDraft?.anchor){let a=t.rangeDraft.hover??t.rangeDraft.anchor;return{mode:e,range:_t(t.rangeDraft.anchor,a)}}return{mode:e,range:r}}return{mode:e,singleIso:n||void 0}}function _t(t,e){return t.localeCompare(e)<=0?{start:t,end:e}:{start:e,end:t}}function le(t,e,n){let r=J(n.locale),a=vt(n.today??new Date),i=bt(n),c=(new Date(t,e,1).getDay()-r+7)%7,Y=new Date(t,e,1-c),f=[],g=new Date(Y);for(let k=0;k<6;k+=1){let D=[];for(let z=0;z<7;z+=1){let P=L(g),x=oe(P,i.mode,{singleIso:i.singleIso,multipleIsos:i.multipleIsos,range:i.range});D.push({date:new Date(g),iso:P,inMonth:g.getMonth()===e,isToday:yt(g,a),isSelected:x.isSelected,isDisabled:!ne(P,n.min,n.max),isRangeStart:x.isRangeStart,isRangeEnd:x.isRangeEnd,isRangeMiddle:x.isRangeMiddle}),g.setDate(g.getDate()+1)}if(f.push(D),k>=4&&g.getMonth()!==e&&g.getDate()>7)break}return f}function N(t,e,n){let r=new Date(t,e+n,1);return{year:r.getFullYear(),month:r.getMonth()}}function ce(t,e,n){let r=Math.max(1,Math.min(n,12));return Array.from({length:r},(a,i)=>{let o=N(t,e,i);return{year:o.year,month:o.month,offset:i}})}var ke=new Map;function Mt(t,e){return`${JSON.stringify(t??null)}|${JSON.stringify(e)}`}function ue(t,e){let n=Mt(t,e),r=ke.get(n);if(r)return r;let a=new Intl.DateTimeFormat(t,e);return ke.set(n,a),a}function de(t,e){return ue(e,{month:"long",year:"numeric"}).format(t)}function he(t,e){let n=ue(t,{weekday:"narrow"}),r=[];for(let a=0;a<7;a+=1){let i=(e+a)%7,o=new Date(2024,0,i===0?7:i);r.push(n.format(o))}return r}function fe(t){return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(0,"day")}var Ee,Le,Te,Fe,Ye,Pe,Ve,Oe,Ce,Ge,ze,je,$e,Be,He,Ue,We,Ke,qe,Je,Ne,Qe,Xe,Ze,et,tt,nt,rt,at,it,ot,st,lt,ct,ut,dt;function wt(t,e,n,r,a,i){var o,c,Y,f,g,k,D,z=Symbol.metadata||Symbol.for("Symbol.metadata"),P=Object.defineProperty,x=Object.create,me=[x(null),x(null)],pe=e.length;function B(s,b,v){return function(l,u){b&&(u=l,l=t);for(var _=0;_<s.length;_++)u=s[_].apply(l,v?[u]:[]);return v?u:l}}function I(s,b,v,l){if(typeof s!="function"&&(l||s!==void 0))throw new TypeError(b+" must "+(v||"be")+" a function"+(l?"":" or undefined"));return s}function ve(s,b,v,l,u,_,E,y,M,w,be){function Q(h){if(!be(h))throw new TypeError("Attempted to access private element on non-instance")}var X=[].concat(b[0]),_e=b[3],Z=!E,j=u===1,Me=u===3,we=u===4,H=u===2;function U(h,V,Ie){return function(K,Re){return V&&(Re=K,K=s),Ie&&Ie(K),d[h].call(K,Re)}}if(!Z){var d={},ee=[],R=Me?"get":we||j?"set":"value";if(M?(w||j?d={get:ht(function(){return _e(this)},l,"get"),set:function(h){b[4](this,h)}}:d[R]=_e,w||ht(d[R],l,H?"":R)):w||(d=Object.getOwnPropertyDescriptor(s,l)),!w&&!M){if((c=me[+y][l])&&(c^u)!==7)throw Error("Decorating two elements with the same name ("+d[R].name+") is not supported yet");me[+y][l]=u<3?1:u}}for(var m=s,W=X.length-1;W>=0;W-=v?2:1){var De=I(X[W],"A decorator","be",!0),xe=v?X[W-1]:void 0,te={},$={kind:["field","accessor","method","getter","setter","class"][u],name:l,metadata:o,addInitializer:function(h,V){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");I(V,"An initializer","be",!0),_.push(V)}.bind(null,te)};if(Z)c=De.call(xe,m,$),te.v=1,I(c,"class decorators","return")&&(m=c);else if($.static=y,$.private=M,c=$.access={has:M?be.bind():function(h){return l in h}},we||(c.get=M?H?function(h){return Q(h),d.value}:U("get",0,Q):function(h){return h[l]}),H||Me||(c.set=M?U("set",0,Q):function(h,V){h[l]=V}),m=De.call(xe,j?{get:d.get,set:d.set}:d[R],$),te.v=1,j){if(typeof m=="object"&&m)(c=I(m.get,"accessor.get"))&&(d.get=c),(c=I(m.set,"accessor.set"))&&(d.set=c),(c=I(m.init,"accessor.init"))&&ee.unshift(c);else if(m!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else I(m,(w?"field":"method")+" decorators","return")&&(w?ee.unshift(m):d[R]=m)}return u<2&&E.push(B(ee,y,1),B(_,y,0)),w||Z||(M?j?E.splice(-1,0,U("get",y),U("set",y)):E.push(H?d[R]:I.call.bind(d[R])):P(s,l,d)),m}function ye(s){return P(s,z,{configurable:!0,enumerable:!0,value:o})}return i!==void 0&&(o=i[z]),o=x(o??null),g=[],k=function(s){s&&g.push(B(s))},D=function(s,b){for(var v=0;v<n.length;v++){var l=n[v],u=l[1],_=7&u;if((8&u)==s&&!_==b){var E=l[2],y=!!l[3],M=16&u;ve(s?t:t.prototype,l,M,y?"#"+E:Dt(E),_,_<2?[]:s?f=f||[]:Y=Y||[],g,!!s,y,b,s&&y?function(w){return It(w)===t}:a)}}},D(8,0),D(0,0),D(8,1),D(0,1),k(Y),k(f),c=g,pe||ye(t),{e:c,get c(){var s=[];return pe&&[ye(t=ve(t,[e],r,t.name,5,s)),B(s,1)]}}}function Dt(t){var e=xt(t,"string");return typeof e=="symbol"?e:e+""}function xt(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ht(t,e,n){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch{}return t}function It(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var mt,gt=class extends ft{static{({e:[Te,Fe,Ye,Pe,Ve,Oe,Ce,Ge,ze,je,$e,Be,He,Ue,We,Ke,qe,Je,Ne,Qe,Xe,Ze,et,tt,nt,rt,at,it,ot,st,lt,ct,ut,dt,Ee],c:[mt,Le]}=wt(this,[Rt("rui-calendar")],[[S({type:String,reflect:!0,defaultValue:""}),0,"value"],[S({type:String,defaultValue:""}),0,"min"],[S({type:String,defaultValue:""}),0,"max"],[S({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[S({type:String,defaultValue:""}),0,"locale"],[S({type:String,attribute:"selection-mode",defaultValue:"single"}),0,"selectionMode"],[S({type:Number,attribute:"visible-months",defaultValue:1}),0,"visibleMonths"],[S({type:String,attribute:"page-behavior",defaultValue:"visible"}),0,"pageBehavior"],[St({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[A,0,"viewYear"],[A,0,"viewMonth"],[A,0,"focusedIso"],[A,0,"weekdayLabels"],[A,0,"monthPanels"],[A,0,"todayLabel"],[A,0,"rangeAnchor"],[A,0,"rangeHover"],[At(["value","min","max","disabled","locale","selectionMode","visibleMonths","pageBehavior"]),2,"onPropsUpdated"],[F({selector:"[data-calendar-prev-month]",type:"click"}),2,"onPrevMonth"],[F({selector:"[data-calendar-next-month]",type:"click"}),2,"onNextMonth"],[F({selector:"[data-calendar-today]",type:"click"}),2,"onTodayClick"],[F({selector:"[data-calendar-day]",type:"click"}),2,"onDayClick"],[F({selector:"[data-calendar-day]",type:"pointerenter"}),2,"onDayPointerEnter"],[F({selector:"[data-calendar-grid]",type:"pointerleave"}),2,"onGridPointerLeave"],[F({selector:"[data-calendar-day]",type:"keydown"}),2,"onDayKeydown"]],0,void 0,ft))}constructor(...e){super(...e),dt(this)}value=(Ee(this),Te(this));min=(Fe(this),Ye(this));max=(Pe(this),Ve(this));disabled=(Oe(this),Ce(this));locale=(Ge(this),ze(this));selectionMode=(je(this),$e(this));visibleMonths=(Be(this),He(this));pageBehavior=(Ue(this),We(this));changeEvent=(Ke(this),qe(this));viewYear=(Je(this),Ne(this,new Date().getFullYear()));viewMonth=(Qe(this),Xe(this,new Date().getMonth()));focusedIso=(Ze(this),et(this,""));weekdayLabels=(tt(this),nt(this,[]));monthPanels=(rt(this),at(this,[]));todayLabel=(it(this),ot(this,""));rangeAnchor=(st(this),lt(this,null));rangeHover=(ct(this),ut(this,null));get resolvedLocale(){return Se(this.locale)}get pageDelta(){return this.pageBehavior==="single"?1:Math.max(1,Math.min(this.visibleMonths,12))}get monthOptions(){return{locale:this.resolvedLocale,selectionMode:this.selectionMode,value:this.value??"",rangeDraft:{anchor:this.rangeAnchor,hover:this.rangeHover},min:this.min||void 0,max:this.max||void 0}}syncViewFromValue(){let e=this.selectionMode==="range"?C(this.value)?.start??"":this.selectionMode==="multiple"?G(this.value)[0]??"":this.value,n=q(e);if(n){this.viewYear=n.getFullYear(),this.viewMonth=n.getMonth(),this.focusedIso=e;return}let r=new Date;this.viewYear=r.getFullYear(),this.viewMonth=r.getMonth(),this.focusedIso=L(r)}refreshGrid(){this.weekdayLabels=he(this.resolvedLocale,J(this.resolvedLocale)),this.monthPanels=ce(this.viewYear,this.viewMonth,this.visibleMonths).map(e=>{let n=new Date(e.year,e.month,1);return{year:e.year,month:e.month,label:de(n,this.resolvedLocale),weeks:le(e.year,e.month,this.monthOptions)}}),this.todayLabel=fe(this.resolvedLocale)}moveMonth(e){let n=N(this.viewYear,this.viewMonth,e);this.viewYear=n.year,this.viewMonth=n.month,this.refreshGrid()}getFlatDays(){return this.monthPanels.flatMap(e=>e.weeks.flat())}moveFocusedDay(e){let n=this.getFlatDays().filter(o=>!o.isDisabled);if(!n.length)return;let r=n.findIndex(o=>o.iso===this.focusedIso),a=r<0?Math.max(0,n.findIndex(o=>o.inMonth)):(r+e+n.length)%n.length,i=n[a];if(i){if(!this.isMonthVisible(i.date)){this.viewYear=i.date.getFullYear(),this.viewMonth=i.date.getMonth(),this.focusedIso=i.iso,this.refreshGrid(),this.focusFocusedDay();return}this.focusedIso=i.iso,this.focusDayInCurrentGrid(i.iso)}}isMonthVisible(e){let n=this.viewYear*12+this.viewMonth,r=n+this.visibleMonths-1,a=e.getFullYear()*12+e.getMonth();return a>=n&&a<=r}focusDayInCurrentGrid(e){let n=this.querySelector('[data-calendar-day][tabindex="0"]'),r=Array.from(this.querySelectorAll(`[data-calendar-day][data-iso="${e}"]:not(:disabled)`)),a=r.find(i=>!i.hasAttribute("data-outside"))??r[0];a&&(n&&n!==a&&(n.tabIndex=-1),a.tabIndex=0,a.focus())}focusFocusedDay(){requestAnimationFrame(()=>{this.focusDayInCurrentGrid(this.focusedIso)})}moveFocusedMonth(e){let n=q(this.focusedIso)??new Date(this.viewYear,this.viewMonth,1),r=new Date(n.getFullYear(),n.getMonth()+e,1),a=new Date(r.getFullYear(),r.getMonth()+1,0).getDate(),i=new Date(r.getFullYear(),r.getMonth(),Math.min(n.getDate(),a));this.viewYear=i.getFullYear(),this.viewMonth=i.getMonth(),this.focusedIso=L(i),this.refreshGrid(),this.focusFocusedDay()}isIsoAllowed(e){return!(this.min&&e<this.min||this.max&&e>this.max)}emitChange(e,n={}){this.changeEvent.emit({value:e,...n})}selectSingle(e){!this.isIsoAllowed(e)||e===this.value||(this.value=e,this.emitChange(e),this.refreshGrid())}selectMultiple(e){if(!this.isIsoAllowed(e))return;let n=ae(ie(G(this.value),e));n!==this.value&&(this.value=n,this.emitChange(n),this.refreshGrid())}selectRange(e){if(!this.isIsoAllowed(e))return;let n=se(C(this.value),{anchor:this.rangeAnchor,hover:this.rangeHover},e);if(this.rangeAnchor=n.draft.anchor,this.rangeHover=n.draft.hover,n.committed){let r=re(n.committed);r!==this.value&&(this.value=r,this.emitChange(r,{start:n.committed.start,end:n.committed.end}))}this.refreshGrid()}selectIso(e){if(this.selectionMode==="multiple"){this.selectMultiple(e);return}if(this.selectionMode==="range"){this.selectRange(e);return}this.selectSingle(e)}previewRange(e){this.selectionMode!=="range"||!this.rangeAnchor||this.disabled||this.rangeHover!==e&&(this.rangeHover=e,this.refreshGrid())}clearRangePreview(){this.rangeHover&&(this.rangeHover=this.rangeAnchor,this.refreshGrid())}initialize(){this.syncViewFromValue(),this.refreshGrid()}onConnected(){this.initialize()}onPropsUpdated(){this.selectionMode!=="range"&&(this.rangeAnchor=null,this.rangeHover=null),this.syncViewFromValue(),this.refreshGrid()}onPrevMonth(e){e.preventDefault(),this.moveMonth(-this.pageDelta)}onNextMonth(e){e.preventDefault(),this.moveMonth(this.pageDelta)}onTodayClick(e){e.preventDefault(),this.selectIso(L(new Date))}onDayClick(e){let n=e.target.closest("[data-calendar-day]"),r=n?.getAttribute("data-iso");!r||n?.disabled||this.disabled||this.selectIso(r)}onDayPointerEnter(e){let n=e.target.closest("[data-calendar-day]"),r=n?.getAttribute("data-iso");!r||n?.disabled||this.previewRange(r)}onGridPointerLeave(){this.clearRangePreview()}onDayKeydown(e){if(this.disabled)return;let n=e.target.getAttribute("data-iso");if(n&&(this.focusedIso=n),e.key==="ArrowLeft"){e.preventDefault(),this.moveFocusedDay(-1);return}if(e.key==="ArrowRight"){e.preventDefault(),this.moveFocusedDay(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this.moveFocusedDay(-7);return}if(e.key==="ArrowDown"){e.preventDefault(),this.moveFocusedDay(7);return}if(e.key==="PageUp"){e.preventDefault(),this.moveFocusedMonth(e.shiftKey?-12:-this.pageDelta);return}if(e.key==="PageDown"){e.preventDefault(),this.moveFocusedMonth(e.shiftKey?12:this.pageDelta);return}if(e.key==="Enter"||e.key===" "){e.preventDefault();let r=e.target,a=r.getAttribute("data-iso");a&&!r.disabled&&this.selectIso(a)}}dayDataAttributes(e){return{"data-range-start":e.isRangeStart?"true":void 0,"data-range-end":e.isRangeEnd?"true":void 0,"data-range-middle":e.isRangeMiddle?"true":void 0}}render(){let e=this.monthPanels.length,n=e>1;return ge("div",{class:`rui-calendar${n?" rui-calendar--multi":""}`,"data-ref":"root",role:"application","aria-label":"Calendar","aria-multiselectable":this.selectionMode==="multiple"?"true":void 0,children:[p("div",{class:"rui-calendar__months",children:this.monthPanels.map((r,a)=>ge("div",{class:"rui-calendar__month-panel","data-calendar-month-panel":!0,children:[ge("div",{class:"rui-calendar__header",children:[a===0?p("button",{type:"button",class:"rui-calendar__nav","data-calendar-prev-month":!0,"aria-label":"Previous month",disabled:this.disabled,children:"\u2039"}):p("span",{class:"rui-calendar__nav-spacer","aria-hidden":"true"}),p("div",{class:"rui-calendar__month","aria-live":"polite",children:r.label}),a===e-1?p("button",{type:"button",class:"rui-calendar__nav","data-calendar-next-month":!0,"aria-label":"Next month",disabled:this.disabled,children:"\u203A"}):p("span",{class:"rui-calendar__nav-spacer","aria-hidden":"true"})]}),a===0?p("div",{class:"rui-calendar__weekdays",role:"row",children:this.weekdayLabels.map(i=>p("div",{class:"rui-calendar__weekday",role:"columnheader","aria-hidden":"true",children:i}))}):null,p("div",{class:"rui-calendar__grid",role:"grid","data-calendar-grid":!0,children:r.weeks.map(i=>p("div",{class:"rui-calendar__week",role:"row",children:i.map(o=>p("button",{type:"button",class:"rui-calendar__day","data-calendar-day":!0,"data-iso":o.iso,role:"gridcell",disabled:this.disabled||o.isDisabled,tabIndex:o.iso===this.focusedIso?0:-1,"aria-selected":o.isSelected?"true":"false","aria-current":o.isToday?"date":void 0,"data-outside":o.inMonth?void 0:"true",...this.dayDataAttributes(o),children:o.date.getDate()}))}))})]}))}),p("div",{class:"rui-calendar__footer",children:p("button",{type:"button",class:"rui-calendar__today","data-calendar-today":!0,disabled:this.disabled,children:this.todayLabel})})]})}static{Le()}};import{jsx as kt}from"@ecopages/jsx/jsx-runtime";function Et({children:t,...e}){return kt("rui-calendar",{...e,children:t})}export{Et as RuiCalendar,mt as RuiCalendarElement};
1
+ import{jsx as p,jsxs as ge}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as ft,customElement as St,event as Rt,onEvent as F,onUpdated as At,prop as R,registerSsrPreparationCallback as kt,state as A}from"@ecopages/radiant";function Re(t){if(!t)return;let e=t.split(",").map(n=>n.trim()).filter(Boolean);return e.length>1?e:e[0]}function N(t){if(t==null)return null;let e=/^(\d{4})-(\d{2})-(\d{2})$/.exec(t.trim());if(!e)return null;let n=Number(e[1]),r=Number(e[2])-1,a=Number(e[3]),i=new Date(n,r,a);return i.getFullYear()!==n||i.getMonth()!==r||i.getDate()!==a?null:i}function L(t){let e=t.getFullYear(),n=String(t.getMonth()+1).padStart(2,"0"),r=String(t.getDate()).padStart(2,"0");return`${e}-${n}-${r}`}function ne(t,e,n){return!(e&&t<e||n&&t>n)}function T(t,e){return t.localeCompare(e)}function O(t,e){return T(t,e)<=0?{start:t,end:e}:{start:e,end:t}}function C(t){if(!t)return null;let[e,n]=t.split("/");return!e||!n?null:O(e,n)}function re(t){if(!t)return"";let e=O(t.start,t.end);return`${e.start}/${e.end}`}function G(t){return t?t.split(",").map(e=>e.trim()).filter(Boolean).sort(T):[]}function ae(t){return[...new Set(t)].sort(T).join(",")}function ie(t,e){let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),[...n].sort(T)}function Ae(t,e){let n=O(e.start,e.end);return T(t,n.start)>=0&&T(t,n.end)<=0}function se(t,e,n){if(e==="single"){let f=n.singleIso===t;return{isSelected:f,isRangeStart:f,isRangeEnd:f,isRangeMiddle:!1}}if(e==="multiple"){let f=n.multipleIsos?.includes(t)??!1;return{isSelected:f,isRangeStart:f,isRangeEnd:f,isRangeMiddle:!1}}let r=n.range;if(!r)return{isSelected:!1,isRangeStart:!1,isRangeEnd:!1,isRangeMiddle:!1};let a=O(r.start,r.end),i=Ae(t,a),s=t===a.start,c=t===a.end;return{isSelected:i,isRangeStart:s,isRangeEnd:c,isRangeMiddle:i&&!s&&!c}}function oe(t,e,n){return e.anchor?{committed:O(e.anchor,n),draft:{anchor:null,hover:null}}:{committed:t,draft:{anchor:n,hover:n}}}function q(t){let e=pt(t);try{let r=new Intl.Locale(e).weekInfo;if(r?.firstDay!=null)return r.firstDay===7?0:r.firstDay}catch{}return e.startsWith("en-US")?0:1}function pt(t){return Array.isArray(t)?t[0]??navigator.language:t??navigator.language}function vt(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function yt(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function bt(t){let e=t.selectionMode??"single",n=t.value??"";if(e==="multiple")return{mode:e,multipleIsos:G(n)};if(e==="range"){let r=C(n);if(t.rangeDraft?.anchor){let a=t.rangeDraft.hover??t.rangeDraft.anchor;return{mode:e,range:_t(t.rangeDraft.anchor,a)}}return{mode:e,range:r}}return{mode:e,singleIso:n||void 0}}function _t(t,e){return t.localeCompare(e)<=0?{start:t,end:e}:{start:e,end:t}}function le(t,e,n){let r=q(n.locale),a=vt(n.today??new Date),i=bt(n),c=(new Date(t,e,1).getDay()-r+7)%7,Y=new Date(t,e,1-c),f=[],g=new Date(Y);for(let k=0;k<6;k+=1){let w=[];for(let z=0;z<7;z+=1){let P=L(g),x=se(P,i.mode,{singleIso:i.singleIso,multipleIsos:i.multipleIsos,range:i.range});w.push({date:new Date(g),iso:P,inMonth:g.getMonth()===e,isToday:yt(g,a),isSelected:x.isSelected,isDisabled:!ne(P,n.min,n.max),isRangeStart:x.isRangeStart,isRangeEnd:x.isRangeEnd,isRangeMiddle:x.isRangeMiddle}),g.setDate(g.getDate()+1)}if(f.push(w),k>=4&&g.getMonth()!==e&&g.getDate()>7)break}return f}function J(t,e,n){let r=new Date(t,e+n,1);return{year:r.getFullYear(),month:r.getMonth()}}function ce(t,e,n){let r=Math.max(1,Math.min(n,12));return Array.from({length:r},(a,i)=>{let s=J(t,e,i);return{year:s.year,month:s.month,offset:i}})}var ke=new Map;function Mt(t,e){return`${JSON.stringify(t??null)}|${JSON.stringify(e)}`}function ue(t,e){let n=Mt(t,e),r=ke.get(n);if(r)return r;let a=new Intl.DateTimeFormat(t,e);return ke.set(n,a),a}function de(t,e){return ue(e,{month:"long",year:"numeric"}).format(t)}function he(t,e){let n=ue(t,{weekday:"narrow"}),r=[];for(let a=0;a<7;a+=1){let i=(e+a)%7,s=new Date(2024,0,i===0?7:i);r.push(n.format(s))}return r}function fe(t){return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(0,"day")}var Ee,Le,Te,Fe,Ye,Pe,Ve,Oe,Ce,Ge,ze,je,Be,$e,He,Ue,We,Ke,Ne,qe,Je,Qe,Xe,Ze,et,tt,nt,rt,at,it,st,ot,lt,ct,ut,dt;function Dt(t,e,n,r,a,i){var s,c,Y,f,g,k,w,z=Symbol.metadata||Symbol.for("Symbol.metadata"),P=Object.defineProperty,x=Object.create,me=[x(null),x(null)],pe=e.length;function $(o,b,v){return function(l,u){b&&(u=l,l=t);for(var _=0;_<o.length;_++)u=o[_].apply(l,v?[u]:[]);return v?u:l}}function I(o,b,v,l){if(typeof o!="function"&&(l||o!==void 0))throw new TypeError(b+" must "+(v||"be")+" a function"+(l?"":" or undefined"));return o}function ve(o,b,v,l,u,_,E,y,M,D,be){function Q(h){if(!be(h))throw new TypeError("Attempted to access private element on non-instance")}var X=[].concat(b[0]),_e=b[3],Z=!E,j=u===1,Me=u===3,De=u===4,H=u===2;function U(h,V,Ie){return function(K,Se){return V&&(Se=K,K=o),Ie&&Ie(K),d[h].call(K,Se)}}if(!Z){var d={},ee=[],S=Me?"get":De||j?"set":"value";if(M?(D||j?d={get:ht(function(){return _e(this)},l,"get"),set:function(h){b[4](this,h)}}:d[S]=_e,D||ht(d[S],l,H?"":S)):D||(d=Object.getOwnPropertyDescriptor(o,l)),!D&&!M){if((c=me[+y][l])&&(c^u)!==7)throw Error("Decorating two elements with the same name ("+d[S].name+") is not supported yet");me[+y][l]=u<3?1:u}}for(var m=o,W=X.length-1;W>=0;W-=v?2:1){var we=I(X[W],"A decorator","be",!0),xe=v?X[W-1]:void 0,te={},B={kind:["field","accessor","method","getter","setter","class"][u],name:l,metadata:s,addInitializer:function(h,V){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");I(V,"An initializer","be",!0),_.push(V)}.bind(null,te)};if(Z)c=we.call(xe,m,B),te.v=1,I(c,"class decorators","return")&&(m=c);else if(B.static=y,B.private=M,c=B.access={has:M?be.bind():function(h){return l in h}},De||(c.get=M?H?function(h){return Q(h),d.value}:U("get",0,Q):function(h){return h[l]}),H||Me||(c.set=M?U("set",0,Q):function(h,V){h[l]=V}),m=we.call(xe,j?{get:d.get,set:d.set}:d[S],B),te.v=1,j){if(typeof m=="object"&&m)(c=I(m.get,"accessor.get"))&&(d.get=c),(c=I(m.set,"accessor.set"))&&(d.set=c),(c=I(m.init,"accessor.init"))&&ee.unshift(c);else if(m!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else I(m,(D?"field":"method")+" decorators","return")&&(D?ee.unshift(m):d[S]=m)}return u<2&&E.push($(ee,y,1),$(_,y,0)),D||Z||(M?j?E.splice(-1,0,U("get",y),U("set",y)):E.push(H?d[S]:I.call.bind(d[S])):P(o,l,d)),m}function ye(o){return P(o,z,{configurable:!0,enumerable:!0,value:s})}return i!==void 0&&(s=i[z]),s=x(s??null),g=[],k=function(o){o&&g.push($(o))},w=function(o,b){for(var v=0;v<n.length;v++){var l=n[v],u=l[1],_=7&u;if((8&u)==o&&!_==b){var E=l[2],y=!!l[3],M=16&u;ve(o?t:t.prototype,l,M,y?"#"+E:wt(E),_,_<2?[]:o?f=f||[]:Y=Y||[],g,!!o,y,b,o&&y?function(D){return It(D)===t}:a)}}},w(8,0),w(0,0),w(8,1),w(0,1),k(Y),k(f),c=g,pe||ye(t),{e:c,get c(){var o=[];return pe&&[ye(t=ve(t,[e],r,t.name,5,o)),$(o,1)]}}}function wt(t){var e=xt(t,"string");return typeof e=="symbol"?e:e+""}function xt(t,e){if(typeof t!="object"||!t)return t;var n=t[Symbol.toPrimitive];if(n!==void 0){var r=n.call(t,e||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(e==="string"?String:Number)(t)}function ht(t,e,n){typeof e=="symbol"&&(e=(e=e.description)?"["+e+"]":"");try{Object.defineProperty(t,"name",{configurable:!0,value:n?n+" "+e:e})}catch{}return t}function It(t){if(Object(t)!==t)throw TypeError("right-hand side of 'in' should be an object, got "+(t!==null?typeof t:"null"));return t}var mt,gt=class extends ft{static{({e:[Te,Fe,Ye,Pe,Ve,Oe,Ce,Ge,ze,je,Be,$e,He,Ue,We,Ke,Ne,qe,Je,Qe,Xe,Ze,et,tt,nt,rt,at,it,st,ot,lt,ct,ut,dt,Ee],c:[mt,Le]}=Dt(this,[St("rui-calendar")],[[R({type:String,reflect:!0,defaultValue:""}),0,"value"],[R({type:String,defaultValue:""}),0,"min"],[R({type:String,defaultValue:""}),0,"max"],[R({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[R({type:String,defaultValue:""}),0,"locale"],[R({type:String,attribute:"selection-mode",defaultValue:"single"}),0,"selectionMode"],[R({type:Number,attribute:"visible-months",defaultValue:1}),0,"visibleMonths"],[R({type:String,attribute:"page-behavior",defaultValue:"visible"}),0,"pageBehavior"],[Rt({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[A,0,"viewYear"],[A,0,"viewMonth"],[A,0,"focusedIso"],[A,0,"weekdayLabels"],[A,0,"monthPanels"],[A,0,"todayLabel"],[A,0,"rangeAnchor"],[A,0,"rangeHover"],[At(["value","min","max","disabled","locale","selectionMode","visibleMonths","pageBehavior"]),2,"onPropsUpdated"],[F({selector:"[data-calendar-prev-month]",type:"click"}),2,"onPrevMonth"],[F({selector:"[data-calendar-next-month]",type:"click"}),2,"onNextMonth"],[F({selector:"[data-calendar-today]",type:"click"}),2,"onTodayClick"],[F({selector:"[data-calendar-day]",type:"click"}),2,"onDayClick"],[F({selector:"[data-calendar-day]",type:"pointerenter"}),2,"onDayPointerEnter"],[F({selector:"[data-calendar-grid]",type:"pointerleave"}),2,"onGridPointerLeave"],[F({selector:"[data-calendar-day]",type:"keydown"}),2,"onDayKeydown"]],0,void 0,ft))}value=(Ee(this),Te(this));min=(Fe(this),Ye(this));max=(Pe(this),Ve(this));disabled=(Oe(this),Ce(this));locale=(Ge(this),ze(this));selectionMode=(je(this),Be(this));visibleMonths=($e(this),He(this));pageBehavior=(Ue(this),We(this));changeEvent=(Ke(this),Ne(this));viewYear=(qe(this),Je(this,new Date().getFullYear()));viewMonth=(Qe(this),Xe(this,new Date().getMonth()));focusedIso=(Ze(this),et(this,""));weekdayLabels=(tt(this),nt(this,[]));monthPanels=(rt(this),at(this,[]));todayLabel=(it(this),st(this,""));rangeAnchor=(ot(this),lt(this,null));rangeHover=(ct(this),ut(this,null));get resolvedLocale(){return Re(this.locale)}get pageDelta(){return this.pageBehavior==="single"?1:Math.max(1,Math.min(this.visibleMonths,12))}get monthOptions(){return{locale:this.resolvedLocale,selectionMode:this.selectionMode,value:this.value??"",rangeDraft:{anchor:this.rangeAnchor,hover:this.rangeHover},min:this.min||void 0,max:this.max||void 0}}syncViewFromValue(){let e=this.selectionMode==="range"?C(this.value)?.start??"":this.selectionMode==="multiple"?G(this.value)[0]??"":this.value,n=N(e);if(n){this.viewYear=n.getFullYear(),this.viewMonth=n.getMonth(),this.focusedIso=e;return}let r=new Date;this.viewYear=r.getFullYear(),this.viewMonth=r.getMonth(),this.focusedIso=L(r)}refreshGrid(){this.weekdayLabels=he(this.resolvedLocale,q(this.resolvedLocale)),this.monthPanels=ce(this.viewYear,this.viewMonth,this.visibleMonths).map(e=>{let n=new Date(e.year,e.month,1);return{year:e.year,month:e.month,label:de(n,this.resolvedLocale),weeks:le(e.year,e.month,this.monthOptions)}}),this.todayLabel=fe(this.resolvedLocale)}moveMonth(e){let n=J(this.viewYear,this.viewMonth,e);this.viewYear=n.year,this.viewMonth=n.month,this.refreshGrid()}getFlatDays(){return this.monthPanels.flatMap(e=>e.weeks.flat())}moveFocusedDay(e){let n=this.getFlatDays().filter(s=>!s.isDisabled);if(!n.length)return;let r=n.findIndex(s=>s.iso===this.focusedIso),a=r<0?Math.max(0,n.findIndex(s=>s.inMonth)):(r+e+n.length)%n.length,i=n[a];if(i){if(!this.isMonthVisible(i.date)){this.viewYear=i.date.getFullYear(),this.viewMonth=i.date.getMonth(),this.focusedIso=i.iso,this.refreshGrid(),this.focusFocusedDay();return}this.focusedIso=i.iso,this.focusDayInCurrentGrid(i.iso)}}isMonthVisible(e){let n=this.viewYear*12+this.viewMonth,r=n+this.visibleMonths-1,a=e.getFullYear()*12+e.getMonth();return a>=n&&a<=r}focusDayInCurrentGrid(e){let n=this.querySelector('[data-calendar-day][tabindex="0"]'),r=Array.from(this.querySelectorAll(`[data-calendar-day][data-iso="${e}"]:not(:disabled)`)),a=r.find(i=>!i.hasAttribute("data-outside"))??r[0];a&&(n&&n!==a&&(n.tabIndex=-1),a.tabIndex=0,a.focus())}focusFocusedDay(){requestAnimationFrame(()=>{this.focusDayInCurrentGrid(this.focusedIso)})}moveFocusedMonth(e){let n=N(this.focusedIso)??new Date(this.viewYear,this.viewMonth,1),r=new Date(n.getFullYear(),n.getMonth()+e,1),a=new Date(r.getFullYear(),r.getMonth()+1,0).getDate(),i=new Date(r.getFullYear(),r.getMonth(),Math.min(n.getDate(),a));this.viewYear=i.getFullYear(),this.viewMonth=i.getMonth(),this.focusedIso=L(i),this.refreshGrid(),this.focusFocusedDay()}isIsoAllowed(e){return!(this.min&&e<this.min||this.max&&e>this.max)}emitChange(e,n={}){this.changeEvent.emit({value:e,...n})}selectSingle(e){!this.isIsoAllowed(e)||e===this.value||(this.value=e,this.emitChange(e),this.refreshGrid())}selectMultiple(e){if(!this.isIsoAllowed(e))return;let n=ae(ie(G(this.value),e));n!==this.value&&(this.value=n,this.emitChange(n),this.refreshGrid())}selectRange(e){if(!this.isIsoAllowed(e))return;let n=oe(C(this.value),{anchor:this.rangeAnchor,hover:this.rangeHover},e);if(this.rangeAnchor=n.draft.anchor,this.rangeHover=n.draft.hover,n.committed){let r=re(n.committed);r!==this.value&&(this.value=r,this.emitChange(r,{start:n.committed.start,end:n.committed.end}))}this.refreshGrid()}selectIso(e){if(this.selectionMode==="multiple"){this.selectMultiple(e);return}if(this.selectionMode==="range"){this.selectRange(e);return}this.selectSingle(e)}previewRange(e){this.selectionMode!=="range"||!this.rangeAnchor||this.disabled||this.rangeHover!==e&&(this.rangeHover=e,this.refreshGrid())}clearRangePreview(){this.rangeHover&&(this.rangeHover=this.rangeAnchor,this.refreshGrid())}initialize(){this.syncViewFromValue(),this.refreshGrid()}constructor(){super(),dt(this),kt(this,()=>this.initialize())}onConnected(){this.initialize()}onPropsUpdated(){this.selectionMode!=="range"&&(this.rangeAnchor=null,this.rangeHover=null),this.syncViewFromValue(),this.refreshGrid()}onPrevMonth(e){e.preventDefault(),this.moveMonth(-this.pageDelta)}onNextMonth(e){e.preventDefault(),this.moveMonth(this.pageDelta)}onTodayClick(e){e.preventDefault(),this.selectIso(L(new Date))}onDayClick(e){let n=e.target.closest("[data-calendar-day]"),r=n?.getAttribute("data-iso");!r||n?.disabled||this.disabled||this.selectIso(r)}onDayPointerEnter(e){let n=e.target.closest("[data-calendar-day]"),r=n?.getAttribute("data-iso");!r||n?.disabled||this.previewRange(r)}onGridPointerLeave(){this.clearRangePreview()}onDayKeydown(e){if(this.disabled)return;let n=e.target.getAttribute("data-iso");if(n&&(this.focusedIso=n),e.key==="ArrowLeft"){e.preventDefault(),this.moveFocusedDay(-1);return}if(e.key==="ArrowRight"){e.preventDefault(),this.moveFocusedDay(1);return}if(e.key==="ArrowUp"){e.preventDefault(),this.moveFocusedDay(-7);return}if(e.key==="ArrowDown"){e.preventDefault(),this.moveFocusedDay(7);return}if(e.key==="PageUp"){e.preventDefault(),this.moveFocusedMonth(e.shiftKey?-12:-this.pageDelta);return}if(e.key==="PageDown"){e.preventDefault(),this.moveFocusedMonth(e.shiftKey?12:this.pageDelta);return}if(e.key==="Enter"||e.key===" "){e.preventDefault();let r=e.target,a=r.getAttribute("data-iso");a&&!r.disabled&&this.selectIso(a)}}dayDataAttributes(e){return{"data-range-start":e.isRangeStart?"true":void 0,"data-range-end":e.isRangeEnd?"true":void 0,"data-range-middle":e.isRangeMiddle?"true":void 0}}render(){let e=this.monthPanels.length,n=e>1;return ge("div",{class:`rui-calendar${n?" rui-calendar--multi":""}`,"data-ref":"root",role:"application","aria-label":"Calendar","aria-multiselectable":this.selectionMode==="multiple"?"true":void 0,children:[p("div",{class:"rui-calendar__months",children:this.monthPanels.map((r,a)=>ge("div",{class:"rui-calendar__month-panel","data-calendar-month-panel":!0,children:[ge("div",{class:"rui-calendar__header",children:[a===0?p("button",{type:"button",class:"rui-calendar__nav","data-calendar-prev-month":!0,"aria-label":"Previous month",disabled:this.disabled,children:"\u2039"}):p("span",{class:"rui-calendar__nav-spacer","aria-hidden":"true"}),p("div",{class:"rui-calendar__month","aria-live":"polite",children:r.label}),a===e-1?p("button",{type:"button",class:"rui-calendar__nav","data-calendar-next-month":!0,"aria-label":"Next month",disabled:this.disabled,children:"\u203A"}):p("span",{class:"rui-calendar__nav-spacer","aria-hidden":"true"})]}),a===0?p("div",{class:"rui-calendar__weekdays",role:"row",children:this.weekdayLabels.map(i=>p("div",{class:"rui-calendar__weekday",role:"columnheader","aria-hidden":"true",children:i}))}):null,p("div",{class:"rui-calendar__grid",role:"grid","data-calendar-grid":!0,children:r.weeks.map(i=>p("div",{class:"rui-calendar__week",role:"row",children:i.map(s=>p("button",{type:"button",class:"rui-calendar__day","data-calendar-day":!0,"data-iso":s.iso,role:"gridcell",disabled:this.disabled||s.isDisabled,tabIndex:s.iso===this.focusedIso?0:-1,"aria-selected":s.isSelected?"true":"false","aria-current":s.isToday?"date":void 0,"data-outside":s.inMonth?void 0:"true",...this.dayDataAttributes(s),children:s.date.getDate()}))}))})]}))}),p("div",{class:"rui-calendar__footer",children:p("button",{type:"button",class:"rui-calendar__today","data-calendar-today":!0,disabled:this.disabled,children:this.todayLabel})})]})}static{Le()}};import{jsx as Et}from"@ecopages/jsx/jsx-runtime";function Lt({children:t,...e}){return Et("rui-calendar",{...e,children:t})}export{Lt as RuiCalendar,mt as RuiCalendarElement};
2
2
  //# sourceMappingURL=index.js.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../../src/components/ui/calendar/calendar.script.tsx", "../../../../src/lib/intl/locale.ts", "../../../../src/lib/intl-date/iso.ts", "../../../../src/lib/intl-date/selection.ts", "../../../../src/lib/intl-date/calendar.ts", "../../../../src/lib/intl-date/months.ts", "../../../../src/lib/intl-date/formatters.ts", "../../../../src/components/ui/calendar/calendar.tsx"],
4
- "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_locale, _init_extra_locale, _init_selectionMode, _init_extra_selectionMode, _init_visibleMonths, _init_extra_visibleMonths, _init_pageBehavior, _init_extra_pageBehavior, _init_changeEvent, _init_extra_changeEvent, _init_viewYear, _init_extra_viewYear, _init_viewMonth, _init_extra_viewMonth, _init_focusedIso, _init_extra_focusedIso, _init_weekdayLabels, _init_extra_weekdayLabels, _init_monthPanels, _init_extra_monthPanels, _init_todayLabel, _init_extra_todayLabel, _init_rangeAnchor, _init_extra_rangeAnchor, _init_rangeHover, _init_extra_rangeHover;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, state } from \"@ecopages/radiant\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nimport { addMonths, advanceRangeSelection, buildCalendarMonth, dateToIso, formatMonthYear, formatTodayLabel, getVisibleMonthViews, getWeekStartsOn, getWeekdayLabels, isoToDate, parseIsoRange, parseMultipleIsos, serializeIsoRange, serializeMultipleIsos, toggleMultipleIso } from \"@/lib/intl-date\";\nlet _RuiCalendar;\nclass RuiCalendar extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_locale, _init_extra_locale, _init_selectionMode, _init_extra_selectionMode, _init_visibleMonths, _init_extra_visibleMonths, _init_pageBehavior, _init_extra_pageBehavior, _init_changeEvent, _init_extra_changeEvent, _init_viewYear, _init_extra_viewYear, _init_viewMonth, _init_extra_viewMonth, _init_focusedIso, _init_extra_focusedIso, _init_weekdayLabels, _init_extra_weekdayLabels, _init_monthPanels, _init_extra_monthPanels, _init_todayLabel, _init_extra_todayLabel, _init_rangeAnchor, _init_extra_rangeAnchor, _init_rangeHover, _init_extra_rangeHover, _initProto],\n c: [_RuiCalendar, _initClass]\n } = _applyDecs(this, [customElement(\"rui-calendar\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), 0, \"selectionMode\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 1\n }), 0, \"visibleMonths\"], [prop({\n type: String,\n attribute: \"page-behavior\",\n defaultValue: \"visible\"\n }), 0, \"pageBehavior\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"viewYear\"], [state, 0, \"viewMonth\"], [state, 0, \"focusedIso\"], [state, 0, \"weekdayLabels\"], [state, 0, \"monthPanels\"], [state, 0, \"todayLabel\"], [state, 0, \"rangeAnchor\"], [state, 0, \"rangeHover\"], [onUpdated([\"value\", \"min\", \"max\", \"disabled\", \"locale\", \"selectionMode\", \"visibleMonths\", \"pageBehavior\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: \"[data-calendar-prev-month]\",\n type: \"click\"\n }), 2, \"onPrevMonth\"], [onEvent({\n selector: \"[data-calendar-next-month]\",\n type: \"click\"\n }), 2, \"onNextMonth\"], [onEvent({\n selector: \"[data-calendar-today]\",\n type: \"click\"\n }), 2, \"onTodayClick\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"click\"\n }), 2, \"onDayClick\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"pointerenter\"\n }), 2, \"onDayPointerEnter\"], [onEvent({\n selector: \"[data-calendar-grid]\",\n type: \"pointerleave\"\n }), 2, \"onGridPointerLeave\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"keydown\"\n }), 2, \"onDayKeydown\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_rangeHover(this);\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n locale = (_init_extra_disabled(this), _init_locale(this));\n selectionMode = (_init_extra_locale(this), _init_selectionMode(this));\n visibleMonths = (_init_extra_selectionMode(this), _init_visibleMonths(this));\n pageBehavior = (_init_extra_visibleMonths(this), _init_pageBehavior(this));\n changeEvent = (_init_extra_pageBehavior(this), _init_changeEvent(this));\n viewYear = (_init_extra_changeEvent(this), _init_viewYear(this, (/* @__PURE__ */new Date()).getFullYear()));\n viewMonth = (_init_extra_viewYear(this), _init_viewMonth(this, (/* @__PURE__ */new Date()).getMonth()));\n focusedIso = (_init_extra_viewMonth(this), _init_focusedIso(this, \"\"));\n weekdayLabels = (_init_extra_focusedIso(this), _init_weekdayLabels(this, []));\n monthPanels = (_init_extra_weekdayLabels(this), _init_monthPanels(this, []));\n todayLabel = (_init_extra_monthPanels(this), _init_todayLabel(this, \"\"));\n rangeAnchor = (_init_extra_todayLabel(this), _init_rangeAnchor(this, null));\n rangeHover = (_init_extra_rangeAnchor(this), _init_rangeHover(this, null));\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get pageDelta() {\n if (this.pageBehavior === \"single\") {\n return 1;\n }\n return Math.max(1, Math.min(this.visibleMonths, 12));\n }\n get monthOptions() {\n return {\n locale: this.resolvedLocale,\n selectionMode: this.selectionMode,\n value: this.value ?? \"\",\n rangeDraft: {\n anchor: this.rangeAnchor,\n hover: this.rangeHover\n },\n min: this.min || void 0,\n max: this.max || void 0\n };\n }\n syncViewFromValue() {\n const iso = this.selectionMode === \"range\" ? parseIsoRange(this.value)?.start ?? \"\" : this.selectionMode === \"multiple\" ? parseMultipleIsos(this.value)[0] ?? \"\" : this.value;\n const date = isoToDate(iso);\n if (date) {\n this.viewYear = date.getFullYear();\n this.viewMonth = date.getMonth();\n this.focusedIso = iso;\n return;\n }\n const today = /* @__PURE__ */new Date();\n this.viewYear = today.getFullYear();\n this.viewMonth = today.getMonth();\n this.focusedIso = dateToIso(today);\n }\n refreshGrid() {\n this.weekdayLabels = getWeekdayLabels(this.resolvedLocale, getWeekStartsOn(this.resolvedLocale));\n this.monthPanels = getVisibleMonthViews(this.viewYear, this.viewMonth, this.visibleMonths).map(view => {\n const viewDate = new Date(view.year, view.month, 1);\n return {\n year: view.year,\n month: view.month,\n label: formatMonthYear(viewDate, this.resolvedLocale),\n weeks: buildCalendarMonth(view.year, view.month, this.monthOptions)\n };\n });\n this.todayLabel = formatTodayLabel(this.resolvedLocale);\n }\n moveMonth(delta) {\n const next = addMonths(this.viewYear, this.viewMonth, delta);\n this.viewYear = next.year;\n this.viewMonth = next.month;\n this.refreshGrid();\n }\n getFlatDays() {\n return this.monthPanels.flatMap(panel => panel.weeks.flat());\n }\n moveFocusedDay(delta) {\n const cells = this.getFlatDays().filter(cell => !cell.isDisabled);\n if (!cells.length) {\n return;\n }\n const currentIndex = cells.findIndex(cell => cell.iso === this.focusedIso);\n const nextIndex = currentIndex < 0 ? Math.max(0, cells.findIndex(cell => cell.inMonth)) : (currentIndex + delta + cells.length) % cells.length;\n const next = cells[nextIndex];\n if (!next) {\n return;\n }\n if (!this.isMonthVisible(next.date)) {\n this.viewYear = next.date.getFullYear();\n this.viewMonth = next.date.getMonth();\n this.focusedIso = next.iso;\n this.refreshGrid();\n this.focusFocusedDay();\n return;\n }\n this.focusedIso = next.iso;\n this.focusDayInCurrentGrid(next.iso);\n }\n isMonthVisible(date) {\n const visibleStart = this.viewYear * 12 + this.viewMonth;\n const visibleEnd = visibleStart + this.visibleMonths - 1;\n const target = date.getFullYear() * 12 + date.getMonth();\n return target >= visibleStart && target <= visibleEnd;\n }\n /** Moves roving focus without rebuilding a grid that already contains the target day. */\n focusDayInCurrentGrid(iso) {\n const current = this.querySelector('[data-calendar-day][tabindex=\"0\"]');\n const candidates = Array.from(this.querySelectorAll(`[data-calendar-day][data-iso=\"${iso}\"]:not(:disabled)`));\n const next = candidates.find(day => !day.hasAttribute(\"data-outside\")) ?? candidates[0];\n if (!next) {\n return;\n }\n if (current && current !== next) {\n current.tabIndex = -1;\n }\n next.tabIndex = 0;\n next.focus();\n }\n /** Restores DOM focus after rebuilding the grid around a newly visible day. */\n focusFocusedDay() {\n requestAnimationFrame(() => {\n this.focusDayInCurrentGrid(this.focusedIso);\n });\n }\n moveFocusedMonth(delta) {\n const current = isoToDate(this.focusedIso) ?? new Date(this.viewYear, this.viewMonth, 1);\n const target = new Date(current.getFullYear(), current.getMonth() + delta, 1);\n const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();\n const next = new Date(target.getFullYear(), target.getMonth(), Math.min(current.getDate(), lastDay));\n this.viewYear = next.getFullYear();\n this.viewMonth = next.getMonth();\n this.focusedIso = dateToIso(next);\n this.refreshGrid();\n this.focusFocusedDay();\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n emitChange(value, extra = {}) {\n this.changeEvent.emit({\n value,\n ...extra\n });\n }\n selectSingle(iso) {\n if (!this.isIsoAllowed(iso) || iso === this.value) {\n return;\n }\n this.value = iso;\n this.emitChange(iso);\n this.refreshGrid();\n }\n selectMultiple(iso) {\n if (!this.isIsoAllowed(iso)) {\n return;\n }\n const next = serializeMultipleIsos(toggleMultipleIso(parseMultipleIsos(this.value), iso));\n if (next === this.value) {\n return;\n }\n this.value = next;\n this.emitChange(next);\n this.refreshGrid();\n }\n selectRange(iso) {\n if (!this.isIsoAllowed(iso)) {\n return;\n }\n const result = advanceRangeSelection(parseIsoRange(this.value), {\n anchor: this.rangeAnchor,\n hover: this.rangeHover\n }, iso);\n this.rangeAnchor = result.draft.anchor;\n this.rangeHover = result.draft.hover;\n if (result.committed) {\n const serialized = serializeIsoRange(result.committed);\n if (serialized !== this.value) {\n this.value = serialized;\n this.emitChange(serialized, {\n start: result.committed.start,\n end: result.committed.end\n });\n }\n }\n this.refreshGrid();\n }\n selectIso(iso) {\n if (this.selectionMode === \"multiple\") {\n this.selectMultiple(iso);\n return;\n }\n if (this.selectionMode === \"range\") {\n this.selectRange(iso);\n return;\n }\n this.selectSingle(iso);\n }\n previewRange(iso) {\n if (this.selectionMode !== \"range\" || !this.rangeAnchor || this.disabled) {\n return;\n }\n if (this.rangeHover === iso) {\n return;\n }\n this.rangeHover = iso;\n this.refreshGrid();\n }\n clearRangePreview() {\n if (!this.rangeHover) {\n return;\n }\n this.rangeHover = this.rangeAnchor;\n this.refreshGrid();\n }\n initialize() {\n this.syncViewFromValue();\n this.refreshGrid();\n }\n onConnected() {\n this.initialize();\n }\n onPropsUpdated() {\n if (this.selectionMode !== \"range\") {\n this.rangeAnchor = null;\n this.rangeHover = null;\n }\n this.syncViewFromValue();\n this.refreshGrid();\n }\n onPrevMonth(event2) {\n event2.preventDefault();\n this.moveMonth(-this.pageDelta);\n }\n onNextMonth(event2) {\n event2.preventDefault();\n this.moveMonth(this.pageDelta);\n }\n onTodayClick(event2) {\n event2.preventDefault();\n this.selectIso(dateToIso(/* @__PURE__ */new Date()));\n }\n onDayClick(event2) {\n const button = event2.target.closest(\"[data-calendar-day]\");\n const iso = button?.getAttribute(\"data-iso\");\n if (!iso || button?.disabled || this.disabled) {\n return;\n }\n this.selectIso(iso);\n }\n onDayPointerEnter(event2) {\n const button = event2.target.closest(\"[data-calendar-day]\");\n const iso = button?.getAttribute(\"data-iso\");\n if (!iso || button?.disabled) {\n return;\n }\n this.previewRange(iso);\n }\n onGridPointerLeave() {\n this.clearRangePreview();\n }\n onDayKeydown(event2) {\n if (this.disabled) {\n return;\n }\n const currentIso = event2.target.getAttribute(\"data-iso\");\n if (currentIso) {\n this.focusedIso = currentIso;\n }\n if (event2.key === \"ArrowLeft\") {\n event2.preventDefault();\n this.moveFocusedDay(-1);\n return;\n }\n if (event2.key === \"ArrowRight\") {\n event2.preventDefault();\n this.moveFocusedDay(1);\n return;\n }\n if (event2.key === \"ArrowUp\") {\n event2.preventDefault();\n this.moveFocusedDay(-7);\n return;\n }\n if (event2.key === \"ArrowDown\") {\n event2.preventDefault();\n this.moveFocusedDay(7);\n return;\n }\n if (event2.key === \"PageUp\") {\n event2.preventDefault();\n this.moveFocusedMonth(event2.shiftKey ? -12 : -this.pageDelta);\n return;\n }\n if (event2.key === \"PageDown\") {\n event2.preventDefault();\n this.moveFocusedMonth(event2.shiftKey ? 12 : this.pageDelta);\n return;\n }\n if (event2.key === \"Enter\" || event2.key === \" \") {\n event2.preventDefault();\n const button = event2.target;\n const iso = button.getAttribute(\"data-iso\");\n if (iso && !button.disabled) {\n this.selectIso(iso);\n }\n }\n }\n dayDataAttributes(dayCell) {\n return {\n \"data-range-start\": dayCell.isRangeStart ? \"true\" : void 0,\n \"data-range-end\": dayCell.isRangeEnd ? \"true\" : void 0,\n \"data-range-middle\": dayCell.isRangeMiddle ? \"true\" : void 0\n };\n }\n render() {\n const panelCount = this.monthPanels.length;\n const multiMonth = panelCount > 1;\n return /* @__PURE__ */jsxs(\"div\", {\n class: `rui-calendar${multiMonth ? \" rui-calendar--multi\" : \"\"}`,\n \"data-ref\": \"root\",\n role: \"application\",\n \"aria-label\": \"Calendar\",\n \"aria-multiselectable\": this.selectionMode === \"multiple\" ? \"true\" : void 0,\n children: [/* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__months\",\n children: this.monthPanels.map((panel, index) => /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-calendar__month-panel\",\n \"data-calendar-month-panel\": true,\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-calendar__header\",\n children: [index === 0 ? /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__nav\",\n \"data-calendar-prev-month\": true,\n \"aria-label\": \"Previous month\",\n disabled: this.disabled,\n children: \"\\u2039\"\n }) : /* @__PURE__ */jsx(\"span\", {\n class: \"rui-calendar__nav-spacer\",\n \"aria-hidden\": \"true\"\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__month\",\n \"aria-live\": \"polite\",\n children: panel.label\n }), index === panelCount - 1 ? /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__nav\",\n \"data-calendar-next-month\": true,\n \"aria-label\": \"Next month\",\n disabled: this.disabled,\n children: \"\\u203A\"\n }) : /* @__PURE__ */jsx(\"span\", {\n class: \"rui-calendar__nav-spacer\",\n \"aria-hidden\": \"true\"\n })]\n }), index === 0 ? /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__weekdays\",\n role: \"row\",\n children: this.weekdayLabels.map(label => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__weekday\",\n role: \"columnheader\",\n \"aria-hidden\": \"true\",\n children: label\n }))\n }) : null, /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__grid\",\n role: \"grid\",\n \"data-calendar-grid\": true,\n children: panel.weeks.map(weekRow => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__week\",\n role: \"row\",\n children: weekRow.map(dayCell => /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__day\",\n \"data-calendar-day\": true,\n \"data-iso\": dayCell.iso,\n role: \"gridcell\",\n disabled: this.disabled || dayCell.isDisabled,\n tabIndex: dayCell.iso === this.focusedIso ? 0 : -1,\n \"aria-selected\": dayCell.isSelected ? \"true\" : \"false\",\n \"aria-current\": dayCell.isToday ? \"date\" : void 0,\n \"data-outside\": dayCell.inMonth ? void 0 : \"true\",\n ...this.dayDataAttributes(dayCell),\n children: dayCell.date.getDate()\n }))\n }))\n })]\n }))\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__footer\",\n children: /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__today\",\n \"data-calendar-today\": true,\n disabled: this.disabled,\n children: this.todayLabel\n })\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCalendar as RuiCalendar };", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const RANGE_SEPARATOR = \"/\";\nconst MULTIPLE_SEPARATOR = \",\";\nexport function compareIso(a, b) {\n return a.localeCompare(b);\n}\nexport function normalizeRange(start, end) {\n if (compareIso(start, end) <= 0) {\n return {\n start,\n end\n };\n }\n return {\n start: end,\n end: start\n };\n}\nexport function parseIsoRange(value) {\n if (!value) {\n return null;\n }\n const [start, end] = value.split(RANGE_SEPARATOR);\n if (!start || !end) {\n return null;\n }\n return normalizeRange(start, end);\n}\nexport function serializeIsoRange(range) {\n if (!range) {\n return \"\";\n }\n const normalized = normalizeRange(range.start, range.end);\n return `${normalized.start}${RANGE_SEPARATOR}${normalized.end}`;\n}\nexport function parseMultipleIsos(value) {\n if (!value) {\n return [];\n }\n return value.split(MULTIPLE_SEPARATOR).map(iso => iso.trim()).filter(Boolean).sort(compareIso);\n}\nexport function serializeMultipleIsos(values) {\n return [...new Set(values)].sort(compareIso).join(MULTIPLE_SEPARATOR);\n}\nexport function toggleMultipleIso(selected, iso) {\n const set = new Set(selected);\n if (set.has(iso)) {\n set.delete(iso);\n } else {\n set.add(iso);\n }\n return [...set].sort(compareIso);\n}\nexport function isIsoInSpan(iso, range) {\n const normalized = normalizeRange(range.start, range.end);\n return compareIso(iso, normalized.start) >= 0 && compareIso(iso, normalized.end) <= 0;\n}\nexport function getActiveRangeBounds(committed, draft) {\n if (draft.anchor) {\n const hover = draft.hover ?? draft.anchor;\n return normalizeRange(draft.anchor, hover);\n }\n return committed;\n}\nexport function getDaySelectionAppearance(iso, mode, options) {\n if (mode === \"single\") {\n const selected = options.singleIso === iso;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n if (mode === \"multiple\") {\n const selected = options.multipleIsos?.includes(iso) ?? false;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n const range = options.range;\n if (!range) {\n return {\n isSelected: false,\n isRangeStart: false,\n isRangeEnd: false,\n isRangeMiddle: false\n };\n }\n const normalized = normalizeRange(range.start, range.end);\n const inSpan = isIsoInSpan(iso, normalized);\n const isStart = iso === normalized.start;\n const isEnd = iso === normalized.end;\n const isMiddle = inSpan && !isStart && !isEnd;\n return {\n isSelected: inSpan,\n isRangeStart: isStart,\n isRangeEnd: isEnd,\n isRangeMiddle: isMiddle\n };\n}\nexport function advanceRangeSelection(committed, draft, iso) {\n if (!draft.anchor) {\n return {\n committed,\n draft: {\n anchor: iso,\n hover: iso\n }\n };\n }\n const next = normalizeRange(draft.anchor, iso);\n return {\n committed: next,\n draft: {\n anchor: null,\n hover: null\n }\n };\n}", "import { dateToIso, isIsoInRange } from \"./iso\";\nimport { getDaySelectionAppearance, parseIsoRange, parseMultipleIsos } from \"./selection\";\nexport function getWeekStartsOn(locale) {\n const tag = resolveLocaleTag(locale);\n try {\n const resolved = new Intl.Locale(tag);\n const weekInfo = resolved.weekInfo;\n if (weekInfo?.firstDay != null) {\n return weekInfo.firstDay === 7 ? 0 : weekInfo.firstDay;\n }\n } catch {}\n return tag.startsWith(\"en-US\") ? 0 : 1;\n}\nfunction resolveLocaleTag(locale) {\n if (Array.isArray(locale)) {\n return locale[0] ?? navigator.language;\n }\n return locale ?? navigator.language;\n}\nfunction startOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\nfunction isSameDay(a, b) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\nfunction resolveSelectionContext(options) {\n const mode = options.selectionMode ?? \"single\";\n const value = options.value ?? \"\";\n if (mode === \"multiple\") {\n return {\n mode,\n multipleIsos: parseMultipleIsos(value)\n };\n }\n if (mode === \"range\") {\n const committed = parseIsoRange(value);\n if (options.rangeDraft?.anchor) {\n const hover = options.rangeDraft.hover ?? options.rangeDraft.anchor;\n return {\n mode,\n range: normalizeRangeFromDraft(options.rangeDraft.anchor, hover)\n };\n }\n return {\n mode,\n range: committed\n };\n }\n return {\n mode,\n singleIso: value || void 0\n };\n}\nfunction normalizeRangeFromDraft(anchor, hover) {\n if (anchor.localeCompare(hover) <= 0) {\n return {\n start: anchor,\n end: hover\n };\n }\n return {\n start: hover,\n end: anchor\n };\n}\nexport function buildCalendarMonth(year, month, options) {\n const weekStartsOn = getWeekStartsOn(options.locale);\n const today = startOfDay(options.today ?? /* @__PURE__ */new Date());\n const selection = resolveSelectionContext(options);\n const firstOfMonth = new Date(year, month, 1);\n const startOffset = (firstOfMonth.getDay() - weekStartsOn + 7) % 7;\n const gridStart = new Date(year, month, 1 - startOffset);\n const weeks = [];\n const cursor = new Date(gridStart);\n for (let week = 0; week < 6; week += 1) {\n const row = [];\n for (let day = 0; day < 7; day += 1) {\n const iso = dateToIso(cursor);\n const appearance = getDaySelectionAppearance(iso, selection.mode, {\n singleIso: selection.singleIso,\n multipleIsos: selection.multipleIsos,\n range: selection.range\n });\n row.push({\n date: new Date(cursor),\n iso,\n inMonth: cursor.getMonth() === month,\n isToday: isSameDay(cursor, today),\n isSelected: appearance.isSelected,\n isDisabled: !isIsoInRange(iso, options.min, options.max),\n isRangeStart: appearance.isRangeStart,\n isRangeEnd: appearance.isRangeEnd,\n isRangeMiddle: appearance.isRangeMiddle\n });\n cursor.setDate(cursor.getDate() + 1);\n }\n weeks.push(row);\n if (week >= 4 && cursor.getMonth() !== month && cursor.getDate() > 7) {\n break;\n }\n }\n return weeks;\n}", "export function addMonths(year, month, delta) {\n const date = new Date(year, month + delta, 1);\n return {\n year: date.getFullYear(),\n month: date.getMonth()\n };\n}\nexport function getVisibleMonthViews(year, month, count) {\n const safeCount = Math.max(1, Math.min(count, 12));\n return Array.from({\n length: safeCount\n }, (_, offset) => {\n const next = addMonths(year, month, offset);\n return {\n year: next.year,\n month: next.month,\n offset\n };\n });\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./calendar.script\";\nexport function RuiCalendar({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-calendar\", {\n ...props,\n children\n });\n}"],
5
- "mappings": "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",
6
- "names": ["jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "state", "resolveLocale", "locale", "tags", "tag", "isoToDate", "iso", "match", "year", "month", "day", "date", "dateToIso", "isIsoInRange", "min", "max", "compareIso", "a", "b", "normalizeRange", "start", "end", "parseIsoRange", "value", "serializeIsoRange", "range", "normalized", "parseMultipleIsos", "iso", "serializeMultipleIsos", "values", "toggleMultipleIso", "selected", "set", "isIsoInSpan", "getDaySelectionAppearance", "iso", "mode", "options", "selected", "range", "normalized", "normalizeRange", "inSpan", "isIsoInSpan", "isStart", "isEnd", "advanceRangeSelection", "committed", "draft", "getWeekStartsOn", "locale", "tag", "resolveLocaleTag", "weekInfo", "startOfDay", "date", "isSameDay", "a", "b", "resolveSelectionContext", "options", "mode", "value", "parseMultipleIsos", "committed", "parseIsoRange", "hover", "normalizeRangeFromDraft", "anchor", "buildCalendarMonth", "year", "month", "weekStartsOn", "today", "selection", "startOffset", "gridStart", "weeks", "cursor", "week", "row", "day", "iso", "dateToIso", "appearance", "getDaySelectionAppearance", "isIsoInRange", "addMonths", "year", "month", "delta", "date", "getVisibleMonthViews", "count", "safeCount", "_", "offset", "next", "formatterCache", "cacheKey", "locale", "options", "getDateTimeFormat", "key", "cached", "formatter", "formatMonthYear", "date", "locale", "getDateTimeFormat", "getWeekdayLabels", "weekStartsOn", "formatter", "labels", "offset", "dayIndex", "reference", "formatTodayLabel", "locale", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_disabled", "_init_extra_disabled", "_init_locale", "_init_extra_locale", "_init_selectionMode", "_init_extra_selectionMode", "_init_visibleMonths", "_init_extra_visibleMonths", "_init_pageBehavior", "_init_extra_pageBehavior", "_init_changeEvent", "_init_extra_changeEvent", "_init_viewYear", "_init_extra_viewYear", "_init_viewMonth", "_init_extra_viewMonth", "_init_focusedIso", "_init_extra_focusedIso", "_init_weekdayLabels", "_init_extra_weekdayLabels", "_init_monthPanels", "_init_extra_monthPanels", "_init_todayLabel", "_init_extra_todayLabel", "_init_rangeAnchor", "_init_extra_rangeAnchor", "_init_rangeHover", "_init_extra_rangeHover", "_applyDecs", "e", "t", "o", "a", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "i", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "c", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiCalendar", "RuiCalendar", "RadiantElement", "customElement", "prop", "event", "state", "onUpdated", "onEvent", "args", "resolveLocale", "iso", "parseIsoRange", "parseMultipleIsos", "date", "isoToDate", "today", "dateToIso", "getWeekdayLabels", "getWeekStartsOn", "getVisibleMonthViews", "view", "viewDate", "formatMonthYear", "buildCalendarMonth", "formatTodayLabel", "delta", "next", "addMonths", "panel", "cells", "cell", "currentIndex", "nextIndex", "visibleStart", "visibleEnd", "target", "current", "candidates", "day", "lastDay", "value", "extra", "serializeMultipleIsos", "toggleMultipleIso", "result", "advanceRangeSelection", "serialized", "serializeIsoRange", "event2", "button", "currentIso", "dayCell", "panelCount", "multiMonth", "jsxs", "jsx", "index", "label", "weekRow", "jsx", "RuiCalendar", "children", "props", "jsx"]
4
+ "sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_locale, _init_extra_locale, _init_selectionMode, _init_extra_selectionMode, _init_visibleMonths, _init_extra_visibleMonths, _init_pageBehavior, _init_extra_pageBehavior, _init_changeEvent, _init_extra_changeEvent, _init_viewYear, _init_extra_viewYear, _init_viewMonth, _init_extra_viewMonth, _init_focusedIso, _init_extra_focusedIso, _init_weekdayLabels, _init_extra_weekdayLabels, _init_monthPanels, _init_extra_monthPanels, _init_todayLabel, _init_extra_todayLabel, _init_rangeAnchor, _init_extra_rangeAnchor, _init_rangeHover, _init_extra_rangeHover;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, registerSsrPreparationCallback, state } from \"@ecopages/radiant\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nimport { addMonths, advanceRangeSelection, buildCalendarMonth, dateToIso, formatMonthYear, formatTodayLabel, getVisibleMonthViews, getWeekStartsOn, getWeekdayLabels, isoToDate, parseIsoRange, parseMultipleIsos, serializeIsoRange, serializeMultipleIsos, toggleMultipleIso } from \"@/lib/intl-date\";\nlet _RuiCalendar;\nclass RuiCalendar extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_locale, _init_extra_locale, _init_selectionMode, _init_extra_selectionMode, _init_visibleMonths, _init_extra_visibleMonths, _init_pageBehavior, _init_extra_pageBehavior, _init_changeEvent, _init_extra_changeEvent, _init_viewYear, _init_extra_viewYear, _init_viewMonth, _init_extra_viewMonth, _init_focusedIso, _init_extra_focusedIso, _init_weekdayLabels, _init_extra_weekdayLabels, _init_monthPanels, _init_extra_monthPanels, _init_todayLabel, _init_extra_todayLabel, _init_rangeAnchor, _init_extra_rangeAnchor, _init_rangeHover, _init_extra_rangeHover, _initProto],\n c: [_RuiCalendar, _initClass]\n } = _applyDecs(this, [customElement(\"rui-calendar\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"selection-mode\",\n defaultValue: \"single\"\n }), 0, \"selectionMode\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 1\n }), 0, \"visibleMonths\"], [prop({\n type: String,\n attribute: \"page-behavior\",\n defaultValue: \"visible\"\n }), 0, \"pageBehavior\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"viewYear\"], [state, 0, \"viewMonth\"], [state, 0, \"focusedIso\"], [state, 0, \"weekdayLabels\"], [state, 0, \"monthPanels\"], [state, 0, \"todayLabel\"], [state, 0, \"rangeAnchor\"], [state, 0, \"rangeHover\"], [onUpdated([\"value\", \"min\", \"max\", \"disabled\", \"locale\", \"selectionMode\", \"visibleMonths\", \"pageBehavior\"]), 2, \"onPropsUpdated\"], [onEvent({\n selector: \"[data-calendar-prev-month]\",\n type: \"click\"\n }), 2, \"onPrevMonth\"], [onEvent({\n selector: \"[data-calendar-next-month]\",\n type: \"click\"\n }), 2, \"onNextMonth\"], [onEvent({\n selector: \"[data-calendar-today]\",\n type: \"click\"\n }), 2, \"onTodayClick\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"click\"\n }), 2, \"onDayClick\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"pointerenter\"\n }), 2, \"onDayPointerEnter\"], [onEvent({\n selector: \"[data-calendar-grid]\",\n type: \"pointerleave\"\n }), 2, \"onGridPointerLeave\"], [onEvent({\n selector: \"[data-calendar-day]\",\n type: \"keydown\"\n }), 2, \"onDayKeydown\"]], 0, void 0, RadiantElement));\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n locale = (_init_extra_disabled(this), _init_locale(this));\n selectionMode = (_init_extra_locale(this), _init_selectionMode(this));\n visibleMonths = (_init_extra_selectionMode(this), _init_visibleMonths(this));\n pageBehavior = (_init_extra_visibleMonths(this), _init_pageBehavior(this));\n changeEvent = (_init_extra_pageBehavior(this), _init_changeEvent(this));\n viewYear = (_init_extra_changeEvent(this), _init_viewYear(this, (/* @__PURE__ */new Date()).getFullYear()));\n viewMonth = (_init_extra_viewYear(this), _init_viewMonth(this, (/* @__PURE__ */new Date()).getMonth()));\n focusedIso = (_init_extra_viewMonth(this), _init_focusedIso(this, \"\"));\n weekdayLabels = (_init_extra_focusedIso(this), _init_weekdayLabels(this, []));\n monthPanels = (_init_extra_weekdayLabels(this), _init_monthPanels(this, []));\n todayLabel = (_init_extra_monthPanels(this), _init_todayLabel(this, \"\"));\n rangeAnchor = (_init_extra_todayLabel(this), _init_rangeAnchor(this, null));\n rangeHover = (_init_extra_rangeAnchor(this), _init_rangeHover(this, null));\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get pageDelta() {\n if (this.pageBehavior === \"single\") {\n return 1;\n }\n return Math.max(1, Math.min(this.visibleMonths, 12));\n }\n get monthOptions() {\n return {\n locale: this.resolvedLocale,\n selectionMode: this.selectionMode,\n value: this.value ?? \"\",\n rangeDraft: {\n anchor: this.rangeAnchor,\n hover: this.rangeHover\n },\n min: this.min || void 0,\n max: this.max || void 0\n };\n }\n syncViewFromValue() {\n const iso = this.selectionMode === \"range\" ? parseIsoRange(this.value)?.start ?? \"\" : this.selectionMode === \"multiple\" ? parseMultipleIsos(this.value)[0] ?? \"\" : this.value;\n const date = isoToDate(iso);\n if (date) {\n this.viewYear = date.getFullYear();\n this.viewMonth = date.getMonth();\n this.focusedIso = iso;\n return;\n }\n const today = /* @__PURE__ */new Date();\n this.viewYear = today.getFullYear();\n this.viewMonth = today.getMonth();\n this.focusedIso = dateToIso(today);\n }\n refreshGrid() {\n this.weekdayLabels = getWeekdayLabels(this.resolvedLocale, getWeekStartsOn(this.resolvedLocale));\n this.monthPanels = getVisibleMonthViews(this.viewYear, this.viewMonth, this.visibleMonths).map(view => {\n const viewDate = new Date(view.year, view.month, 1);\n return {\n year: view.year,\n month: view.month,\n label: formatMonthYear(viewDate, this.resolvedLocale),\n weeks: buildCalendarMonth(view.year, view.month, this.monthOptions)\n };\n });\n this.todayLabel = formatTodayLabel(this.resolvedLocale);\n }\n moveMonth(delta) {\n const next = addMonths(this.viewYear, this.viewMonth, delta);\n this.viewYear = next.year;\n this.viewMonth = next.month;\n this.refreshGrid();\n }\n getFlatDays() {\n return this.monthPanels.flatMap(panel => panel.weeks.flat());\n }\n moveFocusedDay(delta) {\n const cells = this.getFlatDays().filter(cell => !cell.isDisabled);\n if (!cells.length) {\n return;\n }\n const currentIndex = cells.findIndex(cell => cell.iso === this.focusedIso);\n const nextIndex = currentIndex < 0 ? Math.max(0, cells.findIndex(cell => cell.inMonth)) : (currentIndex + delta + cells.length) % cells.length;\n const next = cells[nextIndex];\n if (!next) {\n return;\n }\n if (!this.isMonthVisible(next.date)) {\n this.viewYear = next.date.getFullYear();\n this.viewMonth = next.date.getMonth();\n this.focusedIso = next.iso;\n this.refreshGrid();\n this.focusFocusedDay();\n return;\n }\n this.focusedIso = next.iso;\n this.focusDayInCurrentGrid(next.iso);\n }\n isMonthVisible(date) {\n const visibleStart = this.viewYear * 12 + this.viewMonth;\n const visibleEnd = visibleStart + this.visibleMonths - 1;\n const target = date.getFullYear() * 12 + date.getMonth();\n return target >= visibleStart && target <= visibleEnd;\n }\n /** Moves roving focus without rebuilding a grid that already contains the target day. */\n focusDayInCurrentGrid(iso) {\n const current = this.querySelector('[data-calendar-day][tabindex=\"0\"]');\n const candidates = Array.from(this.querySelectorAll(`[data-calendar-day][data-iso=\"${iso}\"]:not(:disabled)`));\n const next = candidates.find(day => !day.hasAttribute(\"data-outside\")) ?? candidates[0];\n if (!next) {\n return;\n }\n if (current && current !== next) {\n current.tabIndex = -1;\n }\n next.tabIndex = 0;\n next.focus();\n }\n /** Restores DOM focus after rebuilding the grid around a newly visible day. */\n focusFocusedDay() {\n requestAnimationFrame(() => {\n this.focusDayInCurrentGrid(this.focusedIso);\n });\n }\n moveFocusedMonth(delta) {\n const current = isoToDate(this.focusedIso) ?? new Date(this.viewYear, this.viewMonth, 1);\n const target = new Date(current.getFullYear(), current.getMonth() + delta, 1);\n const lastDay = new Date(target.getFullYear(), target.getMonth() + 1, 0).getDate();\n const next = new Date(target.getFullYear(), target.getMonth(), Math.min(current.getDate(), lastDay));\n this.viewYear = next.getFullYear();\n this.viewMonth = next.getMonth();\n this.focusedIso = dateToIso(next);\n this.refreshGrid();\n this.focusFocusedDay();\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n emitChange(value, extra = {}) {\n this.changeEvent.emit({\n value,\n ...extra\n });\n }\n selectSingle(iso) {\n if (!this.isIsoAllowed(iso) || iso === this.value) {\n return;\n }\n this.value = iso;\n this.emitChange(iso);\n this.refreshGrid();\n }\n selectMultiple(iso) {\n if (!this.isIsoAllowed(iso)) {\n return;\n }\n const next = serializeMultipleIsos(toggleMultipleIso(parseMultipleIsos(this.value), iso));\n if (next === this.value) {\n return;\n }\n this.value = next;\n this.emitChange(next);\n this.refreshGrid();\n }\n selectRange(iso) {\n if (!this.isIsoAllowed(iso)) {\n return;\n }\n const result = advanceRangeSelection(parseIsoRange(this.value), {\n anchor: this.rangeAnchor,\n hover: this.rangeHover\n }, iso);\n this.rangeAnchor = result.draft.anchor;\n this.rangeHover = result.draft.hover;\n if (result.committed) {\n const serialized = serializeIsoRange(result.committed);\n if (serialized !== this.value) {\n this.value = serialized;\n this.emitChange(serialized, {\n start: result.committed.start,\n end: result.committed.end\n });\n }\n }\n this.refreshGrid();\n }\n selectIso(iso) {\n if (this.selectionMode === \"multiple\") {\n this.selectMultiple(iso);\n return;\n }\n if (this.selectionMode === \"range\") {\n this.selectRange(iso);\n return;\n }\n this.selectSingle(iso);\n }\n previewRange(iso) {\n if (this.selectionMode !== \"range\" || !this.rangeAnchor || this.disabled) {\n return;\n }\n if (this.rangeHover === iso) {\n return;\n }\n this.rangeHover = iso;\n this.refreshGrid();\n }\n clearRangePreview() {\n if (!this.rangeHover) {\n return;\n }\n this.rangeHover = this.rangeAnchor;\n this.refreshGrid();\n }\n initialize() {\n this.syncViewFromValue();\n this.refreshGrid();\n }\n constructor() {\n super(), _init_extra_rangeHover(this);\n registerSsrPreparationCallback(this, () => this.initialize());\n }\n onConnected() {\n this.initialize();\n }\n onPropsUpdated() {\n if (this.selectionMode !== \"range\") {\n this.rangeAnchor = null;\n this.rangeHover = null;\n }\n this.syncViewFromValue();\n this.refreshGrid();\n }\n onPrevMonth(event2) {\n event2.preventDefault();\n this.moveMonth(-this.pageDelta);\n }\n onNextMonth(event2) {\n event2.preventDefault();\n this.moveMonth(this.pageDelta);\n }\n onTodayClick(event2) {\n event2.preventDefault();\n this.selectIso(dateToIso(/* @__PURE__ */new Date()));\n }\n onDayClick(event2) {\n const button = event2.target.closest(\"[data-calendar-day]\");\n const iso = button?.getAttribute(\"data-iso\");\n if (!iso || button?.disabled || this.disabled) {\n return;\n }\n this.selectIso(iso);\n }\n onDayPointerEnter(event2) {\n const button = event2.target.closest(\"[data-calendar-day]\");\n const iso = button?.getAttribute(\"data-iso\");\n if (!iso || button?.disabled) {\n return;\n }\n this.previewRange(iso);\n }\n onGridPointerLeave() {\n this.clearRangePreview();\n }\n onDayKeydown(event2) {\n if (this.disabled) {\n return;\n }\n const currentIso = event2.target.getAttribute(\"data-iso\");\n if (currentIso) {\n this.focusedIso = currentIso;\n }\n if (event2.key === \"ArrowLeft\") {\n event2.preventDefault();\n this.moveFocusedDay(-1);\n return;\n }\n if (event2.key === \"ArrowRight\") {\n event2.preventDefault();\n this.moveFocusedDay(1);\n return;\n }\n if (event2.key === \"ArrowUp\") {\n event2.preventDefault();\n this.moveFocusedDay(-7);\n return;\n }\n if (event2.key === \"ArrowDown\") {\n event2.preventDefault();\n this.moveFocusedDay(7);\n return;\n }\n if (event2.key === \"PageUp\") {\n event2.preventDefault();\n this.moveFocusedMonth(event2.shiftKey ? -12 : -this.pageDelta);\n return;\n }\n if (event2.key === \"PageDown\") {\n event2.preventDefault();\n this.moveFocusedMonth(event2.shiftKey ? 12 : this.pageDelta);\n return;\n }\n if (event2.key === \"Enter\" || event2.key === \" \") {\n event2.preventDefault();\n const button = event2.target;\n const iso = button.getAttribute(\"data-iso\");\n if (iso && !button.disabled) {\n this.selectIso(iso);\n }\n }\n }\n dayDataAttributes(dayCell) {\n return {\n \"data-range-start\": dayCell.isRangeStart ? \"true\" : void 0,\n \"data-range-end\": dayCell.isRangeEnd ? \"true\" : void 0,\n \"data-range-middle\": dayCell.isRangeMiddle ? \"true\" : void 0\n };\n }\n render() {\n const panelCount = this.monthPanels.length;\n const multiMonth = panelCount > 1;\n return /* @__PURE__ */jsxs(\"div\", {\n class: `rui-calendar${multiMonth ? \" rui-calendar--multi\" : \"\"}`,\n \"data-ref\": \"root\",\n role: \"application\",\n \"aria-label\": \"Calendar\",\n \"aria-multiselectable\": this.selectionMode === \"multiple\" ? \"true\" : void 0,\n children: [/* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__months\",\n children: this.monthPanels.map((panel, index) => /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-calendar__month-panel\",\n \"data-calendar-month-panel\": true,\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-calendar__header\",\n children: [index === 0 ? /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__nav\",\n \"data-calendar-prev-month\": true,\n \"aria-label\": \"Previous month\",\n disabled: this.disabled,\n children: \"\\u2039\"\n }) : /* @__PURE__ */jsx(\"span\", {\n class: \"rui-calendar__nav-spacer\",\n \"aria-hidden\": \"true\"\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__month\",\n \"aria-live\": \"polite\",\n children: panel.label\n }), index === panelCount - 1 ? /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__nav\",\n \"data-calendar-next-month\": true,\n \"aria-label\": \"Next month\",\n disabled: this.disabled,\n children: \"\\u203A\"\n }) : /* @__PURE__ */jsx(\"span\", {\n class: \"rui-calendar__nav-spacer\",\n \"aria-hidden\": \"true\"\n })]\n }), index === 0 ? /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__weekdays\",\n role: \"row\",\n children: this.weekdayLabels.map(label => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__weekday\",\n role: \"columnheader\",\n \"aria-hidden\": \"true\",\n children: label\n }))\n }) : null, /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__grid\",\n role: \"grid\",\n \"data-calendar-grid\": true,\n children: panel.weeks.map(weekRow => /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__week\",\n role: \"row\",\n children: weekRow.map(dayCell => /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__day\",\n \"data-calendar-day\": true,\n \"data-iso\": dayCell.iso,\n role: \"gridcell\",\n disabled: this.disabled || dayCell.isDisabled,\n tabIndex: dayCell.iso === this.focusedIso ? 0 : -1,\n \"aria-selected\": dayCell.isSelected ? \"true\" : \"false\",\n \"aria-current\": dayCell.isToday ? \"date\" : void 0,\n \"data-outside\": dayCell.inMonth ? void 0 : \"true\",\n ...this.dayDataAttributes(dayCell),\n children: dayCell.date.getDate()\n }))\n }))\n })]\n }))\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-calendar__footer\",\n children: /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-calendar__today\",\n \"data-calendar-today\": true,\n disabled: this.disabled,\n children: this.todayLabel\n })\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiCalendar as RuiCalendar };", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const RANGE_SEPARATOR = \"/\";\nconst MULTIPLE_SEPARATOR = \",\";\nexport function compareIso(a, b) {\n return a.localeCompare(b);\n}\nexport function normalizeRange(start, end) {\n if (compareIso(start, end) <= 0) {\n return {\n start,\n end\n };\n }\n return {\n start: end,\n end: start\n };\n}\nexport function parseIsoRange(value) {\n if (!value) {\n return null;\n }\n const [start, end] = value.split(RANGE_SEPARATOR);\n if (!start || !end) {\n return null;\n }\n return normalizeRange(start, end);\n}\nexport function serializeIsoRange(range) {\n if (!range) {\n return \"\";\n }\n const normalized = normalizeRange(range.start, range.end);\n return `${normalized.start}${RANGE_SEPARATOR}${normalized.end}`;\n}\nexport function parseMultipleIsos(value) {\n if (!value) {\n return [];\n }\n return value.split(MULTIPLE_SEPARATOR).map(iso => iso.trim()).filter(Boolean).sort(compareIso);\n}\nexport function serializeMultipleIsos(values) {\n return [...new Set(values)].sort(compareIso).join(MULTIPLE_SEPARATOR);\n}\nexport function toggleMultipleIso(selected, iso) {\n const set = new Set(selected);\n if (set.has(iso)) {\n set.delete(iso);\n } else {\n set.add(iso);\n }\n return [...set].sort(compareIso);\n}\nexport function isIsoInSpan(iso, range) {\n const normalized = normalizeRange(range.start, range.end);\n return compareIso(iso, normalized.start) >= 0 && compareIso(iso, normalized.end) <= 0;\n}\nexport function getActiveRangeBounds(committed, draft) {\n if (draft.anchor) {\n const hover = draft.hover ?? draft.anchor;\n return normalizeRange(draft.anchor, hover);\n }\n return committed;\n}\nexport function getDaySelectionAppearance(iso, mode, options) {\n if (mode === \"single\") {\n const selected = options.singleIso === iso;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n if (mode === \"multiple\") {\n const selected = options.multipleIsos?.includes(iso) ?? false;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n const range = options.range;\n if (!range) {\n return {\n isSelected: false,\n isRangeStart: false,\n isRangeEnd: false,\n isRangeMiddle: false\n };\n }\n const normalized = normalizeRange(range.start, range.end);\n const inSpan = isIsoInSpan(iso, normalized);\n const isStart = iso === normalized.start;\n const isEnd = iso === normalized.end;\n const isMiddle = inSpan && !isStart && !isEnd;\n return {\n isSelected: inSpan,\n isRangeStart: isStart,\n isRangeEnd: isEnd,\n isRangeMiddle: isMiddle\n };\n}\nexport function advanceRangeSelection(committed, draft, iso) {\n if (!draft.anchor) {\n return {\n committed,\n draft: {\n anchor: iso,\n hover: iso\n }\n };\n }\n const next = normalizeRange(draft.anchor, iso);\n return {\n committed: next,\n draft: {\n anchor: null,\n hover: null\n }\n };\n}", "import { dateToIso, isIsoInRange } from \"./iso\";\nimport { getDaySelectionAppearance, parseIsoRange, parseMultipleIsos } from \"./selection\";\nexport function getWeekStartsOn(locale) {\n const tag = resolveLocaleTag(locale);\n try {\n const resolved = new Intl.Locale(tag);\n const weekInfo = resolved.weekInfo;\n if (weekInfo?.firstDay != null) {\n return weekInfo.firstDay === 7 ? 0 : weekInfo.firstDay;\n }\n } catch {}\n return tag.startsWith(\"en-US\") ? 0 : 1;\n}\nfunction resolveLocaleTag(locale) {\n if (Array.isArray(locale)) {\n return locale[0] ?? navigator.language;\n }\n return locale ?? navigator.language;\n}\nfunction startOfDay(date) {\n return new Date(date.getFullYear(), date.getMonth(), date.getDate());\n}\nfunction isSameDay(a, b) {\n return a.getFullYear() === b.getFullYear() && a.getMonth() === b.getMonth() && a.getDate() === b.getDate();\n}\nfunction resolveSelectionContext(options) {\n const mode = options.selectionMode ?? \"single\";\n const value = options.value ?? \"\";\n if (mode === \"multiple\") {\n return {\n mode,\n multipleIsos: parseMultipleIsos(value)\n };\n }\n if (mode === \"range\") {\n const committed = parseIsoRange(value);\n if (options.rangeDraft?.anchor) {\n const hover = options.rangeDraft.hover ?? options.rangeDraft.anchor;\n return {\n mode,\n range: normalizeRangeFromDraft(options.rangeDraft.anchor, hover)\n };\n }\n return {\n mode,\n range: committed\n };\n }\n return {\n mode,\n singleIso: value || void 0\n };\n}\nfunction normalizeRangeFromDraft(anchor, hover) {\n if (anchor.localeCompare(hover) <= 0) {\n return {\n start: anchor,\n end: hover\n };\n }\n return {\n start: hover,\n end: anchor\n };\n}\nexport function buildCalendarMonth(year, month, options) {\n const weekStartsOn = getWeekStartsOn(options.locale);\n const today = startOfDay(options.today ?? /* @__PURE__ */new Date());\n const selection = resolveSelectionContext(options);\n const firstOfMonth = new Date(year, month, 1);\n const startOffset = (firstOfMonth.getDay() - weekStartsOn + 7) % 7;\n const gridStart = new Date(year, month, 1 - startOffset);\n const weeks = [];\n const cursor = new Date(gridStart);\n for (let week = 0; week < 6; week += 1) {\n const row = [];\n for (let day = 0; day < 7; day += 1) {\n const iso = dateToIso(cursor);\n const appearance = getDaySelectionAppearance(iso, selection.mode, {\n singleIso: selection.singleIso,\n multipleIsos: selection.multipleIsos,\n range: selection.range\n });\n row.push({\n date: new Date(cursor),\n iso,\n inMonth: cursor.getMonth() === month,\n isToday: isSameDay(cursor, today),\n isSelected: appearance.isSelected,\n isDisabled: !isIsoInRange(iso, options.min, options.max),\n isRangeStart: appearance.isRangeStart,\n isRangeEnd: appearance.isRangeEnd,\n isRangeMiddle: appearance.isRangeMiddle\n });\n cursor.setDate(cursor.getDate() + 1);\n }\n weeks.push(row);\n if (week >= 4 && cursor.getMonth() !== month && cursor.getDate() > 7) {\n break;\n }\n }\n return weeks;\n}", "export function addMonths(year, month, delta) {\n const date = new Date(year, month + delta, 1);\n return {\n year: date.getFullYear(),\n month: date.getMonth()\n };\n}\nexport function getVisibleMonthViews(year, month, count) {\n const safeCount = Math.max(1, Math.min(count, 12));\n return Array.from({\n length: safeCount\n }, (_, offset) => {\n const next = addMonths(year, month, offset);\n return {\n year: next.year,\n month: next.month,\n offset\n };\n });\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport \"./calendar.script\";\nexport function RuiCalendar({\n children,\n ...props\n}) {\n return /* @__PURE__ */jsx(\"rui-calendar\", {\n ...props,\n children\n });\n}"],
5
+ "mappings": "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",
6
+ "names": ["jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "registerSsrPreparationCallback", "state", "resolveLocale", "locale", "tags", "tag", "isoToDate", "iso", "match", "year", "month", "day", "date", "dateToIso", "isIsoInRange", "min", "max", "compareIso", "a", "b", "normalizeRange", "start", "end", "parseIsoRange", "value", "serializeIsoRange", "range", "normalized", "parseMultipleIsos", "iso", "serializeMultipleIsos", "values", "toggleMultipleIso", "selected", "set", "isIsoInSpan", "getDaySelectionAppearance", "iso", "mode", "options", "selected", "range", "normalized", "normalizeRange", "inSpan", "isIsoInSpan", "isStart", "isEnd", "advanceRangeSelection", "committed", "draft", "getWeekStartsOn", "locale", "tag", "resolveLocaleTag", "weekInfo", "startOfDay", "date", "isSameDay", "a", "b", "resolveSelectionContext", "options", "mode", "value", "parseMultipleIsos", "committed", "parseIsoRange", "hover", "normalizeRangeFromDraft", "anchor", "buildCalendarMonth", "year", "month", "weekStartsOn", "today", "selection", "startOffset", "gridStart", "weeks", "cursor", "week", "row", "day", "iso", "dateToIso", "appearance", "getDaySelectionAppearance", "isIsoInRange", "addMonths", "year", "month", "delta", "date", "getVisibleMonthViews", "count", "safeCount", "_", "offset", "next", "formatterCache", "cacheKey", "locale", "options", "getDateTimeFormat", "key", "cached", "formatter", "formatMonthYear", "date", "locale", "getDateTimeFormat", "getWeekdayLabels", "weekStartsOn", "formatter", "labels", "offset", "dayIndex", "reference", "formatTodayLabel", "locale", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_disabled", "_init_extra_disabled", "_init_locale", "_init_extra_locale", "_init_selectionMode", "_init_extra_selectionMode", "_init_visibleMonths", "_init_extra_visibleMonths", "_init_pageBehavior", "_init_extra_pageBehavior", "_init_changeEvent", "_init_extra_changeEvent", "_init_viewYear", "_init_extra_viewYear", "_init_viewMonth", "_init_extra_viewMonth", "_init_focusedIso", "_init_extra_focusedIso", "_init_weekdayLabels", "_init_extra_weekdayLabels", "_init_monthPanels", "_init_extra_monthPanels", "_init_todayLabel", "_init_extra_todayLabel", "_init_rangeAnchor", "_init_extra_rangeAnchor", "_init_rangeHover", "_init_extra_rangeHover", "_applyDecs", "e", "t", "o", "a", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "i", "b", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "c", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiCalendar", "RuiCalendar", "RadiantElement", "customElement", "prop", "event", "state", "onUpdated", "onEvent", "resolveLocale", "iso", "parseIsoRange", "parseMultipleIsos", "date", "isoToDate", "today", "dateToIso", "getWeekdayLabels", "getWeekStartsOn", "getVisibleMonthViews", "view", "viewDate", "formatMonthYear", "buildCalendarMonth", "formatTodayLabel", "delta", "next", "addMonths", "panel", "cells", "cell", "currentIndex", "nextIndex", "visibleStart", "visibleEnd", "target", "current", "candidates", "day", "lastDay", "value", "extra", "serializeMultipleIsos", "toggleMultipleIso", "result", "advanceRangeSelection", "serialized", "serializeIsoRange", "registerSsrPreparationCallback", "event2", "button", "currentIso", "dayCell", "panelCount", "multiMonth", "jsxs", "jsx", "index", "label", "weekRow", "jsx", "RuiCalendar", "children", "props", "jsx"]
7
7
  }
@@ -1,2 +1,2 @@
1
- import{RadiantElement as $e,bindTo as le,customElement as pt,event as ht,onEvent as dt,onUpdated as mt,prop as ie}from"@ecopages/radiant";function oe(e){return e||void 0}import{RadiantElement as Se,bindTo as re,customElement as it,event as ot,onEvent as at,prop as ne}from"@ecopages/radiant";var pe,he,de,me,be,ve,ge,ye,_e,xe,ke,we,Ee,Ce;function et(e,t,a,s,D,k){var v,i,I,O,j,B,w,M=Symbol.metadata||Symbol.for("Symbol.metadata"),X=Object.defineProperty,G=Object.create,J=[G(null),G(null)],Q=t.length;function S(r,h,f){return function(n,o){h&&(o=n,n=e);for(var d=0;d<r.length;d++)o=r[d].apply(n,f?[o]:[]);return f?o:n}}function g(r,h,f,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(h+" must "+(f||"be")+" a function"+(n?"":" or undefined"));return r}function W(r,h,f,n,o,d,_,p,m,b,Z){function z(u){if(!Z(u))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(h[0]),$=h[3],K=!_,E=o===1,H=o===3,F=o===4,A=o===2;function V(u,x,ee){return function(T,te){return x&&(te=T,T=r),ee&&ee(T),c[u].call(T,te)}}if(!K){var c={},L=[],y=H?"get":F||E?"set":"value";if(m?(b||E?c={get:je(function(){return $(this)},n,"get"),set:function(u){h[4](this,u)}}:c[y]=$,b||je(c[y],n,A?"":y)):b||(c=Object.getOwnPropertyDescriptor(r,n)),!b&&!m){if((i=J[+p][n])&&(i^o)!==7)throw Error("Decorating two elements with the same name ("+c[y].name+") is not supported yet");J[+p][n]=o<3?1:o}}for(var l=r,R=U.length-1;R>=0;R-=f?2:1){var P=g(U[R],"A decorator","be",!0),N=f?U[R-1]:void 0,q={},C={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:v,addInitializer:function(u,x){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");g(x,"An initializer","be",!0),d.push(x)}.bind(null,q)};if(K)i=P.call(N,l,C),q.v=1,g(i,"class decorators","return")&&(l=i);else if(C.static=p,C.private=m,i=C.access={has:m?Z.bind():function(u){return n in u}},F||(i.get=m?A?function(u){return z(u),c.value}:V("get",0,z):function(u){return u[n]}),A||H||(i.set=m?V("set",0,z):function(u,x){u[n]=x}),l=P.call(N,E?{get:c.get,set:c.set}:c[y],C),q.v=1,E){if(typeof l=="object"&&l)(i=g(l.get,"accessor.get"))&&(c.get=i),(i=g(l.set,"accessor.set"))&&(c.set=i),(i=g(l.init,"accessor.init"))&&L.unshift(i);else if(l!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else g(l,(b?"field":"method")+" decorators","return")&&(b?L.unshift(l):c[y]=l)}return o<2&&_.push(S(L,p,1),S(d,p,0)),b||K||(m?E?_.splice(-1,0,V("get",p),V("set",p)):_.push(A?c[y]:g.call.bind(c[y])):X(r,n,c)),l}function Y(r){return X(r,M,{configurable:!0,enumerable:!0,value:v})}return k!==void 0&&(v=k[M]),v=G(v??null),j=[],B=function(r){r&&j.push(S(r))},w=function(r,h){for(var f=0;f<a.length;f++){var n=a[f],o=n[1],d=7&o;if((8&o)==r&&!d==h){var _=n[2],p=!!n[3],m=16&o;W(r?e:e.prototype,n,m,p?"#"+_:tt(_),d,d<2?[]:r?O=O||[]:I=I||[],j,!!r,p,h,r&&p?function(b){return nt(b)===e}:D)}}},w(8,0),w(0,0),w(8,1),w(0,1),B(I),B(O),i=j,Q||Y(e),{e:i,get c(){var r=[];return Q&&[Y(e=W(e,[t],s,e.name,5,r)),S(r,1)]}}}function tt(e){var t=rt(e,"string");return typeof t=="symbol"?t:t+""}function rt(e,t){if(typeof e!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var s=a.call(e,t||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function je(e,t,a){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:a?a+" "+t:t})}catch{}return e}function nt(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var ue="on",se,Ae=class extends Se{static{({e:[de,me,be,ve,ge,ye,_e,xe,ke,we,Ee,Ce,pe],c:[se,he]}=et(this,[it("rui-checkbox")],[[[ne({type:Boolean,reflect:!0,defaultValue:!1}),re({ref:"input",prop:"checked"})],0,"checked"],[[ne({type:Boolean,reflect:!0,defaultValue:!1}),re([{ref:"input",prop:"indeterminate"},{ref:"input",attr:"aria-checked",map:t=>t?"mixed":void 0}])],0,"indeterminate"],[[ne({type:Boolean,reflect:!0,defaultValue:!1}),re({ref:"input",prop:"disabled"})],0,"disabled"],[[ne({type:String,defaultValue:ue}),re({ref:"input",prop:"value"})],0,"value"],[[ne({type:String,defaultValue:""}),re({ref:"input",attr:"name",map:oe})],0,"name"],[ot({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[at({ref:"input",type:"change"}),2,"onInputChange"]],0,void 0,Se))}constructor(...t){super(...t),Ce(this)}checked=(pe(this),de(this));indeterminate=(me(this),be(this));disabled=(ve(this),ge(this));value=(ye(this),_e(this));name=(xe(this),ke(this));changeEvent=(we(this),Ee(this));onInputChange(t){let a=t.target;this.checked=a.checked,a.indeterminate=this.indeterminate,this.changeEvent.emit({checked:this.checked,indeterminate:this.indeterminate})}static{he()}};function Ve(e){return e?Ie(e.split(",")):[]}function ct(e){return e.join(",")}var Re={fromAttribute:e=>Ve(e),toAttribute:e=>e.length>0?ct(e):null,fromProperty:e=>Array.isArray(e)?Ie(e.map(String)):typeof e=="string"?Ve(e):[]},Te={type:Array,reflect:!0,transform:Re};function De(e){return Re.fromProperty?.(e)??[]}function Ie(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}var Oe,Be,Ge,ze,Ue,Ke,Le,qe,Me,Xe,Je,Qe,We,Ye;function ut(e,t,a,s,D,k){var v,i,I,O,j,B,w,M=Symbol.metadata||Symbol.for("Symbol.metadata"),X=Object.defineProperty,G=Object.create,J=[G(null),G(null)],Q=t.length;function S(r,h,f){return function(n,o){h&&(o=n,n=e);for(var d=0;d<r.length;d++)o=r[d].apply(n,f?[o]:[]);return f?o:n}}function g(r,h,f,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(h+" must "+(f||"be")+" a function"+(n?"":" or undefined"));return r}function W(r,h,f,n,o,d,_,p,m,b,Z){function z(u){if(!Z(u))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(h[0]),$=h[3],K=!_,E=o===1,H=o===3,F=o===4,A=o===2;function V(u,x,ee){return function(T,te){return x&&(te=T,T=r),ee&&ee(T),c[u].call(T,te)}}if(!K){var c={},L=[],y=H?"get":F||E?"set":"value";if(m?(b||E?c={get:Ze(function(){return $(this)},n,"get"),set:function(u){h[4](this,u)}}:c[y]=$,b||Ze(c[y],n,A?"":y)):b||(c=Object.getOwnPropertyDescriptor(r,n)),!b&&!m){if((i=J[+p][n])&&(i^o)!==7)throw Error("Decorating two elements with the same name ("+c[y].name+") is not supported yet");J[+p][n]=o<3?1:o}}for(var l=r,R=U.length-1;R>=0;R-=f?2:1){var P=g(U[R],"A decorator","be",!0),N=f?U[R-1]:void 0,q={},C={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:v,addInitializer:function(u,x){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");g(x,"An initializer","be",!0),d.push(x)}.bind(null,q)};if(K)i=P.call(N,l,C),q.v=1,g(i,"class decorators","return")&&(l=i);else if(C.static=p,C.private=m,i=C.access={has:m?Z.bind():function(u){return n in u}},F||(i.get=m?A?function(u){return z(u),c.value}:V("get",0,z):function(u){return u[n]}),A||H||(i.set=m?V("set",0,z):function(u,x){u[n]=x}),l=P.call(N,E?{get:c.get,set:c.set}:c[y],C),q.v=1,E){if(typeof l=="object"&&l)(i=g(l.get,"accessor.get"))&&(c.get=i),(i=g(l.set,"accessor.set"))&&(c.set=i),(i=g(l.init,"accessor.init"))&&L.unshift(i);else if(l!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else g(l,(b?"field":"method")+" decorators","return")&&(b?L.unshift(l):c[y]=l)}return o<2&&_.push(S(L,p,1),S(d,p,0)),b||K||(m?E?_.splice(-1,0,V("get",p),V("set",p)):_.push(A?c[y]:g.call.bind(c[y])):X(r,n,c)),l}function Y(r){return X(r,M,{configurable:!0,enumerable:!0,value:v})}return k!==void 0&&(v=k[M]),v=G(v??null),j=[],B=function(r){r&&j.push(S(r))},w=function(r,h){for(var f=0;f<a.length;f++){var n=a[f],o=n[1],d=7&o;if((8&o)==r&&!d==h){var _=n[2],p=!!n[3],m=16&o;W(r?e:e.prototype,n,m,p?"#"+_:st(_),d,d<2?[]:r?O=O||[]:I=I||[],j,!!r,p,h,r&&p?function(b){return ft(b)===e}:D)}}},w(8,0),w(0,0),w(8,1),w(0,1),B(I),B(O),i=j,Q||Y(e),{e:i,get c(){var r=[];return Q&&[Y(e=W(e,[t],s,e.name,5,r)),S(r,1)]}}}function st(e){var t=lt(e,"string");return typeof t=="symbol"?t:t+""}function lt(e,t){if(typeof e!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var s=a.call(e,t||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ze(e,t,a){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:a?a+" "+t:t})}catch{}return e}function ft(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var Fe,He=class extends $e{static{({e:[Ge,ze,Ue,Ke,Le,qe,Me,Xe,Je,Qe,We,Ye,Oe],c:[Fe,Be]}=ut(this,[pt("rui-checkbox-group")],[[ie({...Te,defaultValue:[]}),0,"value"],[ie({type:String,defaultValue:""}),0,"name"],[[ie({type:String,defaultValue:""}),le({selector:"[data-checkbox-group-root]",attr:"aria-label",map:oe})],0,"label"],[[ie({type:Boolean,reflect:!0,defaultValue:!1}),le({selector:"[data-checkbox-group-root]",attr:"aria-disabled",map:t=>t?"true":void 0})],0,"disabled"],[[ie({type:String,reflect:!0,defaultValue:"vertical"}),le({selector:"[data-checkbox-group-root]",attr:"data-orientation"})],0,"orientation"],[ht({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[mt(["value","name","disabled"]),2,"syncCheckboxes"],[dt({selector:"rui-checkbox",type:"rui-change"}),2,"onCheckboxChange"]],0,void 0,$e))}constructor(...t){super(...t),Ye(this)}value=(Oe(this),Ge(this));name=(ze(this),Ue(this));label=(Ke(this),Le(this));disabled=(qe(this),Me(this));orientation=(Xe(this),Je(this));changeEvent=(Qe(this),We(this));onConnected(){this.syncCheckboxes()}syncCheckboxes(){let t=new Set(this.value),a=this.name||this.getAttribute("name")||"";for(let s of this.getCheckboxes())s.checked=t.has(s.value),s.disabled=this.disabled||s.hasAttribute("data-disabled"),a&&(s.name=a)}onCheckboxChange(t){t.stopImmediatePropagation();let a=this.getCheckboxes().filter(s=>s.checked).map(s=>s.value);this.value=a,this.changeEvent.emit({value:this.value})}getCheckboxes(){return Array.from(this.querySelectorAll("rui-checkbox")).filter(t=>t instanceof se)}static{Be()}};import{jsx as ce}from"@ecopages/jsx/jsx-runtime";function Pe(...e){return e.filter(Boolean).join(" ")}import{jsx as ae,jsxs as bt}from"@ecopages/jsx/jsx-runtime";function fe({children:e,checked:t,disabled:a,indeterminate:s,name:D,value:k=ue,...v}){return ae("rui-checkbox",{...v,checked:t,disabled:a,indeterminate:s,name:D,value:k,"data-disabled":a?"":void 0,children:bt("label",{class:"rui-checkbox",children:[ae("input",{type:"checkbox","data-ref":"input","data-rui-control":!0,"data-rui-control-type":"boolean",class:"rui-checkbox__input",checked:t,disabled:a,value:k,name:D||void 0,"aria-checked":s?"mixed":void 0}),ae("span",{class:"rui-checkbox__control","aria-hidden":"true"}),ae("span",{class:"rui-checkbox__label",children:e})]})})}function Ne({children:e,class:t,orientation:a="vertical",...s}){return ce("div",{...s,"data-checkbox-group-root":!0,"data-orientation":a,class:Pe("rui-checkbox-group",t),role:"group","data-rui-control":!0,"data-rui-control-type":"text",children:e})}function vt({options:e,children:t,value:a,orientation:s="vertical",...D}){let k=De(a),v=new Set(k);return ce("rui-checkbox-group",{...D,value:k,orientation:s,children:e==null?t:ce(Ne,{orientation:s,children:e.map(i=>ce(fe,{value:i.value,disabled:i.disabled,checked:v.has(i.value),children:i.label}))})})}export{vt as RuiCheckboxGroup,Ne as RuiCheckboxGroupControl,Fe as RuiCheckboxGroupElement};
1
+ import{RadiantElement as $e,bindTo as le,customElement as pt,event as ht,onEvent as dt,onUpdated as mt,prop as ie}from"@ecopages/radiant";function oe(e){return e||void 0}import{RadiantElement as Se,bindTo as re,customElement as it,event as ot,onEvent as at,prop as ne}from"@ecopages/radiant";var pe,he,de,me,be,ve,ge,ye,_e,xe,ke,we,Ee,Ce;function et(e,t,a,s,D,k){var v,i,I,O,j,B,w,M=Symbol.metadata||Symbol.for("Symbol.metadata"),X=Object.defineProperty,G=Object.create,J=[G(null),G(null)],Q=t.length;function S(r,h,f){return function(n,o){h&&(o=n,n=e);for(var d=0;d<r.length;d++)o=r[d].apply(n,f?[o]:[]);return f?o:n}}function g(r,h,f,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(h+" must "+(f||"be")+" a function"+(n?"":" or undefined"));return r}function W(r,h,f,n,o,d,_,p,m,b,Z){function z(u){if(!Z(u))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(h[0]),$=h[3],K=!_,E=o===1,H=o===3,F=o===4,A=o===2;function V(u,x,ee){return function(T,te){return x&&(te=T,T=r),ee&&ee(T),c[u].call(T,te)}}if(!K){var c={},L=[],y=H?"get":F||E?"set":"value";if(m?(b||E?c={get:je(function(){return $(this)},n,"get"),set:function(u){h[4](this,u)}}:c[y]=$,b||je(c[y],n,A?"":y)):b||(c=Object.getOwnPropertyDescriptor(r,n)),!b&&!m){if((i=J[+p][n])&&(i^o)!==7)throw Error("Decorating two elements with the same name ("+c[y].name+") is not supported yet");J[+p][n]=o<3?1:o}}for(var l=r,R=U.length-1;R>=0;R-=f?2:1){var P=g(U[R],"A decorator","be",!0),N=f?U[R-1]:void 0,q={},C={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:v,addInitializer:function(u,x){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");g(x,"An initializer","be",!0),d.push(x)}.bind(null,q)};if(K)i=P.call(N,l,C),q.v=1,g(i,"class decorators","return")&&(l=i);else if(C.static=p,C.private=m,i=C.access={has:m?Z.bind():function(u){return n in u}},F||(i.get=m?A?function(u){return z(u),c.value}:V("get",0,z):function(u){return u[n]}),A||H||(i.set=m?V("set",0,z):function(u,x){u[n]=x}),l=P.call(N,E?{get:c.get,set:c.set}:c[y],C),q.v=1,E){if(typeof l=="object"&&l)(i=g(l.get,"accessor.get"))&&(c.get=i),(i=g(l.set,"accessor.set"))&&(c.set=i),(i=g(l.init,"accessor.init"))&&L.unshift(i);else if(l!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else g(l,(b?"field":"method")+" decorators","return")&&(b?L.unshift(l):c[y]=l)}return o<2&&_.push(S(L,p,1),S(d,p,0)),b||K||(m?E?_.splice(-1,0,V("get",p),V("set",p)):_.push(A?c[y]:g.call.bind(c[y])):X(r,n,c)),l}function Y(r){return X(r,M,{configurable:!0,enumerable:!0,value:v})}return k!==void 0&&(v=k[M]),v=G(v??null),j=[],B=function(r){r&&j.push(S(r))},w=function(r,h){for(var f=0;f<a.length;f++){var n=a[f],o=n[1],d=7&o;if((8&o)==r&&!d==h){var _=n[2],p=!!n[3],m=16&o;W(r?e:e.prototype,n,m,p?"#"+_:tt(_),d,d<2?[]:r?O=O||[]:I=I||[],j,!!r,p,h,r&&p?function(b){return nt(b)===e}:D)}}},w(8,0),w(0,0),w(8,1),w(0,1),B(I),B(O),i=j,Q||Y(e),{e:i,get c(){var r=[];return Q&&[Y(e=W(e,[t],s,e.name,5,r)),S(r,1)]}}}function tt(e){var t=rt(e,"string");return typeof t=="symbol"?t:t+""}function rt(e,t){if(typeof e!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var s=a.call(e,t||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function je(e,t,a){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:a?a+" "+t:t})}catch{}return e}function nt(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var se="on",ae,Ae=class extends Se{static{({e:[de,me,be,ve,ge,ye,_e,xe,ke,we,Ee,Ce,pe],c:[ae,he]}=et(this,[it("rui-checkbox")],[[[ne({type:Boolean,reflect:!0,defaultValue:!1}),re({ref:"input",prop:"checked"})],0,"checked"],[[ne({type:Boolean,reflect:!0,defaultValue:!1}),re([{ref:"input",prop:"indeterminate"},{ref:"input",attr:"aria-checked",map:t=>t?"mixed":void 0}])],0,"indeterminate"],[[ne({type:Boolean,reflect:!0,defaultValue:!1}),re({ref:"input",prop:"disabled"})],0,"disabled"],[[ne({type:String,defaultValue:se}),re({ref:"input",prop:"value"})],0,"value"],[[ne({type:String,defaultValue:""}),re({ref:"input",attr:"name",map:oe})],0,"name"],[ot({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[at({ref:"input",type:"change"}),2,"onInputChange"]],0,void 0,Se))}constructor(...t){super(...t),Ce(this)}checked=(pe(this),de(this));indeterminate=(me(this),be(this));disabled=(ve(this),ge(this));value=(ye(this),_e(this));name=(xe(this),ke(this));changeEvent=(we(this),Ee(this));onInputChange(t){let a=t.target;this.checked=a.checked,a.indeterminate=this.indeterminate,this.changeEvent.emit({checked:this.checked,indeterminate:this.indeterminate})}static{he()}};function Ve(e){return e?Ie(e.split(",")):[]}function ct(e){return e.join(",")}var Re={fromAttribute:e=>Ve(e),toAttribute:e=>e.length>0?ct(e):null,fromProperty:e=>Array.isArray(e)?Ie(e.map(String)):typeof e=="string"?Ve(e):[]},Te={type:Array,reflect:!0,transform:Re};function De(e){return Re.fromProperty?.(e)??[]}function Ie(e){return[...new Set(e.map(t=>t.trim()).filter(Boolean))]}var Oe,Be,Ge,ze,Ue,Ke,Le,qe,Me,Xe,Je,Qe,We,Ye;function ut(e,t,a,s,D,k){var v,i,I,O,j,B,w,M=Symbol.metadata||Symbol.for("Symbol.metadata"),X=Object.defineProperty,G=Object.create,J=[G(null),G(null)],Q=t.length;function S(r,h,f){return function(n,o){h&&(o=n,n=e);for(var d=0;d<r.length;d++)o=r[d].apply(n,f?[o]:[]);return f?o:n}}function g(r,h,f,n){if(typeof r!="function"&&(n||r!==void 0))throw new TypeError(h+" must "+(f||"be")+" a function"+(n?"":" or undefined"));return r}function W(r,h,f,n,o,d,_,p,m,b,Z){function z(u){if(!Z(u))throw new TypeError("Attempted to access private element on non-instance")}var U=[].concat(h[0]),$=h[3],K=!_,E=o===1,H=o===3,F=o===4,A=o===2;function V(u,x,ee){return function(T,te){return x&&(te=T,T=r),ee&&ee(T),c[u].call(T,te)}}if(!K){var c={},L=[],y=H?"get":F||E?"set":"value";if(m?(b||E?c={get:Ze(function(){return $(this)},n,"get"),set:function(u){h[4](this,u)}}:c[y]=$,b||Ze(c[y],n,A?"":y)):b||(c=Object.getOwnPropertyDescriptor(r,n)),!b&&!m){if((i=J[+p][n])&&(i^o)!==7)throw Error("Decorating two elements with the same name ("+c[y].name+") is not supported yet");J[+p][n]=o<3?1:o}}for(var l=r,R=U.length-1;R>=0;R-=f?2:1){var P=g(U[R],"A decorator","be",!0),N=f?U[R-1]:void 0,q={},C={kind:["field","accessor","method","getter","setter","class"][o],name:n,metadata:v,addInitializer:function(u,x){if(u.v)throw new TypeError("attempted to call addInitializer after decoration was finished");g(x,"An initializer","be",!0),d.push(x)}.bind(null,q)};if(K)i=P.call(N,l,C),q.v=1,g(i,"class decorators","return")&&(l=i);else if(C.static=p,C.private=m,i=C.access={has:m?Z.bind():function(u){return n in u}},F||(i.get=m?A?function(u){return z(u),c.value}:V("get",0,z):function(u){return u[n]}),A||H||(i.set=m?V("set",0,z):function(u,x){u[n]=x}),l=P.call(N,E?{get:c.get,set:c.set}:c[y],C),q.v=1,E){if(typeof l=="object"&&l)(i=g(l.get,"accessor.get"))&&(c.get=i),(i=g(l.set,"accessor.set"))&&(c.set=i),(i=g(l.init,"accessor.init"))&&L.unshift(i);else if(l!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else g(l,(b?"field":"method")+" decorators","return")&&(b?L.unshift(l):c[y]=l)}return o<2&&_.push(S(L,p,1),S(d,p,0)),b||K||(m?E?_.splice(-1,0,V("get",p),V("set",p)):_.push(A?c[y]:g.call.bind(c[y])):X(r,n,c)),l}function Y(r){return X(r,M,{configurable:!0,enumerable:!0,value:v})}return k!==void 0&&(v=k[M]),v=G(v??null),j=[],B=function(r){r&&j.push(S(r))},w=function(r,h){for(var f=0;f<a.length;f++){var n=a[f],o=n[1],d=7&o;if((8&o)==r&&!d==h){var _=n[2],p=!!n[3],m=16&o;W(r?e:e.prototype,n,m,p?"#"+_:st(_),d,d<2?[]:r?O=O||[]:I=I||[],j,!!r,p,h,r&&p?function(b){return ft(b)===e}:D)}}},w(8,0),w(0,0),w(8,1),w(0,1),B(I),B(O),i=j,Q||Y(e),{e:i,get c(){var r=[];return Q&&[Y(e=W(e,[t],s,e.name,5,r)),S(r,1)]}}}function st(e){var t=lt(e,"string");return typeof t=="symbol"?t:t+""}function lt(e,t){if(typeof e!="object"||!e)return e;var a=e[Symbol.toPrimitive];if(a!==void 0){var s=a.call(e,t||"default");if(typeof s!="object")return s;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Ze(e,t,a){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:a?a+" "+t:t})}catch{}return e}function ft(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var Fe,He=class extends $e{static{({e:[Ge,ze,Ue,Ke,Le,qe,Me,Xe,Je,Qe,We,Ye,Oe],c:[Fe,Be]}=ut(this,[pt("rui-checkbox-group")],[[ie({...Te,defaultValue:[]}),0,"value"],[ie({type:String,defaultValue:""}),0,"name"],[[ie({type:String,defaultValue:""}),le({selector:"[data-checkbox-group-root]",attr:"aria-label",map:oe})],0,"label"],[[ie({type:Boolean,reflect:!0,defaultValue:!1}),le({selector:"[data-checkbox-group-root]",attr:"aria-disabled",map:t=>t?"true":void 0})],0,"disabled"],[[ie({type:String,reflect:!0,defaultValue:"vertical"}),le({selector:"[data-checkbox-group-root]",attr:"data-orientation"})],0,"orientation"],[ht({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[mt(["value","name","disabled"]),2,"syncCheckboxes"],[dt({selector:"rui-checkbox",type:"rui-change"}),2,"onCheckboxChange"]],0,void 0,$e))}constructor(...t){super(...t),Ye(this)}value=(Oe(this),Ge(this));name=(ze(this),Ue(this));label=(Ke(this),Le(this));disabled=(qe(this),Me(this));orientation=(Xe(this),Je(this));changeEvent=(Qe(this),We(this));onConnected(){this.syncCheckboxes()}syncCheckboxes(){let t=new Set(this.value),a=this.name||this.getAttribute("name")||"";for(let s of this.getCheckboxes())s.checked=t.has(s.value),s.disabled=this.disabled||s.hasAttribute("data-disabled"),a&&(s.name=a)}onCheckboxChange(t){t.stopImmediatePropagation();let a=this.getCheckboxes().filter(s=>s.checked).map(s=>s.value);this.value=a,this.changeEvent.emit({value:this.value})}getCheckboxes(){return Array.from(this.querySelectorAll("rui-checkbox")).filter(t=>t instanceof ae)}static{Be()}};import{jsx as ue}from"@ecopages/jsx/jsx-runtime";function Pe(...e){return e.filter(Boolean).join(" ")}import{jsx as ce,jsxs as bt}from"@ecopages/jsx/jsx-runtime";function fe({children:e,checked:t,disabled:a,indeterminate:s,name:D,value:k=se,...v}){return ce("rui-checkbox",{...v,checked:t,disabled:a,indeterminate:s,name:D,value:k,"data-disabled":a?"":void 0,children:bt("label",{class:"rui-checkbox",children:[ce("input",{type:"checkbox","data-ref":"input","data-rui-control":!0,"data-rui-control-type":"boolean",class:"rui-checkbox__input",checked:t,disabled:a,value:k,name:D||void 0,"aria-checked":s?"mixed":void 0}),ce("span",{class:"rui-checkbox__control","aria-hidden":"true"}),ce("span",{class:"rui-checkbox__label",children:e})]})})}function Ne({children:e,class:t,orientation:a="vertical",...s}){return ue("div",{...s,"data-checkbox-group-root":!0,"data-orientation":a,class:Pe("rui-checkbox-group",t),role:"group","data-rui-control":!0,"data-rui-control-type":"text",children:e})}function vt({options:e,children:t,value:a,orientation:s="vertical",...D}){let k=De(a),v=new Set(k);return ue("rui-checkbox-group",{...D,value:k,orientation:s,children:e==null?t:ue(Ne,{orientation:s,children:e.map(i=>ue(fe,{value:i.value,disabled:i.disabled,checked:v.has(i.value),children:i.label}))})})}export{vt as RuiCheckboxGroup,Ne as RuiCheckboxGroupControl,Fe as RuiCheckboxGroupElement};
2
2
  //# sourceMappingURL=index.js.map
@@ -41,7 +41,7 @@ rui-combobox {
41
41
  --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
42
42
  }
43
43
  .rui-combobox__input {
44
- min-width: 6rem;
44
+ min-width: 0px;
45
45
  flex: 1;
46
46
  border-style: var(--tw-border-style);
47
47
  border-width: 0px;
@@ -51,7 +51,7 @@ rui-combobox {
51
51
  outline-style: none;
52
52
  padding-inline: var(--space-control-x);
53
53
  padding-block: var(--space-control-y);
54
- font-size: var(--text-control, 0.875rem);
54
+ font-size: var(--text-control-input);
55
55
  }
56
56
  .rui-combobox__input:disabled {
57
57
  cursor: not-allowed;