@ecopages/radiant-ui 0.1.0-beta.3 → 0.1.0-beta.6

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 (185) hide show
  1. package/dist/components/ui/autocomplete/autocomplete.css +135 -0
  2. package/dist/components/ui/autocomplete/autocomplete.d.ts +21 -0
  3. package/dist/components/ui/autocomplete/autocomplete.script.d.ts +42 -0
  4. package/dist/components/ui/autocomplete/index.d.ts +2 -0
  5. package/dist/components/ui/autocomplete/index.js +2 -0
  6. package/dist/components/ui/autocomplete/index.js.map +7 -0
  7. package/dist/components/ui/avatar/avatar.css +58 -0
  8. package/dist/components/ui/avatar/avatar.d.ts +13 -0
  9. package/dist/components/ui/avatar/index.d.ts +1 -0
  10. package/dist/components/ui/avatar/index.js +2 -0
  11. package/dist/components/ui/avatar/index.js.map +7 -0
  12. package/dist/components/ui/button-group/button-group.css +16 -0
  13. package/dist/components/ui/button-group/button-group.d.ts +10 -0
  14. package/dist/components/ui/button-group/index.d.ts +1 -0
  15. package/dist/components/ui/button-group/index.js +2 -0
  16. package/dist/components/ui/button-group/index.js.map +7 -0
  17. package/dist/components/ui/calendar/calendar.css +318 -0
  18. package/dist/components/ui/calendar/calendar.d.ts +5 -0
  19. package/dist/components/ui/calendar/calendar.script.d.ts +89 -0
  20. package/dist/components/ui/calendar/index.d.ts +2 -0
  21. package/dist/components/ui/calendar/index.js +2 -0
  22. package/dist/components/ui/calendar/index.js.map +7 -0
  23. package/dist/components/ui/chip/chip.css +47 -0
  24. package/dist/components/ui/chip/chip.d.ts +11 -0
  25. package/dist/components/ui/chip/index.d.ts +1 -0
  26. package/dist/components/ui/chip/index.js +2 -0
  27. package/dist/components/ui/chip/index.js.map +7 -0
  28. package/dist/components/ui/chip-list/chip-list.css +15 -0
  29. package/dist/components/ui/chip-list/chip-list.d.ts +10 -0
  30. package/dist/components/ui/chip-list/index.d.ts +1 -0
  31. package/dist/components/ui/chip-list/index.js +2 -0
  32. package/dist/components/ui/chip-list/index.js.map +7 -0
  33. package/dist/components/ui/combobox/combobox.css +42 -80
  34. package/dist/components/ui/combobox/combobox.d.ts +12 -20
  35. package/dist/components/ui/combobox/combobox.script.d.ts +15 -14
  36. package/dist/components/ui/combobox/index.d.ts +2 -1
  37. package/dist/components/ui/combobox/index.js +1 -1
  38. package/dist/components/ui/combobox/index.js.map +4 -4
  39. package/dist/components/ui/date-field/date-field.css +184 -0
  40. package/dist/components/ui/date-field/date-field.d.ts +10 -0
  41. package/dist/components/ui/date-field/date-field.script.d.ts +108 -0
  42. package/dist/components/ui/date-field/index.d.ts +2 -0
  43. package/dist/components/ui/date-field/index.js +2 -0
  44. package/dist/components/ui/date-field/index.js.map +7 -0
  45. package/dist/components/ui/date-range-picker/date-range-picker.css +194 -0
  46. package/dist/components/ui/date-range-picker/date-range-picker.d.ts +10 -0
  47. package/dist/components/ui/date-range-picker/date-range-picker.script.d.ts +99 -0
  48. package/dist/components/ui/date-range-picker/index.d.ts +2 -0
  49. package/dist/components/ui/date-range-picker/index.js +2 -0
  50. package/dist/components/ui/date-range-picker/index.js.map +7 -0
  51. package/dist/components/ui/dialog/dialog.css +1 -1
  52. package/dist/components/ui/feed/feed.css +169 -5
  53. package/dist/components/ui/feed/feed.d.ts +54 -11
  54. package/dist/components/ui/feed/index.d.ts +1 -2
  55. package/dist/components/ui/feed/index.js +1 -1
  56. package/dist/components/ui/feed/index.js.map +4 -4
  57. package/dist/components/ui/field/index.js +1 -1
  58. package/dist/components/ui/field/index.js.map +3 -3
  59. package/dist/components/ui/form/form-field.test.d.ts +1 -0
  60. package/dist/components/ui/form/index.js +1 -1
  61. package/dist/components/ui/form/index.js.map +3 -3
  62. package/dist/components/ui/heading/heading.css +107 -0
  63. package/dist/components/ui/heading/heading.d.ts +30 -0
  64. package/dist/components/ui/heading/index.d.ts +1 -0
  65. package/dist/components/ui/heading/index.js +2 -0
  66. package/dist/components/ui/heading/index.js.map +7 -0
  67. package/dist/components/ui/headline/headline.css +43 -0
  68. package/dist/components/ui/headline/headline.d.ts +16 -0
  69. package/dist/components/ui/headline/index.d.ts +1 -0
  70. package/dist/components/ui/headline/index.js +2 -0
  71. package/dist/components/ui/headline/index.js.map +7 -0
  72. package/dist/components/ui/input/index.js +1 -1
  73. package/dist/components/ui/input/index.js.map +4 -4
  74. package/dist/components/ui/input/input.d.ts +8 -1
  75. package/dist/components/ui/label/index.js +1 -1
  76. package/dist/components/ui/label/index.js.map +2 -2
  77. package/dist/components/ui/listbox/index.d.ts +1 -1
  78. package/dist/components/ui/listbox/index.js +1 -1
  79. package/dist/components/ui/listbox/index.js.map +4 -4
  80. package/dist/components/ui/listbox/listbox.css +34 -10
  81. package/dist/components/ui/listbox/listbox.d.ts +12 -4
  82. package/dist/components/ui/listbox/listbox.script.d.ts +12 -0
  83. package/dist/components/ui/menu-button/index.js +1 -1
  84. package/dist/components/ui/menu-button/index.js.map +4 -4
  85. package/dist/components/ui/menu-button/menu-button.css +24 -8
  86. package/dist/components/ui/menu-button/menu-button.script.d.ts +3 -4
  87. package/dist/components/ui/menubar/index.js +1 -1
  88. package/dist/components/ui/menubar/index.js.map +4 -4
  89. package/dist/components/ui/menubar/menubar.css +40 -22
  90. package/dist/components/ui/menubar/menubar.script.d.ts +6 -1
  91. package/dist/components/ui/number-field/index.d.ts +2 -0
  92. package/dist/components/ui/number-field/index.js +2 -0
  93. package/dist/components/ui/number-field/index.js.map +7 -0
  94. package/dist/components/ui/number-field/number-field.css +185 -0
  95. package/dist/components/ui/number-field/number-field.d.ts +43 -0
  96. package/dist/components/ui/number-field/number-field.script.d.ts +104 -0
  97. package/dist/components/ui/popover/index.d.ts +4 -0
  98. package/dist/components/ui/popover/index.js +2 -0
  99. package/dist/components/ui/popover/index.js.map +7 -0
  100. package/dist/components/ui/popover/popover.css +132 -0
  101. package/dist/components/ui/popover/popover.d.ts +15 -0
  102. package/dist/components/ui/popover/popover.script.d.ts +85 -0
  103. package/dist/components/ui/select/index.d.ts +3 -0
  104. package/dist/components/ui/select/index.js +2 -0
  105. package/dist/components/ui/select/index.js.map +7 -0
  106. package/dist/components/ui/select/select.css +216 -0
  107. package/dist/components/ui/select/select.d.ts +54 -0
  108. package/dist/components/ui/select/select.script.d.ts +106 -0
  109. package/dist/components/ui/shared/collection-navigation.d.ts +8 -0
  110. package/dist/components/ui/shared/collection-navigation.test.d.ts +1 -0
  111. package/dist/components/ui/shared/control-toggle.css +132 -0
  112. package/dist/components/ui/shared/field-label.d.ts +9 -0
  113. package/dist/components/ui/shared/floating-position.d.ts +13 -2
  114. package/dist/components/ui/shared/listbox-popover-behavior.d.ts +47 -0
  115. package/dist/components/ui/shared/listbox-popover-behavior.test.d.ts +1 -0
  116. package/dist/components/ui/shared/multi-value.d.ts +4 -0
  117. package/dist/components/ui/shared/popover-controller.d.ts +35 -0
  118. package/dist/components/ui/shared/popover-controller.test.d.ts +1 -0
  119. package/dist/components/ui/shared/popover.css +123 -0
  120. package/dist/components/ui/shared/portal.d.ts +7 -0
  121. package/dist/components/ui/shared/portal.test.d.ts +1 -0
  122. package/dist/components/ui/sidebar/index.js +1 -1
  123. package/dist/components/ui/sidebar/index.js.map +3 -3
  124. package/dist/components/ui/slider/index.js +1 -1
  125. package/dist/components/ui/slider/index.js.map +3 -3
  126. package/dist/components/ui/slider/slider.script.d.ts +5 -12
  127. package/dist/components/ui/tag-group/index.d.ts +2 -0
  128. package/dist/components/ui/tag-group/index.js +2 -0
  129. package/dist/components/ui/tag-group/index.js.map +7 -0
  130. package/dist/components/ui/tag-group/tag-group.css +184 -0
  131. package/dist/components/ui/tag-group/tag-group.d.ts +28 -0
  132. package/dist/components/ui/tag-group/tag-group.script.d.ts +65 -0
  133. package/dist/components/ui/textarea/index.js +1 -1
  134. package/dist/components/ui/textarea/index.js.map +2 -2
  135. package/dist/components/ui/toc/index.js +1 -1
  136. package/dist/components/ui/toc/index.js.map +3 -3
  137. package/dist/components/ui/toc/toc.css +1 -1
  138. package/dist/components/ui/toc/toc.ssr.test.d.ts +1 -0
  139. package/dist/components/ui/toc/toc.test.d.ts +1 -0
  140. package/dist/components/ui/tooltip/index.js +1 -1
  141. package/dist/components/ui/tooltip/index.js.map +3 -3
  142. package/dist/index.d.ts +14 -1
  143. package/dist/index.js +1 -1
  144. package/dist/index.js.map +4 -4
  145. package/dist/lib/icons/calendar.d.ts +3 -0
  146. package/dist/lib/icons/chevron-down.d.ts +3 -0
  147. package/dist/lib/icons/index.d.ts +3 -0
  148. package/dist/lib/icons/types.d.ts +4 -0
  149. package/dist/lib/intl/locale.d.ts +3 -0
  150. package/dist/lib/intl-date/calendar.d.ts +25 -0
  151. package/dist/lib/intl-date/formatters.d.ts +13 -0
  152. package/dist/lib/intl-date/index.d.ts +12 -0
  153. package/dist/lib/intl-date/iso.d.ts +6 -0
  154. package/dist/lib/intl-date/months.d.ts +12 -0
  155. package/dist/lib/intl-date/parts.d.ts +15 -0
  156. package/dist/lib/intl-date/parts.test.d.ts +1 -0
  157. package/dist/lib/intl-date/segments.d.ts +32 -0
  158. package/dist/lib/intl-date/segments.test.d.ts +1 -0
  159. package/dist/lib/intl-date/selection.d.ts +39 -0
  160. package/dist/lib/intl-date/selection.test.d.ts +1 -0
  161. package/dist/lib/intl-date/types.d.ts +17 -0
  162. package/dist/lib/intl-number/format.d.ts +9 -0
  163. package/dist/lib/intl-number/index.d.ts +2 -0
  164. package/dist/lib/intl-number/range.d.ts +3 -0
  165. package/dist/lib/intrinsic.d.ts +13 -0
  166. package/dist/lib/mask/date-mask.d.ts +29 -0
  167. package/dist/lib/mask/date-mask.test.d.ts +1 -0
  168. package/dist/lib/mask/index.d.ts +4 -0
  169. package/dist/lib/mask/input-mask.d.ts +52 -0
  170. package/dist/lib/mask/input-mask.test.d.ts +1 -0
  171. package/dist/lib/text-filter.d.ts +7 -0
  172. package/dist/lib/text-filter.test.d.ts +1 -0
  173. package/dist/styles/radiant-ui-core.css +131 -1
  174. package/dist/styles/radiant-ui.css +142 -1
  175. package/dist/styles/styles.css +4504 -2395
  176. package/dist/styles/tailwind.css +142 -1
  177. package/dist/styles/tokens/typography/default.css +8 -0
  178. package/package.json +106 -15
  179. package/dist/components/ui/feed/feed.script.d.ts +0 -22
  180. package/dist/components/ui/spinbutton/index.d.ts +0 -2
  181. package/dist/components/ui/spinbutton/index.js +0 -2
  182. package/dist/components/ui/spinbutton/index.js.map +0 -7
  183. package/dist/components/ui/spinbutton/spinbutton.css +0 -69
  184. package/dist/components/ui/spinbutton/spinbutton.d.ts +0 -5
  185. package/dist/components/ui/spinbutton/spinbutton.script.d.ts +0 -64
@@ -0,0 +1,318 @@
1
+ /*! tailwindcss v4.3.3 | MIT License | https://tailwindcss.com */
2
+ @layer properties;
3
+ rui-calendar {
4
+ display: inline-flex;
5
+ }
6
+ @layer components {
7
+ .rui-calendar {
8
+ border-radius: var(--radius-container, var(--radius-container));
9
+ border-style: var(--tw-border-style);
10
+ border-width: 1px;
11
+ border-color: var(--color-border, var(--border));
12
+ background-color: var(--color-background, var(--background));
13
+ padding: var(--spacing-3, var(--space-3));
14
+ font-size: var(--text-sm, var(--text-sm));
15
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
16
+ --tw-shadow: var(--shadow-overlay);
17
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
18
+ }
19
+ .rui-calendar--multi {
20
+ width: auto;
21
+ max-width: 100%;
22
+ }
23
+ .rui-calendar__months {
24
+ display: flex;
25
+ flex-direction: column;
26
+ gap: var(--spacing-4, var(--space-4));
27
+ @media (width >= 40rem) {
28
+ flex-direction: row;
29
+ }
30
+ @media (width >= 40rem) {
31
+ gap: var(--spacing-3, var(--space-3));
32
+ }
33
+ }
34
+ .rui-calendar__month-panel {
35
+ width: calc(var(--spacing, 0.25rem) * 64);
36
+ flex-shrink: 0;
37
+ }
38
+ .rui-calendar__header {
39
+ margin-bottom: var(--spacing-2, var(--space-2));
40
+ display: flex;
41
+ align-items: center;
42
+ justify-content: space-between;
43
+ gap: var(--spacing-2, var(--space-2));
44
+ }
45
+ .rui-calendar__nav-spacer {
46
+ display: inline-flex;
47
+ height: var(--spacing-8, var(--space-8));
48
+ width: var(--spacing-8, var(--space-8));
49
+ flex-shrink: 0;
50
+ }
51
+ .rui-calendar__month {
52
+ flex: 1;
53
+ text-align: center;
54
+ --tw-font-weight: var(--font-weight-medium, var(--weight-medium));
55
+ font-weight: var(--font-weight-medium, var(--weight-medium));
56
+ color: var(--color-on-background, var(--on-background));
57
+ }
58
+ .rui-calendar__nav {
59
+ display: inline-flex;
60
+ height: var(--spacing-8, var(--space-8));
61
+ width: var(--spacing-8, var(--space-8));
62
+ align-items: center;
63
+ justify-content: center;
64
+ border-radius: var(--radius-control, var(--radius-control));
65
+ border-style: var(--tw-border-style);
66
+ border-width: 0px;
67
+ background-color: transparent;
68
+ color: var(--color-on-surface, var(--on-surface));
69
+ cursor: pointer;
70
+ }
71
+ .rui-calendar__nav:hover:not(:disabled) {
72
+ background-color: var(--color-surface, var(--surface));
73
+ }
74
+ .rui-calendar__nav:focus-visible {
75
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
76
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
77
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
78
+ --tw-outline-style: none;
79
+ outline-style: none;
80
+ }
81
+ .rui-calendar__nav:disabled {
82
+ cursor: not-allowed;
83
+ opacity: var(--opacity-muted, var(--opacity-muted));
84
+ }
85
+ .rui-calendar__weekdays {
86
+ margin-bottom: var(--spacing-1, var(--space-1));
87
+ display: grid;
88
+ grid-template-columns: repeat(7, minmax(0, 1fr));
89
+ gap: 0px;
90
+ text-align: center;
91
+ }
92
+ .rui-calendar__weekday {
93
+ padding-block: var(--spacing-1, var(--space-1));
94
+ font-size: var(--text-xs, var(--text-xs));
95
+ line-height: var(--tw-leading, var(--text-xs--line-height, calc(1 / 0.75)));
96
+ --tw-font-weight: var(--font-weight-medium, var(--weight-medium));
97
+ font-weight: var(--font-weight-medium, var(--weight-medium));
98
+ color: var(--color-on-surface, var(--on-surface));
99
+ }
100
+ .rui-calendar__grid {
101
+ display: flex;
102
+ flex-direction: column;
103
+ gap: 0px;
104
+ }
105
+ .rui-calendar__week {
106
+ display: grid;
107
+ grid-template-columns: repeat(7, minmax(0, 1fr));
108
+ gap: 0px;
109
+ }
110
+ .rui-calendar__day {
111
+ position: relative;
112
+ display: inline-flex;
113
+ height: calc(var(--spacing, 0.25rem) * 9);
114
+ width: 100%;
115
+ align-items: center;
116
+ justify-content: center;
117
+ border-style: var(--tw-border-style);
118
+ border-width: 0px;
119
+ background-color: transparent;
120
+ color: var(--color-on-background, var(--on-background));
121
+ cursor: pointer;
122
+ border-radius: var(--radius-control, var(--radius-control));
123
+ }
124
+ .rui-calendar__day:hover:not(:disabled):not([aria-selected='true']) {
125
+ background-color: var(--color-surface-container-low, var(--surface-container-low));
126
+ }
127
+ .rui-calendar__day[data-outside='true']:hover:not(:disabled):not([aria-selected='true']) {
128
+ color: var(--color-on-background, var(--on-background));
129
+ opacity: 100%;
130
+ }
131
+ .rui-calendar__day:focus-visible {
132
+ z-index: 10;
133
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
134
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
135
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
136
+ --tw-outline-style: none;
137
+ outline-style: none;
138
+ }
139
+ .rui-calendar__day[aria-selected='true']:not([data-range-middle='true']) {
140
+ border-radius: var(--radius-control, var(--radius-control));
141
+ background-color: var(--color-primary, var(--primary));
142
+ color: var(--color-on-primary, var(--on-primary));
143
+ }
144
+ .rui-calendar__day[aria-selected='true']:not([data-range-middle='true']):hover:not(:disabled) {
145
+ background-color: var(--color-primary-container, var(--primary-container));
146
+ color: var(--color-on-primary-container, var(--on-primary-container));
147
+ }
148
+ .rui-calendar__day[data-range-middle='true'] {
149
+ border-radius: var(--radius-none, var(--border-radius-none));
150
+ background-color: var(--color-primary, var(--primary));
151
+ @supports (color: color-mix(in lab, red, red)) {
152
+ background-color: color-mix(in oklab, var(--color-primary, var(--primary)) 15%, transparent);
153
+ }
154
+ color: var(--color-on-background, var(--on-background));
155
+ }
156
+ .rui-calendar__day[data-range-middle='true']:hover:not(:disabled) {
157
+ background-color: var(--color-primary, var(--primary));
158
+ @supports (color: color-mix(in lab, red, red)) {
159
+ background-color: color-mix(in oklab, var(--color-primary, var(--primary)) 25%, transparent);
160
+ }
161
+ }
162
+ .rui-calendar__day[data-range-start='true']:not([data-range-end='true']) {
163
+ border-top-left-radius: var(--radius-control, var(--radius-control));
164
+ border-bottom-left-radius: var(--radius-control, var(--radius-control));
165
+ border-top-right-radius: var(--radius-none, var(--border-radius-none));
166
+ border-bottom-right-radius: var(--radius-none, var(--border-radius-none));
167
+ }
168
+ .rui-calendar__day[data-range-end='true']:not([data-range-start='true']) {
169
+ border-top-left-radius: var(--radius-none, var(--border-radius-none));
170
+ border-bottom-left-radius: var(--radius-none, var(--border-radius-none));
171
+ border-top-right-radius: var(--radius-control, var(--radius-control));
172
+ border-bottom-right-radius: var(--radius-control, var(--radius-control));
173
+ }
174
+ .rui-calendar__day[aria-current='date']:not([aria-selected='true']) {
175
+ --tw-font-weight: var(--font-weight-semibold, var(--weight-semibold));
176
+ font-weight: var(--font-weight-semibold, var(--weight-semibold));
177
+ text-decoration-line: underline;
178
+ }
179
+ .rui-calendar__day[data-outside='true'] {
180
+ color: var(--color-on-surface, var(--on-surface));
181
+ opacity: var(--opacity-muted, var(--opacity-muted));
182
+ }
183
+ .rui-calendar__day:disabled {
184
+ cursor: not-allowed;
185
+ opacity: var(--opacity-muted, var(--opacity-muted));
186
+ }
187
+ .rui-calendar__footer {
188
+ margin-top: var(--spacing-2, var(--space-2));
189
+ display: flex;
190
+ justify-content: center;
191
+ border-top-style: var(--tw-border-style);
192
+ border-top-width: 1px;
193
+ border-color: var(--color-border, var(--border));
194
+ padding-top: var(--spacing-2, var(--space-2));
195
+ }
196
+ .rui-calendar__today {
197
+ cursor: pointer;
198
+ border-radius: var(--radius-control, var(--radius-control));
199
+ border-style: var(--tw-border-style);
200
+ border-width: 0px;
201
+ background-color: transparent;
202
+ padding-inline: var(--spacing-3, var(--space-3));
203
+ padding-block: var(--spacing-1, var(--space-1));
204
+ font-size: var(--text-sm, var(--text-sm));
205
+ line-height: var(--tw-leading, var(--text-sm--line-height, calc(1.25 / 0.875)));
206
+ color: var(--color-primary, var(--primary));
207
+ }
208
+ .rui-calendar__today:hover:not(:disabled) {
209
+ background-color: var(--color-surface, var(--surface));
210
+ }
211
+ .rui-calendar__today:focus-visible {
212
+ --tw-ring-shadow: var(--tw-ring-inset,) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color, currentcolor);
213
+ box-shadow: var(--tw-inset-shadow), var(--tw-inset-ring-shadow), var(--tw-ring-offset-shadow), var(--tw-ring-shadow), var(--tw-shadow);
214
+ --tw-ring-color: var(--color-focus-ring, var(--focus-ring));
215
+ --tw-outline-style: none;
216
+ outline-style: none;
217
+ }
218
+ .rui-calendar__today:disabled {
219
+ cursor: not-allowed;
220
+ opacity: var(--opacity-muted, var(--opacity-muted));
221
+ }
222
+ }
223
+ @property --tw-border-style {
224
+ syntax: "*";
225
+ inherits: false;
226
+ initial-value: solid;
227
+ }
228
+ @property --tw-shadow {
229
+ syntax: "*";
230
+ inherits: false;
231
+ initial-value: 0 0 #0000;
232
+ }
233
+ @property --tw-shadow-color {
234
+ syntax: "*";
235
+ inherits: false;
236
+ }
237
+ @property --tw-shadow-alpha {
238
+ syntax: "<percentage>";
239
+ inherits: false;
240
+ initial-value: 100%;
241
+ }
242
+ @property --tw-inset-shadow {
243
+ syntax: "*";
244
+ inherits: false;
245
+ initial-value: 0 0 #0000;
246
+ }
247
+ @property --tw-inset-shadow-color {
248
+ syntax: "*";
249
+ inherits: false;
250
+ }
251
+ @property --tw-inset-shadow-alpha {
252
+ syntax: "<percentage>";
253
+ inherits: false;
254
+ initial-value: 100%;
255
+ }
256
+ @property --tw-ring-color {
257
+ syntax: "*";
258
+ inherits: false;
259
+ }
260
+ @property --tw-ring-shadow {
261
+ syntax: "*";
262
+ inherits: false;
263
+ initial-value: 0 0 #0000;
264
+ }
265
+ @property --tw-inset-ring-color {
266
+ syntax: "*";
267
+ inherits: false;
268
+ }
269
+ @property --tw-inset-ring-shadow {
270
+ syntax: "*";
271
+ inherits: false;
272
+ initial-value: 0 0 #0000;
273
+ }
274
+ @property --tw-ring-inset {
275
+ syntax: "*";
276
+ inherits: false;
277
+ }
278
+ @property --tw-ring-offset-width {
279
+ syntax: "<length>";
280
+ inherits: false;
281
+ initial-value: 0px;
282
+ }
283
+ @property --tw-ring-offset-color {
284
+ syntax: "*";
285
+ inherits: false;
286
+ initial-value: #fff;
287
+ }
288
+ @property --tw-ring-offset-shadow {
289
+ syntax: "*";
290
+ inherits: false;
291
+ initial-value: 0 0 #0000;
292
+ }
293
+ @property --tw-font-weight {
294
+ syntax: "*";
295
+ inherits: false;
296
+ }
297
+ @layer properties {
298
+ @supports ((-webkit-hyphens: none) and (not (margin-trim: inline))) or ((-moz-orient: inline) and (not (color:rgb(from red r g b)))) {
299
+ *, ::before, ::after, ::backdrop {
300
+ --tw-border-style: solid;
301
+ --tw-shadow: 0 0 #0000;
302
+ --tw-shadow-color: initial;
303
+ --tw-shadow-alpha: 100%;
304
+ --tw-inset-shadow: 0 0 #0000;
305
+ --tw-inset-shadow-color: initial;
306
+ --tw-inset-shadow-alpha: 100%;
307
+ --tw-ring-color: initial;
308
+ --tw-ring-shadow: 0 0 #0000;
309
+ --tw-inset-ring-color: initial;
310
+ --tw-inset-ring-shadow: 0 0 #0000;
311
+ --tw-ring-inset: initial;
312
+ --tw-ring-offset-width: 0px;
313
+ --tw-ring-offset-color: #fff;
314
+ --tw-ring-offset-shadow: 0 0 #0000;
315
+ --tw-font-weight: initial;
316
+ }
317
+ }
318
+ }
@@ -0,0 +1,5 @@
1
+ import type { JsxHtmlPropsWithChildren } from '@ecopages/jsx';
2
+ import type { RuiCalendarProps } from './calendar.script';
3
+ export declare const RuiCalendar: import("@/lib/radiant-view").RadiantViewComponent<JsxHtmlPropsWithChildren<RuiCalendarProps & {
4
+ slot?: string;
5
+ }>>;
@@ -0,0 +1,89 @@
1
+ import { RadiantElement } from '@ecopages/radiant';
2
+ import type { EventEmitter } from '@ecopages/radiant/tools/event-emitter';
3
+ import { type CalendarSelectionMode, type CalendarWeek } from '@/lib/intl-date';
4
+ export type RuiCalendarPageBehavior = 'visible' | 'single';
5
+ export type RuiCalendarProps = {
6
+ value?: string;
7
+ min?: string;
8
+ max?: string;
9
+ disabled?: boolean;
10
+ /** BCP 47 locale tag, or comma-separated fallback list. */
11
+ locale?: string;
12
+ /** @default 'single' */
13
+ selectionMode?: CalendarSelectionMode;
14
+ /** Number of month grids shown side by side. @default 1 */
15
+ visibleMonths?: number;
16
+ /** Whether paging moves by all visible months or one month. @default 'visible' */
17
+ pageBehavior?: RuiCalendarPageBehavior;
18
+ };
19
+ export type RuiCalendarChangeDetail = {
20
+ value: string;
21
+ start?: string;
22
+ end?: string;
23
+ };
24
+ type MonthPanel = {
25
+ year: number;
26
+ month: number;
27
+ label: string;
28
+ weeks: CalendarWeek[];
29
+ };
30
+ /**
31
+ * `<rui-calendar>` — locale-aware month grid(s) for picking dates.
32
+ *
33
+ * Supports single, multiple, and range selection. Value format:
34
+ * - single: `YYYY-MM-DD`
35
+ * - multiple: comma-separated ISO dates
36
+ * - range: `YYYY-MM-DD/YYYY-MM-DD`
37
+ *
38
+ * @see https://react-aria.adobe.com/Calendar
39
+ * @element rui-calendar
40
+ * @fires rui-change
41
+ */
42
+ export declare class RuiCalendar extends RadiantElement {
43
+ value: string;
44
+ min: string;
45
+ max: string;
46
+ disabled: boolean;
47
+ locale: string;
48
+ selectionMode: CalendarSelectionMode;
49
+ visibleMonths: number;
50
+ pageBehavior: RuiCalendarPageBehavior;
51
+ changeEvent: EventEmitter<RuiCalendarChangeDetail>;
52
+ viewYear: number;
53
+ viewMonth: number;
54
+ focusedIso: string;
55
+ weekdayLabels: string[];
56
+ monthPanels: MonthPanel[];
57
+ todayLabel: string;
58
+ rangeAnchor: string | null;
59
+ rangeHover: string | null;
60
+ private get resolvedLocale();
61
+ private get pageDelta();
62
+ private get monthOptions();
63
+ private syncViewFromValue;
64
+ private refreshGrid;
65
+ private moveMonth;
66
+ private getFlatDays;
67
+ private moveFocusedDay;
68
+ private isIsoAllowed;
69
+ private emitChange;
70
+ private selectSingle;
71
+ private selectMultiple;
72
+ private selectRange;
73
+ private selectIso;
74
+ private previewRange;
75
+ private clearRangePreview;
76
+ private initialize;
77
+ connectedCallback(): void;
78
+ onPropsUpdated(): void;
79
+ onPrevMonth(event: Event): void;
80
+ onNextMonth(event: Event): void;
81
+ onTodayClick(event: Event): void;
82
+ onDayClick(event: Event): void;
83
+ onDayPointerEnter(event: Event): void;
84
+ onGridPointerLeave(): void;
85
+ onDayKeydown(event: KeyboardEvent): void;
86
+ private dayDataAttributes;
87
+ render(): import("@ecopages/jsx").JsxRenderable;
88
+ }
89
+ export {};
@@ -0,0 +1,2 @@
1
+ export { RuiCalendar as RuiCalendarElement, type RuiCalendarProps, type RuiCalendarChangeDetail, type RuiCalendarPageBehavior, } from './calendar.script';
2
+ export { RuiCalendar } from './calendar';
@@ -0,0 +1,2 @@
1
+ import{jsx as p,jsxs as me}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as gt,customElement as Et,event as kt,onEvent as L,onUpdated as Tt,prop as S,state as A}from"@ecopages/radiant";function Ae(t){if(!t)return;let e=t.split(",").map(n=>n.trim()).filter(Boolean);return e.length>1?e:e[0]}function ne(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,o=Number(e[3]),a=new Date(n,r,o);return a.getFullYear()!==n||a.getMonth()!==r||a.getDate()!==o?null:a}function Y(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 re(t,e,n){return!(e&&t<e||n&&t>n)}function T(t,e){return t.localeCompare(e)}function C(t,e){return T(t,e)<=0?{start:t,end:e}:{start:e,end:t}}function F(t){if(!t)return null;let[e,n]=t.split("/");return!e||!n?null:C(e,n)}function ae(t){if(!t)return"";let e=C(t.start,t.end);return`${e.start}/${e.end}`}function z(t){return t?t.split(",").map(e=>e.trim()).filter(Boolean).sort(T):[]}function ie(t){return[...new Set(t)].sort(T).join(",")}function oe(t,e){let n=new Set(t);return n.has(e)?n.delete(e):n.add(e),[...n].sort(T)}function Ee(t,e){let n=C(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 o=C(r.start,r.end),a=Ee(t,o),i=t===o.start,c=t===o.end;return{isSelected:a,isRangeStart:i,isRangeEnd:c,isRangeMiddle:a&&!i&&!c}}function le(t,e,n){return e.anchor?{committed:C(e.anchor,n),draft:{anchor:null,hover:null}}:{committed:t,draft:{anchor:n,hover:n}}}function K(t){let e=_t(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 _t(t){return Array.isArray(t)?t[0]??navigator.language:t??navigator.language}function bt(t){return new Date(t.getFullYear(),t.getMonth(),t.getDate())}function Mt(t,e){return t.getFullYear()===e.getFullYear()&&t.getMonth()===e.getMonth()&&t.getDate()===e.getDate()}function wt(t){let e=t.selectionMode??"single",n=t.value??"";if(e==="multiple")return{mode:e,multipleIsos:z(n)};if(e==="range"){let r=F(n);if(t.rangeDraft?.anchor){let o=t.rangeDraft.hover??t.rangeDraft.anchor;return{mode:e,range:Dt(t.rangeDraft.anchor,o)}}return{mode:e,range:r}}return{mode:e,singleIso:n||void 0}}function Dt(t,e){return t.localeCompare(e)<=0?{start:t,end:e}:{start:e,end:t}}function ce(t,e,n){let r=K(n.locale),o=bt(n.today??new Date),a=wt(n),c=(new Date(t,e,1).getDay()-r+7)%7,P=new Date(t,e,1-c),f=[],g=new Date(P);for(let E=0;E<6;E+=1){let D=[];for(let j=0;j<7;j+=1){let V=Y(g),x=se(V,a.mode,{singleIso:a.singleIso,multipleIsos:a.multipleIsos,range:a.range});D.push({date:new Date(g),iso:V,inMonth:g.getMonth()===e,isToday:Mt(g,o),isSelected:x.isSelected,isDisabled:!re(V,n.min,n.max),isRangeStart:x.isRangeStart,isRangeEnd:x.isRangeEnd,isRangeMiddle:x.isRangeMiddle}),g.setDate(g.getDate()+1)}if(f.push(D),E>=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 de(t,e,n){let r=Math.max(1,Math.min(n,12));return Array.from({length:r},(o,a)=>{let i=J(t,e,a);return{year:i.year,month:i.month,offset:a}})}var ke=new Map;function xt(t,e){return`${JSON.stringify(t??null)}|${JSON.stringify(e)}`}function ue(t,e){let n=xt(t,e),r=ke.get(n);if(r)return r;let o=new Intl.DateTimeFormat(t,e);return ke.set(n,o),o}function he(t,e){return ue(e,{month:"long",year:"numeric"}).format(t)}function fe(t,e){let n=ue(t,{weekday:"narrow"}),r=[];for(let o=0;o<7;o+=1){let a=(e+o)%7,i=new Date(2024,0,a===0?7:a);r.push(n.format(i))}return r}function ge(t){return new Intl.RelativeTimeFormat(t,{numeric:"auto"}).format(0,"day")}var Te,Le,Pe,Ve,Oe,Ye,Ce,Fe,ze,je,Ge,$e,Be,Ue,He,We,Ne,Ke,Je,qe,Xe,Qe,Ze,et,tt,nt,rt,at,it,ot,st,lt,ct,dt,ut,ht;function Rt(t,e,n,r,o,a){var i,c,P,f,g,E,D,j=Symbol.metadata||Symbol.for("Symbol.metadata"),V=Object.defineProperty,x=Object.create,pe=[x(null),x(null)],ve=e.length;function B(s,_,v){return function(l,d){_&&(d=l,l=t);for(var b=0;b<s.length;b++)d=s[b].apply(l,v?[d]:[]);return v?d:l}}function R(s,_,v,l){if(typeof s!="function"&&(l||s!==void 0))throw new TypeError(_+" must "+(v||"be")+" a function"+(l?"":" or undefined"));return s}function ye(s,_,v,l,d,b,k,y,M,w,be){function X(h){if(!be(h))throw new TypeError("Attempted to access private element on non-instance")}var Q=[].concat(_[0]),Me=_[3],Z=!k,G=d===1,we=d===3,De=d===4,U=d===2;function H(h,O,Ie){return function(N,Se){return O&&(Se=N,N=s),Ie&&Ie(N),u[h].call(N,Se)}}if(!Z){var u={},ee=[],I=we?"get":De||G?"set":"value";if(M?(w||G?u={get:ft(function(){return Me(this)},l,"get"),set:function(h){_[4](this,h)}}:u[I]=Me,w||ft(u[I],l,U?"":I)):w||(u=Object.getOwnPropertyDescriptor(s,l)),!w&&!M){if((c=pe[+y][l])&&(c^d)!==7)throw Error("Decorating two elements with the same name ("+u[I].name+") is not supported yet");pe[+y][l]=d<3?1:d}}for(var m=s,W=Q.length-1;W>=0;W-=v?2:1){var xe=R(Q[W],"A decorator","be",!0),Re=v?Q[W-1]:void 0,te={},$={kind:["field","accessor","method","getter","setter","class"][d],name:l,metadata:i,addInitializer:function(h,O){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");R(O,"An initializer","be",!0),b.push(O)}.bind(null,te)};if(Z)c=xe.call(Re,m,$),te.v=1,R(c,"class decorators","return")&&(m=c);else if($.static=y,$.private=M,c=$.access={has:M?be.bind():function(h){return l in h}},De||(c.get=M?U?function(h){return X(h),u.value}:H("get",0,X):function(h){return h[l]}),U||we||(c.set=M?H("set",0,X):function(h,O){h[l]=O}),m=xe.call(Re,G?{get:u.get,set:u.set}:u[I],$),te.v=1,G){if(typeof m=="object"&&m)(c=R(m.get,"accessor.get"))&&(u.get=c),(c=R(m.set,"accessor.set"))&&(u.set=c),(c=R(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 R(m,(w?"field":"method")+" decorators","return")&&(w?ee.unshift(m):u[I]=m)}return d<2&&k.push(B(ee,y,1),B(b,y,0)),w||Z||(M?G?k.splice(-1,0,H("get",y),H("set",y)):k.push(U?u[I]:R.call.bind(u[I])):V(s,l,u)),m}function _e(s){return V(s,j,{configurable:!0,enumerable:!0,value:i})}return a!==void 0&&(i=a[j]),i=x(i??null),g=[],E=function(s){s&&g.push(B(s))},D=function(s,_){for(var v=0;v<n.length;v++){var l=n[v],d=l[1],b=7&d;if((8&d)==s&&!b==_){var k=l[2],y=!!l[3],M=16&d;ye(s?t:t.prototype,l,M,y?"#"+k:It(k),b,b<2?[]:s?f=f||[]:P=P||[],g,!!s,y,_,s&&y?function(w){return At(w)===t}:o)}}},D(8,0),D(0,0),D(8,1),D(0,1),E(P),E(f),c=g,ve||_e(t),{e:c,get c(){var s=[];return ve&&[_e(t=ye(t,[e],r,t.name,5,s)),B(s,1)]}}}function It(t){var e=St(t,"string");return typeof e=="symbol"?e:e+""}function St(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 ft(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 At(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 q,mt=class extends gt{static{({e:[Pe,Ve,Oe,Ye,Ce,Fe,ze,je,Ge,$e,Be,Ue,He,We,Ne,Ke,Je,qe,Xe,Qe,Ze,et,tt,nt,rt,at,it,ot,st,lt,ct,dt,ut,ht,Te],c:[q,Le]}=Rt(this,[Et("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"],[kt({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"],[Tt(["value","min","max","disabled","locale","selectionMode","visibleMonths","pageBehavior"]),2,"onPropsUpdated"],[L({selector:"[data-calendar-prev-month]",type:"click"}),2,"onPrevMonth"],[L({selector:"[data-calendar-next-month]",type:"click"}),2,"onNextMonth"],[L({selector:"[data-calendar-today]",type:"click"}),2,"onTodayClick"],[L({selector:"[data-calendar-day]",type:"click"}),2,"onDayClick"],[L({selector:"[data-calendar-day]",type:"pointerenter"}),2,"onDayPointerEnter"],[L({selector:"[data-calendar-grid]",type:"pointerleave"}),2,"onGridPointerLeave"],[L({selector:"[data-calendar-day]",type:"keydown"}),2,"onDayKeydown"]],0,void 0,gt))}constructor(...e){super(...e),ht(this)}value=(Te(this),Pe(this));min=(Ve(this),Oe(this));max=(Ye(this),Ce(this));disabled=(Fe(this),ze(this));locale=(je(this),Ge(this));selectionMode=($e(this),Be(this));visibleMonths=(Ue(this),He(this));pageBehavior=(We(this),Ne(this));changeEvent=(Ke(this),Je(this));viewYear=(qe(this),Xe(this,new Date().getFullYear()));viewMonth=(Qe(this),Ze(this,new Date().getMonth()));focusedIso=(et(this),tt(this,""));weekdayLabels=(nt(this),rt(this,[]));monthPanels=(at(this),it(this,[]));todayLabel=(ot(this),st(this,""));rangeAnchor=(lt(this),ct(this,null));rangeHover=(dt(this),ut(this,null));get resolvedLocale(){return Ae(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"?F(this.value)?.start??"":this.selectionMode==="multiple"?z(this.value)[0]??"":this.value,n=ne(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=Y(r)}refreshGrid(){this.weekdayLabels=fe(this.resolvedLocale,K(this.resolvedLocale)),this.monthPanels=de(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:he(n,this.resolvedLocale),weeks:ce(e.year,e.month,this.monthOptions)}}),this.todayLabel=ge(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(i=>!i.isDisabled);if(!n.length)return;let r=n.findIndex(i=>i.iso===this.focusedIso),o=r<0?Math.max(0,n.findIndex(i=>i.inMonth)):(r+e+n.length)%n.length,a=n[o];a&&((a.date.getMonth()!==this.viewMonth||a.date.getFullYear()!==this.viewYear)&&(this.viewYear=a.date.getFullYear(),this.viewMonth=a.date.getMonth()),this.focusedIso=a.iso,this.refreshGrid())}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=ie(oe(z(this.value),e));n!==this.value&&(this.value=n,this.emitChange(n),this.refreshGrid())}selectRange(e){if(!this.isIsoAllowed(e))return;let n=le(F(this.value),{anchor:this.rangeAnchor,hover:this.rangeHover},e);if(this.rangeAnchor=n.draft.anchor,this.rangeHover=n.draft.hover,n.committed){let r=ae(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()}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>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(Y(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){if(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.moveMonth(e.shiftKey?-12:-this.pageDelta);return}if(e.key==="PageDown"){e.preventDefault(),this.moveMonth(e.shiftKey?12:this.pageDelta);return}if(e.key==="Enter"||e.key===" "){e.preventDefault();let n=e.target,r=n.getAttribute("data-iso");r&&!n.disabled&&this.selectIso(r)}}}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 me("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,o)=>me("div",{class:"rui-calendar__month-panel","data-calendar-month-panel":!0,children:[me("div",{class:"rui-calendar__header",children:[o===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}),o===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"})]}),o===0?p("div",{class:"rui-calendar__weekdays",role:"row",children:this.weekdayLabels.map(a=>p("div",{class:"rui-calendar__weekday",role:"columnheader","aria-hidden":"true",children:a}))}):null,p("div",{class:"rui-calendar__grid",role:"grid","data-calendar-grid":!0,children:r.weeks.map(a=>p("div",{class:"rui-calendar__week",role:"row",children:a.map(i=>p("button",{type:"button",class:"rui-calendar__day","data-calendar-day":!0,"data-iso":i.iso,role:"gridcell",disabled:this.disabled||i.isDisabled,tabIndex:i.iso===this.focusedIso?0:-1,"aria-selected":i.isSelected?"true":"false","aria-current":i.isToday?"date":void 0,"data-outside":i.inMonth?void 0:"true",...this.dayDataAttributes(i),children:i.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 Vt}from"@ecopages/jsx/jsx-runtime";var Lt=Symbol.for("@ecopages/storybook-radiant.viewElement"),pt=Symbol.for("@ecopages/storybook-radiant.scriptModule"),vt=Symbol.for("@ecopages/storybook-radiant.scriptExport");function Pt(t,e){t[Lt]=e;let n=e[pt];n&&(t[pt]=n,t[vt]=e[vt]??e.name)}function yt(t,e,n){let r=o=>e(o);return Pt(r,t),r}var Ot=yt(q,({children:t,...e})=>Vt("rui-calendar",{...e,children:t}),{stylesheets:["./calendar.css"]});export{Ot as RuiCalendar,q as RuiCalendarElement};
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 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", "../../../../src/lib/radiant-view.ts"],
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 (next.date.getMonth() !== this.viewMonth || next.date.getFullYear() !== this.viewYear) {\n this.viewYear = next.date.getFullYear();\n this.viewMonth = next.date.getMonth();\n }\n this.focusedIso = next.iso;\n this.refreshGrid();\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 connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => 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 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.moveMonth(event2.shiftKey ? -12 : -this.pageDelta);\n return;\n }\n if (event2.key === \"PageDown\") {\n event2.preventDefault();\n this.moveMonth(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 { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiCalendar as RuiCalendarElement } from \"./calendar.script\";\nexport const RuiCalendar = defineRadiantView(RuiCalendarElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-calendar\", {\n ...props,\n children\n}), {\n stylesheets: [\"./calendar.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\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", "i", "a", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "n", "r", "o", "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", "value", "extra", "serializeMultipleIsos", "toggleMultipleIso", "result", "advanceRangeSelection", "serialized", "serializeIsoRange", "event2", "button", "dayCell", "panelCount", "multiMonth", "jsxs", "jsx", "index", "label", "weekRow", "jsx", "RADIANT_VIEW_ELEMENT", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "linkViewToElement", "view", "element", "RADIANT_VIEW_ELEMENT", "ssrModule", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "defineRadiantView", "render", "_options", "args", "RuiCalendar", "defineRadiantView", "_RuiCalendar", "children", "props", "jsx"]
7
+ }