@vielzeug/refine 26.10.0 → 26.10.5

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 (468) hide show
  1. package/README.md +1 -1
  2. package/dist/accordion-item.cjs.map +1 -1
  3. package/dist/accordion-item.js.map +1 -1
  4. package/dist/accordion.cjs.map +1 -1
  5. package/dist/accordion.js.map +1 -1
  6. package/dist/async.cjs.map +1 -1
  7. package/dist/async.js.map +1 -1
  8. package/dist/badge.cjs.map +1 -1
  9. package/dist/badge.js.map +1 -1
  10. package/dist/box.cjs.map +1 -1
  11. package/dist/box.js.map +1 -1
  12. package/dist/button.cjs +3 -3
  13. package/dist/button.cjs.map +1 -1
  14. package/dist/button.js +3 -3
  15. package/dist/button.js.map +1 -1
  16. package/dist/calendar.cjs.map +1 -1
  17. package/dist/calendar.js.map +1 -1
  18. package/dist/carousel.cjs.map +1 -1
  19. package/dist/carousel.js.map +1 -1
  20. package/dist/chat-message.cjs.map +1 -1
  21. package/dist/chat-message.js.map +1 -1
  22. package/dist/chat-panel.cjs.map +1 -1
  23. package/dist/chat-panel.js.map +1 -1
  24. package/dist/checkbox-group.cjs.map +1 -1
  25. package/dist/checkbox-group.js.map +1 -1
  26. package/dist/chip.cjs.map +1 -1
  27. package/dist/chip.js.map +1 -1
  28. package/dist/code-window.cjs.map +1 -1
  29. package/dist/code-window.js.map +1 -1
  30. package/dist/combobox.cjs.map +1 -1
  31. package/dist/combobox.js.map +1 -1
  32. package/dist/command-palette.cjs +9 -1
  33. package/dist/command-palette.cjs.map +1 -1
  34. package/dist/command-palette.js +9 -1
  35. package/dist/command-palette.js.map +1 -1
  36. package/dist/content/card/card.css.cjs.map +1 -1
  37. package/dist/content/card/card.css.js.map +1 -1
  38. package/dist/content/carousel/carousel-slide.css.cjs.map +1 -1
  39. package/dist/content/carousel/carousel-slide.css.js.map +1 -1
  40. package/dist/content/carousel/carousel.css.cjs.map +1 -1
  41. package/dist/content/carousel/carousel.css.js.map +1 -1
  42. package/dist/content/carousel/carousel.d.ts +5 -5
  43. package/dist/content/chat-message/chat-message.css.cjs +1 -1
  44. package/dist/content/chat-message/chat-message.css.cjs.map +1 -1
  45. package/dist/content/chat-message/chat-message.css.js +1 -1
  46. package/dist/content/chat-message/chat-message.css.js.map +1 -1
  47. package/dist/content/chat-message/chat-message.d.ts +4 -4
  48. package/dist/content/chat-message/chat-message.d.ts.map +1 -1
  49. package/dist/content/chat-panel/chat-panel.d.ts +1 -1
  50. package/dist/content/code-window/code-window.css.cjs.map +1 -1
  51. package/dist/content/code-window/code-window.css.js.map +1 -1
  52. package/dist/content/code-window/code-window.d.ts +4 -4
  53. package/dist/content/index.d.ts +4 -0
  54. package/dist/content/index.d.ts.map +1 -1
  55. package/dist/content/list/_list-item-reveal.cjs.map +1 -1
  56. package/dist/content/list/_list-item-reveal.d.ts +4 -4
  57. package/dist/content/list/_list-item-reveal.d.ts.map +1 -1
  58. package/dist/content/list/_list-item-reveal.js.map +1 -1
  59. package/dist/content/list/list-item.css.cjs.map +1 -1
  60. package/dist/content/list/list-item.css.js.map +1 -1
  61. package/dist/content/list/list-item.d.ts +8 -8
  62. package/dist/content/list/list-item.d.ts.map +1 -1
  63. package/dist/content/list/list.d.ts +8 -8
  64. package/dist/content/list/list.d.ts.map +1 -1
  65. package/dist/content/qr-code/qr-code.d.ts +1 -1
  66. package/dist/content/rank-list/rank-item.css.cjs +2 -0
  67. package/dist/content/rank-list/rank-item.css.cjs.map +1 -0
  68. package/dist/content/rank-list/rank-item.css.js +2 -0
  69. package/dist/content/rank-list/rank-item.css.js.map +1 -0
  70. package/dist/content/rank-list/rank-item.d.ts +68 -0
  71. package/dist/content/rank-list/rank-item.d.ts.map +1 -0
  72. package/dist/content/rank-list/rank-list.css.cjs +2 -0
  73. package/dist/content/rank-list/rank-list.css.cjs.map +1 -0
  74. package/dist/content/rank-list/rank-list.css.js +2 -0
  75. package/dist/content/rank-list/rank-list.css.js.map +1 -0
  76. package/dist/content/rank-list/rank-list.d.ts +44 -0
  77. package/dist/content/rank-list/rank-list.d.ts.map +1 -0
  78. package/dist/content/separator/separator.d.ts +1 -1
  79. package/dist/content/separator/separator.d.ts.map +1 -1
  80. package/dist/content/speech-player/speech-player.css.cjs.map +1 -1
  81. package/dist/content/speech-player/speech-player.css.js.map +1 -1
  82. package/dist/content/speech-player/speech-player.d.ts +12 -12
  83. package/dist/content/speech-player/speech-player.d.ts.map +1 -1
  84. package/dist/content/stepper/step.css.cjs.map +1 -1
  85. package/dist/content/stepper/step.css.js.map +1 -1
  86. package/dist/content/stepper/step.d.ts +3 -3
  87. package/dist/content/stepper/step.d.ts.map +1 -1
  88. package/dist/content/stepper/stepper.css.cjs.map +1 -1
  89. package/dist/content/stepper/stepper.css.js.map +1 -1
  90. package/dist/content/stepper/stepper.d.ts +3 -3
  91. package/dist/content/stepper/stepper.d.ts.map +1 -1
  92. package/dist/content/table/table.css.cjs.map +1 -1
  93. package/dist/content/table/table.css.js.map +1 -1
  94. package/dist/content/table/table.d.ts +3 -3
  95. package/dist/content/table/table.d.ts.map +1 -1
  96. package/dist/content/text/text.css.cjs.map +1 -1
  97. package/dist/content/text/text.css.js.map +1 -1
  98. package/dist/content/text/text.d.ts +2 -2
  99. package/dist/content/text/text.d.ts.map +1 -1
  100. package/dist/cookie-banner.cjs.map +1 -1
  101. package/dist/cookie-banner.js.map +1 -1
  102. package/dist/copy-command.cjs +1 -1
  103. package/dist/copy-command.cjs.map +1 -1
  104. package/dist/copy-command.js +1 -1
  105. package/dist/copy-command.js.map +1 -1
  106. package/dist/core/announcer.cjs.map +1 -1
  107. package/dist/core/announcer.d.ts +2 -2
  108. package/dist/core/announcer.js.map +1 -1
  109. package/dist/core/aria-reflection.cjs.map +1 -1
  110. package/dist/core/aria-reflection.d.ts +3 -3
  111. package/dist/core/aria-reflection.js.map +1 -1
  112. package/dist/core/auto-resize.cjs.map +1 -1
  113. package/dist/core/auto-resize.d.ts +1 -1
  114. package/dist/core/auto-resize.js.map +1 -1
  115. package/dist/core/checkable.cjs.map +1 -1
  116. package/dist/core/checkable.d.ts +2 -2
  117. package/dist/core/checkable.d.ts.map +1 -1
  118. package/dist/core/checkable.js.map +1 -1
  119. package/dist/core/choice-field.cjs.map +1 -1
  120. package/dist/core/choice-field.d.ts +3 -3
  121. package/dist/core/choice-field.d.ts.map +1 -1
  122. package/dist/core/choice-field.js.map +1 -1
  123. package/dist/core/composer.cjs.map +1 -1
  124. package/dist/core/composer.d.ts +4 -4
  125. package/dist/core/composer.d.ts.map +1 -1
  126. package/dist/core/composer.js.map +1 -1
  127. package/dist/core/date-picker.cjs.map +1 -1
  128. package/dist/core/date-picker.d.ts +5 -5
  129. package/dist/core/date-picker.d.ts.map +1 -1
  130. package/dist/core/date-picker.js.map +1 -1
  131. package/dist/core/direction.cjs.map +1 -1
  132. package/dist/core/direction.d.ts +1 -1
  133. package/dist/core/direction.js.map +1 -1
  134. package/dist/core/field-base.cjs.map +1 -1
  135. package/dist/core/field-base.d.ts +9 -9
  136. package/dist/core/field-base.d.ts.map +1 -1
  137. package/dist/core/field-base.js.map +1 -1
  138. package/dist/core/focus.cjs.map +1 -1
  139. package/dist/core/focus.d.ts +1 -1
  140. package/dist/core/focus.js.map +1 -1
  141. package/dist/core/icon-registry.cjs.map +1 -1
  142. package/dist/core/icon-registry.d.ts +1 -1
  143. package/dist/core/icon-registry.js.map +1 -1
  144. package/dist/core/icons.cjs.map +1 -1
  145. package/dist/core/icons.js.map +1 -1
  146. package/dist/core/keyboard.cjs.map +1 -1
  147. package/dist/core/keyboard.d.ts +1 -1
  148. package/dist/core/keyboard.js.map +1 -1
  149. package/dist/core/numbers.cjs.map +1 -1
  150. package/dist/core/numbers.d.ts +1 -1
  151. package/dist/core/numbers.js.map +1 -1
  152. package/dist/core/overlay.cjs.map +1 -1
  153. package/dist/core/overlay.d.ts +6 -6
  154. package/dist/core/overlay.js.map +1 -1
  155. package/dist/core/parse.cjs.map +1 -1
  156. package/dist/core/parse.d.ts +1 -1
  157. package/dist/core/parse.js.map +1 -1
  158. package/dist/core/positioner.cjs.map +1 -1
  159. package/dist/core/positioner.d.ts +3 -3
  160. package/dist/core/positioner.js.map +1 -1
  161. package/dist/core/ref-callback.cjs.map +1 -1
  162. package/dist/core/ref-callback.d.ts +2 -2
  163. package/dist/core/ref-callback.d.ts.map +1 -1
  164. package/dist/core/ref-callback.js.map +1 -1
  165. package/dist/core/text-field.cjs.map +1 -1
  166. package/dist/core/text-field.d.ts +6 -6
  167. package/dist/core/text-field.d.ts.map +1 -1
  168. package/dist/core/text-field.js.map +1 -1
  169. package/dist/counter.cjs +1 -0
  170. package/dist/counter.cjs.map +1 -1
  171. package/dist/counter.js +1 -0
  172. package/dist/counter.js.map +1 -1
  173. package/dist/custom-elements.json +334 -87
  174. package/dist/datagrid.cjs.map +1 -1
  175. package/dist/datagrid.js.map +1 -1
  176. package/dist/date-picker.cjs +1 -1
  177. package/dist/date-picker.cjs.map +1 -1
  178. package/dist/date-picker.js +1 -1
  179. package/dist/date-picker.js.map +1 -1
  180. package/dist/dialog.cjs.map +1 -1
  181. package/dist/dialog.js.map +1 -1
  182. package/dist/disclosure/accordion-item/accordion-item.css.cjs +1 -1
  183. package/dist/disclosure/accordion-item/accordion-item.css.cjs.map +1 -1
  184. package/dist/disclosure/accordion-item/accordion-item.css.js +1 -1
  185. package/dist/disclosure/accordion-item/accordion-item.css.js.map +1 -1
  186. package/dist/disclosure/tab-item/tab-item.d.ts +1 -1
  187. package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -1
  188. package/dist/drawer.cjs.map +1 -1
  189. package/dist/drawer.js.map +1 -1
  190. package/dist/feedback/alert/alert.css.cjs.map +1 -1
  191. package/dist/feedback/alert/alert.css.js.map +1 -1
  192. package/dist/feedback/badge/badge.css.cjs.map +1 -1
  193. package/dist/feedback/badge/badge.css.js.map +1 -1
  194. package/dist/feedback/badge/badge.d.ts +1 -1
  195. package/dist/feedback/badge/badge.d.ts.map +1 -1
  196. package/dist/feedback/chip/chip.css.cjs.map +1 -1
  197. package/dist/feedback/chip/chip.css.js.map +1 -1
  198. package/dist/feedback/chip/chip.d.ts +3 -3
  199. package/dist/feedback/chip/chip.d.ts.map +1 -1
  200. package/dist/feedback/cookie-banner/cookie-banner.css.cjs.map +1 -1
  201. package/dist/feedback/cookie-banner/cookie-banner.css.js.map +1 -1
  202. package/dist/feedback/cookie-banner/cookie-banner.d.ts +8 -8
  203. package/dist/feedback/cookie-banner/cookie-banner.d.ts.map +1 -1
  204. package/dist/feedback/progress/progress.css.cjs.map +1 -1
  205. package/dist/feedback/progress/progress.css.js.map +1 -1
  206. package/dist/feedback/progress/progress.d.ts +1 -1
  207. package/dist/feedback/progress/progress.d.ts.map +1 -1
  208. package/dist/feedback/skeleton/skeleton.css.cjs.map +1 -1
  209. package/dist/feedback/skeleton/skeleton.css.js.map +1 -1
  210. package/dist/feedback/skeleton/skeleton.d.ts +1 -1
  211. package/dist/feedback/skeleton/skeleton.d.ts.map +1 -1
  212. package/dist/feedback/toast/toast.css.cjs +1 -1
  213. package/dist/feedback/toast/toast.css.cjs.map +1 -1
  214. package/dist/feedback/toast/toast.css.js +1 -1
  215. package/dist/feedback/toast/toast.css.js.map +1 -1
  216. package/dist/feedback/toast/toast.d.ts +1 -1
  217. package/dist/feedback/toast/toast.d.ts.map +1 -1
  218. package/dist/feedback/typing-indicator/typing-indicator.d.ts +2 -2
  219. package/dist/file-input.cjs +1 -1
  220. package/dist/file-input.cjs.map +1 -1
  221. package/dist/file-input.js +1 -1
  222. package/dist/file-input.js.map +1 -1
  223. package/dist/frameworks/elements.d.ts +1 -1
  224. package/dist/grid-item.cjs.map +1 -1
  225. package/dist/grid-item.js.map +1 -1
  226. package/dist/grid.cjs.map +1 -1
  227. package/dist/grid.js.map +1 -1
  228. package/dist/icon.cjs.map +1 -1
  229. package/dist/icon.js.map +1 -1
  230. package/dist/input.cjs.map +1 -1
  231. package/dist/input.js.map +1 -1
  232. package/dist/inputs/button/button.css.cjs.map +1 -1
  233. package/dist/inputs/button/button.css.js.map +1 -1
  234. package/dist/inputs/button/button.d.ts +3 -3
  235. package/dist/inputs/button/button.d.ts.map +1 -1
  236. package/dist/inputs/calendar/calendar.css.cjs.map +1 -1
  237. package/dist/inputs/calendar/calendar.css.js.map +1 -1
  238. package/dist/inputs/calendar/calendar.d.ts +2 -2
  239. package/dist/inputs/checkbox-group/checkbox-group.d.ts +2 -2
  240. package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -1
  241. package/dist/inputs/combobox/combobox.css.cjs.map +1 -1
  242. package/dist/inputs/combobox/combobox.css.js.map +1 -1
  243. package/dist/inputs/counter/counter.css.cjs +1 -1
  244. package/dist/inputs/counter/counter.css.cjs.map +1 -1
  245. package/dist/inputs/counter/counter.css.js +1 -1
  246. package/dist/inputs/counter/counter.css.js.map +1 -1
  247. package/dist/inputs/counter/counter.d.ts +2 -1
  248. package/dist/inputs/counter/counter.d.ts.map +1 -1
  249. package/dist/inputs/datagrid/datagrid.css.cjs.map +1 -1
  250. package/dist/inputs/datagrid/datagrid.css.js.map +1 -1
  251. package/dist/inputs/datagrid/datagrid.d.ts +5 -5
  252. package/dist/inputs/date-picker/date-picker.css.cjs.map +1 -1
  253. package/dist/inputs/date-picker/date-picker.css.js.map +1 -1
  254. package/dist/inputs/date-picker/date-picker.d.ts +1 -1
  255. package/dist/inputs/file-input/file-input-upload.cjs.map +1 -1
  256. package/dist/inputs/file-input/file-input-upload.d.ts +6 -6
  257. package/dist/inputs/file-input/file-input-upload.js.map +1 -1
  258. package/dist/inputs/file-input/file-input.css.cjs.map +1 -1
  259. package/dist/inputs/file-input/file-input.css.js.map +1 -1
  260. package/dist/inputs/file-input/file-input.d.ts +6 -6
  261. package/dist/inputs/input/input.css.cjs +1 -1
  262. package/dist/inputs/input/input.css.cjs.map +1 -1
  263. package/dist/inputs/input/input.css.js +1 -1
  264. package/dist/inputs/input/input.css.js.map +1 -1
  265. package/dist/inputs/input/input.d.ts +6 -6
  266. package/dist/inputs/input/input.d.ts.map +1 -1
  267. package/dist/inputs/message-composer/message-composer.css.cjs.map +1 -1
  268. package/dist/inputs/message-composer/message-composer.css.js.map +1 -1
  269. package/dist/inputs/message-composer/message-composer.d.ts +7 -7
  270. package/dist/inputs/message-composer/message-composer.d.ts.map +1 -1
  271. package/dist/inputs/number-input/number-input.css.cjs.map +1 -1
  272. package/dist/inputs/number-input/number-input.css.js.map +1 -1
  273. package/dist/inputs/number-input/number-input.d.ts +2 -2
  274. package/dist/inputs/otp-input/otp-input.css.cjs.map +1 -1
  275. package/dist/inputs/otp-input/otp-input.css.js.map +1 -1
  276. package/dist/inputs/qr-scanner/qr-scanner.d.ts +1 -1
  277. package/dist/inputs/qr-scanner/qr-scanner.d.ts.map +1 -1
  278. package/dist/inputs/rating/rating.d.ts +1 -1
  279. package/dist/inputs/rating/rating.d.ts.map +1 -1
  280. package/dist/inputs/select/select.css.cjs +1 -1
  281. package/dist/inputs/select/select.css.cjs.map +1 -1
  282. package/dist/inputs/select/select.css.js +1 -1
  283. package/dist/inputs/select/select.css.js.map +1 -1
  284. package/dist/inputs/select/select.d.ts +1 -1
  285. package/dist/inputs/select/select.d.ts.map +1 -1
  286. package/dist/inputs/shared/field-binding.cjs.map +1 -1
  287. package/dist/inputs/shared/field-binding.d.ts +2 -2
  288. package/dist/inputs/shared/field-binding.d.ts.map +1 -1
  289. package/dist/inputs/shared/field-binding.js.map +1 -1
  290. package/dist/inputs/shared/native-field-event.cjs.map +1 -1
  291. package/dist/inputs/shared/native-field-event.d.ts +1 -1
  292. package/dist/inputs/shared/native-field-event.js.map +1 -1
  293. package/dist/inputs/shared/templates.cjs.map +1 -1
  294. package/dist/inputs/shared/templates.d.ts +3 -3
  295. package/dist/inputs/shared/templates.js.map +1 -1
  296. package/dist/inputs/slider/slider.css.cjs.map +1 -1
  297. package/dist/inputs/slider/slider.css.js.map +1 -1
  298. package/dist/inputs/slider/slider.d.ts +1 -1
  299. package/dist/inputs/slider/slider.d.ts.map +1 -1
  300. package/dist/inputs/textarea/textarea.css.cjs.map +1 -1
  301. package/dist/inputs/textarea/textarea.css.js.map +1 -1
  302. package/dist/inputs/textarea/textarea.d.ts +1 -1
  303. package/dist/inputs/time-picker/time-picker.css.cjs.map +1 -1
  304. package/dist/inputs/time-picker/time-picker.css.js.map +1 -1
  305. package/dist/inputs/time-picker/time-picker.d.ts +1 -1
  306. package/dist/layout/box/box.css.cjs.map +1 -1
  307. package/dist/layout/box/box.css.js.map +1 -1
  308. package/dist/layout/box/box.d.ts +1 -1
  309. package/dist/layout/grid/grid.d.ts +1 -1
  310. package/dist/layout/grid-item/grid-item.d.ts +3 -3
  311. package/dist/layout/grid-item/grid-item.d.ts.map +1 -1
  312. package/dist/layout/navbar/navbar.css.cjs +1 -1
  313. package/dist/layout/navbar/navbar.css.cjs.map +1 -1
  314. package/dist/layout/navbar/navbar.css.js +1 -1
  315. package/dist/layout/navbar/navbar.css.js.map +1 -1
  316. package/dist/layout/navbar/navbar.d.ts +3 -3
  317. package/dist/layout/sidebar/sidebar-item.css.cjs.map +1 -1
  318. package/dist/layout/sidebar/sidebar-item.css.js.map +1 -1
  319. package/dist/layout/sidebar/sidebar.d.ts +5 -5
  320. package/dist/layout/sidebar/sidebar.d.ts.map +1 -1
  321. package/dist/list-item.cjs.map +1 -1
  322. package/dist/list-item.js.map +1 -1
  323. package/dist/list.cjs.map +1 -1
  324. package/dist/list.js.map +1 -1
  325. package/dist/menu.cjs +6 -5
  326. package/dist/menu.cjs.map +1 -1
  327. package/dist/menu.js +6 -5
  328. package/dist/menu.js.map +1 -1
  329. package/dist/message-composer.cjs.map +1 -1
  330. package/dist/message-composer.js.map +1 -1
  331. package/dist/navbar.cjs.map +1 -1
  332. package/dist/navbar.js.map +1 -1
  333. package/dist/number-input.cjs.map +1 -1
  334. package/dist/number-input.js.map +1 -1
  335. package/dist/otp-input.cjs.map +1 -1
  336. package/dist/otp-input.js.map +1 -1
  337. package/dist/overlay/command-palette/command-palette-items.cjs.map +1 -1
  338. package/dist/overlay/command-palette/command-palette-items.d.ts +1 -1
  339. package/dist/overlay/command-palette/command-palette-items.js.map +1 -1
  340. package/dist/overlay/command-palette/command-palette.css.cjs +1 -1
  341. package/dist/overlay/command-palette/command-palette.css.cjs.map +1 -1
  342. package/dist/overlay/command-palette/command-palette.css.js +1 -1
  343. package/dist/overlay/command-palette/command-palette.css.js.map +1 -1
  344. package/dist/overlay/command-palette/command-palette.d.ts +7 -3
  345. package/dist/overlay/command-palette/command-palette.d.ts.map +1 -1
  346. package/dist/overlay/command-palette/command-palette.types.d.ts +16 -6
  347. package/dist/overlay/command-palette/command-palette.types.d.ts.map +1 -1
  348. package/dist/overlay/dialog/dialog.css.cjs +1 -1
  349. package/dist/overlay/dialog/dialog.css.cjs.map +1 -1
  350. package/dist/overlay/dialog/dialog.css.js +1 -1
  351. package/dist/overlay/dialog/dialog.css.js.map +1 -1
  352. package/dist/overlay/dialog/dialog.d.ts +2 -2
  353. package/dist/overlay/dialog/dialog.d.ts.map +1 -1
  354. package/dist/overlay/drawer/drawer.css.cjs.map +1 -1
  355. package/dist/overlay/drawer/drawer.css.js.map +1 -1
  356. package/dist/overlay/drawer/drawer.d.ts +1 -1
  357. package/dist/overlay/drawer/drawer.d.ts.map +1 -1
  358. package/dist/overlay/menu/menu-item.css.cjs.map +1 -1
  359. package/dist/overlay/menu/menu-item.css.js.map +1 -1
  360. package/dist/overlay/menu/menu.d.ts.map +1 -1
  361. package/dist/overlay/shared/use-dialog.cjs.map +1 -1
  362. package/dist/overlay/shared/use-dialog.d.ts +6 -6
  363. package/dist/overlay/shared/use-dialog.d.ts.map +1 -1
  364. package/dist/overlay/shared/use-dialog.js.map +1 -1
  365. package/dist/overlay/shared/use-floating-trigger.cjs.map +1 -1
  366. package/dist/overlay/shared/use-floating-trigger.d.ts +1 -1
  367. package/dist/overlay/shared/use-floating-trigger.d.ts.map +1 -1
  368. package/dist/overlay/shared/use-floating-trigger.js.map +1 -1
  369. package/dist/overlay/tooltip/tooltip.css.cjs.map +1 -1
  370. package/dist/overlay/tooltip/tooltip.css.js.map +1 -1
  371. package/dist/progress.cjs.map +1 -1
  372. package/dist/progress.js.map +1 -1
  373. package/dist/qr-code.cjs.map +1 -1
  374. package/dist/qr-code.js.map +1 -1
  375. package/dist/qr-scanner.cjs.map +1 -1
  376. package/dist/qr-scanner.js.map +1 -1
  377. package/dist/radio-group.cjs.map +1 -1
  378. package/dist/radio-group.js.map +1 -1
  379. package/dist/radio.cjs.map +1 -1
  380. package/dist/radio.js.map +1 -1
  381. package/dist/rank-item.cjs +21 -0
  382. package/dist/rank-item.cjs.map +1 -0
  383. package/dist/rank-item.js +21 -0
  384. package/dist/rank-item.js.map +1 -0
  385. package/dist/rank-list.cjs +4 -0
  386. package/dist/rank-list.cjs.map +1 -0
  387. package/dist/rank-list.js +4 -0
  388. package/dist/rank-list.js.map +1 -0
  389. package/dist/rating.cjs.map +1 -1
  390. package/dist/rating.js.map +1 -1
  391. package/dist/refine.cjs +111 -80
  392. package/dist/refine.cjs.map +1 -1
  393. package/dist/refine.iife.js +111 -80
  394. package/dist/refine.iife.js.map +1 -1
  395. package/dist/refine.js +112 -81
  396. package/dist/refine.js.map +1 -1
  397. package/dist/select.cjs.map +1 -1
  398. package/dist/select.js.map +1 -1
  399. package/dist/separator.cjs.map +1 -1
  400. package/dist/separator.js.map +1 -1
  401. package/dist/shared/index.d.ts +3 -3
  402. package/dist/shared/size-presets.cjs.map +1 -1
  403. package/dist/shared/size-presets.d.ts +4 -4
  404. package/dist/shared/size-presets.js.map +1 -1
  405. package/dist/shared/types.d.ts +1 -1
  406. package/dist/sidebar.cjs.map +1 -1
  407. package/dist/sidebar.js.map +1 -1
  408. package/dist/skeleton.cjs.map +1 -1
  409. package/dist/skeleton.js.map +1 -1
  410. package/dist/slider.cjs.map +1 -1
  411. package/dist/slider.js.map +1 -1
  412. package/dist/speech-player.cjs.map +1 -1
  413. package/dist/speech-player.js.map +1 -1
  414. package/dist/step.cjs.map +1 -1
  415. package/dist/step.js.map +1 -1
  416. package/dist/stepper.cjs.map +1 -1
  417. package/dist/stepper.js.map +1 -1
  418. package/dist/styles/fouc.css +2 -2
  419. package/dist/styles/mixins/accessibility.css.cjs.map +1 -1
  420. package/dist/styles/mixins/accessibility.css.d.ts +4 -4
  421. package/dist/styles/mixins/accessibility.css.js.map +1 -1
  422. package/dist/styles/mixins/animation.css.cjs +2 -2
  423. package/dist/styles/mixins/animation.css.cjs.map +1 -1
  424. package/dist/styles/mixins/animation.css.d.ts +4 -4
  425. package/dist/styles/mixins/animation.css.js +2 -2
  426. package/dist/styles/mixins/animation.css.js.map +1 -1
  427. package/dist/styles/mixins/field-variants.css.cjs +2 -2
  428. package/dist/styles/mixins/field-variants.css.cjs.map +1 -1
  429. package/dist/styles/mixins/field-variants.css.d.ts +6 -6
  430. package/dist/styles/mixins/field-variants.css.d.ts.map +1 -1
  431. package/dist/styles/mixins/field-variants.css.js +2 -2
  432. package/dist/styles/mixins/field-variants.css.js.map +1 -1
  433. package/dist/styles/mixins/shape.css.cjs.map +1 -1
  434. package/dist/styles/mixins/shape.css.d.ts +9 -9
  435. package/dist/styles/mixins/shape.css.d.ts.map +1 -1
  436. package/dist/styles/mixins/shape.css.js.map +1 -1
  437. package/dist/styles/mixins/variants.css.cjs.map +1 -1
  438. package/dist/styles/mixins/variants.css.d.ts +1 -1
  439. package/dist/styles/mixins/variants.css.js.map +1 -1
  440. package/dist/styles/theme.css +36 -28
  441. package/dist/tab-item.cjs.map +1 -1
  442. package/dist/tab-item.js.map +1 -1
  443. package/dist/tab-panel.cjs.map +1 -1
  444. package/dist/tab-panel.js.map +1 -1
  445. package/dist/table.cjs.map +1 -1
  446. package/dist/table.js.map +1 -1
  447. package/dist/text.cjs.map +1 -1
  448. package/dist/text.js.map +1 -1
  449. package/dist/textarea.cjs.map +1 -1
  450. package/dist/textarea.js.map +1 -1
  451. package/dist/theme.cjs.map +1 -1
  452. package/dist/theme.d.ts +2 -2
  453. package/dist/theme.js.map +1 -1
  454. package/dist/time-picker.cjs +1 -1
  455. package/dist/time-picker.cjs.map +1 -1
  456. package/dist/time-picker.js +1 -1
  457. package/dist/time-picker.js.map +1 -1
  458. package/dist/toast.cjs.map +1 -1
  459. package/dist/toast.js.map +1 -1
  460. package/dist/types/elements.d.ts +6 -2
  461. package/dist/typing-indicator.cjs.map +1 -1
  462. package/dist/typing-indicator.js.map +1 -1
  463. package/dist/utils/css.cjs.map +1 -1
  464. package/dist/utils/css.js.map +1 -1
  465. package/dist/utils/link.cjs.map +1 -1
  466. package/dist/utils/link.d.ts +2 -2
  467. package/dist/utils/link.js.map +1 -1
  468. package/package.json +31 -14
@@ -1,6 +1,6 @@
1
1
  import type { ButtonType, ComponentSize, LinkTarget, RoundedSize, ThemeColor } from '../../types';
2
2
  export declare const BUTTON_VARIANTS: readonly ["solid", "flat", "bordered", "outline", "ghost", "text", "frost"];
3
- /** Visual variant for ore-button — derived from BUTTON_VARIANTS for a single source of truth. */
3
+ /** Visual variant for ore-button: derived from BUTTON_VARIANTS for a single source of truth. */
4
4
  export type ButtonVariant = (typeof BUTTON_VARIANTS)[number];
5
5
  /** Animated border effect for ore-button. */
6
6
  export type ButtonEffect = 'shine' | 'rainbow';
@@ -13,7 +13,7 @@ export type OreButtonProps = {
13
13
  /** Animated border effect: 'shine' (color-aware neon sweep) or 'rainbow' */
14
14
  effect?: ButtonEffect;
15
15
  /**
16
- * Full height button (100% of container) — the inner `[part="button"]` fills its host's
16
+ * Full height button (100% of container): the inner `[part="button"]` fills its host's
17
17
  * height instead of the size preset's fixed height. Useful when the button itself is the
18
18
  * whole tappable surface of a container it doesn't otherwise control the size of (e.g. a
19
19
  * swipe-revealed row action in `ore-list-item`'s `actions-left`/`actions-right` slots).
@@ -25,7 +25,7 @@ export type OreButtonProps = {
25
25
  href?: string;
26
26
  /** Icon-only mode (square aspect ratio, no padding) */
27
27
  iconOnly?: boolean;
28
- /** Accessible label for the inner button — required for icon-only buttons */
28
+ /** Accessible label for the inner button: required for icon-only buttons */
29
29
  label?: string;
30
30
  /** Show loading state with spinner */
31
31
  loading?: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/inputs/button/button.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMlG,eAAO,MAAM,eAAe,6EAA8E,CAAC;AAE3G,iGAAiG;AACjG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/C,kCAAkC;AAClC,MAAM,MAAM,cAAc,GAAG;IAC3B,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,6EAA6E;IAC7E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,kCAAkC;IAClC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,iCAAiC;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,UAAU,EAAG,YAAqB,CAAC"}
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/inputs/button/button.ts"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAMlG,eAAO,MAAM,eAAe,6EAA8E,CAAC;AAE3G,gGAAgG;AAChG,MAAM,MAAM,aAAa,GAAG,CAAC,OAAO,eAAe,CAAC,CAAC,MAAM,CAAC,CAAC;AAE7D,6CAA6C;AAC7C,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,SAAS,CAAC;AAE/C,kCAAkC;AAClC,MAAM,MAAM,cAAc,GAAG;IAC3B,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,MAAM,CAAC,EAAE,YAAY,CAAC;IACtB;;;;;OAKG;IACH,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,4CAA4C;IAC5C,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,uDAAuD;IACvD,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,uDAAuD;IACvD,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,4EAA4E;IAC5E,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,sCAAsC;IACtC,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yBAAyB;IACzB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,kCAAkC;IAClC,MAAM,CAAC,EAAE,UAAU,CAAC;IACpB,iCAAiC;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,aAAa,CAAC;CACzB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8CG;AACH,eAAO,MAAM,UAAU,EAAG,YAAqB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.css.cjs","names":[],"sources":["../../../src/inputs/calendar/calendar.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-focus));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-focus));\n --_day-outside-opacity: var(--calendar-day-outside-opacity, 0.35);\n --_bg: var(--calendar-bg, var(--color-canvas));\n --_border-color: var(--calendar-border-color, var(--color-contrast-200));\n --_radius: var(--calendar-radius, var(--rounded-xl));\n\n display: inline-block;\n }\n\n :host([fullwidth]) {\n display: block;\n }\n\n :host([color='secondary']) {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-base));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-base));\n }\n\n /* ── Root panel ──────────────────────────────────────────────────────────── */\n\n .calendar {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 18rem;\n padding: var(--size-3);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n box-shadow: var(--calendar-shadow, var(--shadow-md));\n }\n\n :host([fullwidth]) .calendar {\n min-width: 0;\n }\n\n /* ── Header ──────────────────────────────────────────────────────────────── */\n\n .cal-header {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n justify-content: space-between;\n padding-block-end: var(--size-2);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n .nav-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n height: var(--size-8);\n padding: 0;\n color: var(--color-contrast-600);\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n .nav-btn:hover:not(:disabled) {\n color: var(--color-contrast-900);\n background: var(--color-contrast-300);\n }\n\n .nav-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .nav-btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n .cal-label-btn {\n flex: 1;\n padding: var(--size-1) var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-900);\n text-align: center;\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition: background var(--transition-fast);\n }\n\n .cal-label-btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .cal-label-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-label-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .cal-label-month,\n .cal-label-year {\n display: inline-block;\n }\n\n .cal-label-sep {\n display: inline-block;\n padding-inline: var(--size-1);\n font-weight: var(--font-normal);\n color: var(--color-contrast-400);\n }\n\n /* ── Grid base ───────────────────────────────────────────────────────────── */\n\n [hidden] {\n display: none;\n }\n\n .cal-grid {\n display: flex;\n flex-direction: column;\n gap: var(--size-0-5);\n }\n\n .cal-grid-days {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: var(--size-0-5);\n\n /* Reserve max height (6 week rows + 1 header) so the panel never shrinks\n on 5-week months or when switching to month/year view. */\n min-height: calc(7 * var(--size-10) + 6 * var(--size-0-5));\n }\n\n /* role=\"row\" wrappers exist for ARIA grid structure only — `display: contents`\n removes them from layout so their children still participate directly in the\n parent's CSS grid tracks. */\n .cal-grid [role='row'] {\n display: contents;\n }\n\n .cal-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--text-sm);\n cursor: pointer;\n outline: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* ── Column headers ──────────────────────────────────────────────────────── */\n\n .cal-cell-head {\n height: var(--size-8);\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--color-contrast-500);\n cursor: default;\n }\n\n /* ── Day cells ───────────────────────────────────────────────────────────── */\n\n .cal-cell-day {\n flex-direction: column;\n gap: var(--size-0-5);\n min-width: 0;\n height: var(--size-10);\n overflow: hidden;\n color: var(--color-contrast-800);\n }\n\n .cal-cell-day:hover:not([data-disabled]) {\n color: var(--color-contrast-900);\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-day:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-today] {\n font-weight: var(--font-semibold);\n color: var(--_day-today-color);\n }\n\n .cal-cell-day[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-outside] {\n opacity: var(--_day-outside-opacity);\n }\n\n .cal-cell-day[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Event dots (normal mode) ────────────────────────────────────────────── */\n\n .cal-dots {\n display: flex;\n gap: 2px;\n align-items: center;\n justify-content: center;\n margin-block-start: var(--size-0-5);\n }\n\n .cal-dot {\n --badge-bg: var(--_day-selected-bg);\n --badge-border-color: var(--_day-selected-bg);\n }\n\n .cal-dot-overflow {\n font-size: 8px;\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-500);\n }\n\n /* ── Month / year grids ──────────────────────────────────────────────────── */\n\n .cal-grid-months,\n .cal-grid-years {\n /* 4-column grid — same width as cal-grid-days, natural height. */\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--size-1);\n }\n\n .cal-cell-month,\n .cal-cell-year {\n height: var(--size-10);\n font-size: var(--text-sm);\n color: var(--color-contrast-800);\n cursor: pointer;\n border-radius: var(--rounded-md);\n }\n\n .cal-cell-month:hover:not([data-disabled]),\n .cal-cell-year:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-month:focus-visible,\n .cal-cell-year:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-selected],\n .cal-cell-year[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-disabled],\n .cal-cell-year[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Expanded variant ────────────────────────────────────────────────────── */\n\n :host([expanded]) {\n display: block;\n width: 100%;\n }\n\n :host([expanded]) .calendar {\n width: 100%;\n min-width: 0;\n padding: 0;\n overflow: hidden;\n }\n\n :host([expanded]) .cal-header {\n padding: var(--size-3) var(--size-4);\n }\n\n :host([expanded]) .cal-label-btn {\n font-size: var(--text-base);\n }\n\n :host([expanded]) .cal-grid {\n gap: 0;\n }\n\n :host([expanded]) .cal-grid-days {\n gap: 0;\n border-block-start: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell {\n border-radius: 0;\n }\n\n :host([expanded]) .cal-cell-head {\n height: var(--size-9);\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell-day {\n position: relative;\n flex-direction: column;\n gap: 0;\n align-items: flex-start;\n justify-content: flex-start;\n height: auto;\n min-height: var(--calendar-expanded-cell-height, var(--size-28));\n aspect-ratio: auto;\n padding: var(--size-2);\n font-size: var(--text-sm);\n vertical-align: top;\n border-block-end: var(--border) solid var(--_border-color);\n border-inline-end: var(--border) solid var(--_border-color);\n }\n\n /* Remove right border on last column */\n :host([expanded]) .cal-cell-day:nth-child(7n) {\n border-inline-end: none;\n }\n\n :host([expanded]) .cal-cell-day:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 6%, transparent);\n }\n\n /* Selected day — circle around the number only */\n :host([expanded]) .cal-cell-day[data-selected] {\n color: inherit;\n background: transparent;\n }\n\n :host([expanded]) .cal-cell-day[data-selected]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-selected-bg);\n border-radius: var(--rounded-full);\n }\n\n /* Today — circle in accent colour */\n :host([expanded]) .cal-cell-day[data-today] {\n font-weight: inherit;\n color: inherit;\n }\n\n :host([expanded]) .cal-cell-day[data-today]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-today-color);\n border-radius: var(--rounded-full);\n }\n\n /* When both today AND selected — selected wins */\n :host([expanded]) .cal-cell-day[data-today][data-selected]::before {\n background: var(--_day-selected-bg);\n }\n\n /* ── Expanded event pills ────────────────────────────────────────────────── */\n\n /* Push events below the day-number circle row */\n :host([expanded]) .cal-events {\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 100%;\n margin-block-start: var(--size-4);\n overflow: hidden;\n }\n\n :host([expanded]) .cal-event-pill {\n --badge-max-width: 100%;\n max-width: 100%;\n }\n\n :host([expanded]) .cal-event-pill-overflow {\n padding-inline: var(--size-1);\n font-size: 10px;\n font-weight: var(--font-semibold);\n color: var(--color-contrast-500);\n }\n\n /* Dots are hidden in expanded mode — pills take over */\n :host([expanded]) .cal-dots {\n display: none;\n }\n\n :host([expanded]) .cal-cell-day[data-outside] {\n background: color-mix(in oklch, var(--color-contrast-900) 2%, transparent);\n }\n\n /* Expanded month / year grids */\n :host([expanded]) .cal-grid-months,\n :host([expanded]) .cal-grid-years {\n gap: var(--size-2);\n min-height: 0;\n padding: var(--size-4);\n }\n\n :host([expanded]) .cal-cell-month,\n :host([expanded]) .cal-cell-year {\n min-height: var(--size-16);\n font-size: var(--text-base);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--rounded-lg);\n }\n\n :host([expanded]) .cal-cell-month[data-selected],\n :host([expanded]) .cal-cell-year[data-selected] {\n border-color: transparent;\n }\n\n /* ── Disabled host ───────────────────────────────────────────────────────── */\n\n :host(.is-disabled) .calendar {\n pointer-events: none;\n opacity: 0.6;\n }\n\n /* ── Reduced motion ──────────────────────────────────────────────────────── */\n\n @media (prefers-reduced-motion: reduce) {\n .nav-btn,\n .cal-label-btn,\n .cal-cell {\n transition: none;\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"calendar.css.cjs","names":[],"sources":["../../../src/inputs/calendar/calendar.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-focus));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-focus));\n --_day-outside-opacity: var(--calendar-day-outside-opacity, 0.35);\n --_bg: var(--calendar-bg, var(--color-canvas));\n --_border-color: var(--calendar-border-color, var(--color-contrast-200));\n --_radius: var(--calendar-radius, var(--rounded-xl));\n\n display: inline-block;\n }\n\n :host([fullwidth]) {\n display: block;\n }\n\n :host([color='secondary']) {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-base));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-base));\n }\n\n /* ── Root panel ──────────────────────────────────────────────────────────── */\n\n .calendar {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 18rem;\n padding: var(--size-3);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n box-shadow: var(--calendar-shadow, var(--shadow-md));\n }\n\n :host([fullwidth]) .calendar {\n min-width: 0;\n }\n\n /* ── Header ──────────────────────────────────────────────────────────────── */\n\n .cal-header {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n justify-content: space-between;\n padding-block-end: var(--size-2);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n .nav-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n height: var(--size-8);\n padding: 0;\n color: var(--color-contrast-600);\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n .nav-btn:hover:not(:disabled) {\n color: var(--color-contrast-900);\n background: var(--color-contrast-300);\n }\n\n .nav-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .nav-btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n .cal-label-btn {\n flex: 1;\n padding: var(--size-1) var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-900);\n text-align: center;\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition: background var(--transition-fast);\n }\n\n .cal-label-btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .cal-label-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-label-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .cal-label-month,\n .cal-label-year {\n display: inline-block;\n }\n\n .cal-label-sep {\n display: inline-block;\n padding-inline: var(--size-1);\n font-weight: var(--font-normal);\n color: var(--color-contrast-400);\n }\n\n /* ── Grid base ───────────────────────────────────────────────────────────── */\n\n [hidden] {\n display: none;\n }\n\n .cal-grid {\n display: flex;\n flex-direction: column;\n gap: var(--size-0-5);\n }\n\n .cal-grid-days {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: var(--size-0-5);\n\n /* Reserve max height (6 week rows + 1 header) so the panel never shrinks\n on 5-week months or when switching to month/year view. */\n min-height: calc(7 * var(--size-10) + 6 * var(--size-0-5));\n }\n\n /* role=\"row\" wrappers exist for ARIA grid structure only: `display: contents`\n removes them from layout so their children still participate directly in the\n parent's CSS grid tracks. */\n .cal-grid [role='row'] {\n display: contents;\n }\n\n .cal-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--text-sm);\n cursor: pointer;\n outline: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* ── Column headers ──────────────────────────────────────────────────────── */\n\n .cal-cell-head {\n height: var(--size-8);\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--color-contrast-500);\n cursor: default;\n }\n\n /* ── Day cells ───────────────────────────────────────────────────────────── */\n\n .cal-cell-day {\n flex-direction: column;\n gap: var(--size-0-5);\n min-width: 0;\n height: var(--size-10);\n overflow: hidden;\n color: var(--color-contrast-800);\n }\n\n .cal-cell-day:hover:not([data-disabled]) {\n color: var(--color-contrast-900);\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-day:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-today] {\n font-weight: var(--font-semibold);\n color: var(--_day-today-color);\n }\n\n .cal-cell-day[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-outside] {\n opacity: var(--_day-outside-opacity);\n }\n\n .cal-cell-day[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Event dots (normal mode) ────────────────────────────────────────────── */\n\n .cal-dots {\n display: flex;\n gap: 2px;\n align-items: center;\n justify-content: center;\n margin-block-start: var(--size-0-5);\n }\n\n .cal-dot {\n --badge-bg: var(--_day-selected-bg);\n --badge-border-color: var(--_day-selected-bg);\n }\n\n .cal-dot-overflow {\n font-size: 8px;\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-500);\n }\n\n /* ── Month / year grids ──────────────────────────────────────────────────── */\n\n .cal-grid-months,\n .cal-grid-years {\n /* 4-column grid: same width as cal-grid-days, natural height. */\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--size-1);\n }\n\n .cal-cell-month,\n .cal-cell-year {\n height: var(--size-10);\n font-size: var(--text-sm);\n color: var(--color-contrast-800);\n cursor: pointer;\n border-radius: var(--rounded-md);\n }\n\n .cal-cell-month:hover:not([data-disabled]),\n .cal-cell-year:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-month:focus-visible,\n .cal-cell-year:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-selected],\n .cal-cell-year[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-disabled],\n .cal-cell-year[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Expanded variant ────────────────────────────────────────────────────── */\n\n :host([expanded]) {\n display: block;\n width: 100%;\n }\n\n :host([expanded]) .calendar {\n width: 100%;\n min-width: 0;\n padding: 0;\n overflow: hidden;\n }\n\n :host([expanded]) .cal-header {\n padding: var(--size-3) var(--size-4);\n }\n\n :host([expanded]) .cal-label-btn {\n font-size: var(--text-base);\n }\n\n :host([expanded]) .cal-grid {\n gap: 0;\n }\n\n :host([expanded]) .cal-grid-days {\n gap: 0;\n border-block-start: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell {\n border-radius: 0;\n }\n\n :host([expanded]) .cal-cell-head {\n height: var(--size-9);\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell-day {\n position: relative;\n flex-direction: column;\n gap: 0;\n align-items: flex-start;\n justify-content: flex-start;\n height: auto;\n min-height: var(--calendar-expanded-cell-height, var(--size-28));\n aspect-ratio: auto;\n padding: var(--size-2);\n font-size: var(--text-sm);\n vertical-align: top;\n border-block-end: var(--border) solid var(--_border-color);\n border-inline-end: var(--border) solid var(--_border-color);\n }\n\n /* Remove right border on last column */\n :host([expanded]) .cal-cell-day:nth-child(7n) {\n border-inline-end: none;\n }\n\n :host([expanded]) .cal-cell-day:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 6%, transparent);\n }\n\n /* Selected day: circle around the number only */\n :host([expanded]) .cal-cell-day[data-selected] {\n color: inherit;\n background: transparent;\n }\n\n :host([expanded]) .cal-cell-day[data-selected]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-selected-bg);\n border-radius: var(--rounded-full);\n }\n\n /* Today: circle in accent colour */\n :host([expanded]) .cal-cell-day[data-today] {\n font-weight: inherit;\n color: inherit;\n }\n\n :host([expanded]) .cal-cell-day[data-today]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-today-color);\n border-radius: var(--rounded-full);\n }\n\n /* When both today AND selected: selected wins */\n :host([expanded]) .cal-cell-day[data-today][data-selected]::before {\n background: var(--_day-selected-bg);\n }\n\n /* ── Expanded event pills ────────────────────────────────────────────────── */\n\n /* Push events below the day-number circle row */\n :host([expanded]) .cal-events {\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 100%;\n margin-block-start: var(--size-4);\n overflow: hidden;\n }\n\n :host([expanded]) .cal-event-pill {\n --badge-max-width: 100%;\n max-width: 100%;\n }\n\n :host([expanded]) .cal-event-pill-overflow {\n padding-inline: var(--size-1);\n font-size: 10px;\n font-weight: var(--font-semibold);\n color: var(--color-contrast-500);\n }\n\n /* Dots are hidden in expanded mode: pills take over */\n :host([expanded]) .cal-dots {\n display: none;\n }\n\n :host([expanded]) .cal-cell-day[data-outside] {\n background: color-mix(in oklch, var(--color-contrast-900) 2%, transparent);\n }\n\n /* Expanded month / year grids */\n :host([expanded]) .cal-grid-months,\n :host([expanded]) .cal-grid-years {\n gap: var(--size-2);\n min-height: 0;\n padding: var(--size-4);\n }\n\n :host([expanded]) .cal-cell-month,\n :host([expanded]) .cal-cell-year {\n min-height: var(--size-16);\n font-size: var(--text-base);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--rounded-lg);\n }\n\n :host([expanded]) .cal-cell-month[data-selected],\n :host([expanded]) .cal-cell-year[data-selected] {\n border-color: transparent;\n }\n\n /* ── Disabled host ───────────────────────────────────────────────────────── */\n\n :host(.is-disabled) .calendar {\n pointer-events: none;\n opacity: 0.6;\n }\n\n /* ── Reduced motion ──────────────────────────────────────────────────────── */\n\n @media (prefers-reduced-motion: reduce) {\n .nav-btn,\n .cal-label-btn,\n .cal-cell {\n transition: none;\n }\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar.css.js","names":[],"sources":["../../../src/inputs/calendar/calendar.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-focus));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-focus));\n --_day-outside-opacity: var(--calendar-day-outside-opacity, 0.35);\n --_bg: var(--calendar-bg, var(--color-canvas));\n --_border-color: var(--calendar-border-color, var(--color-contrast-200));\n --_radius: var(--calendar-radius, var(--rounded-xl));\n\n display: inline-block;\n }\n\n :host([fullwidth]) {\n display: block;\n }\n\n :host([color='secondary']) {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-base));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-base));\n }\n\n /* ── Root panel ──────────────────────────────────────────────────────────── */\n\n .calendar {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 18rem;\n padding: var(--size-3);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n box-shadow: var(--calendar-shadow, var(--shadow-md));\n }\n\n :host([fullwidth]) .calendar {\n min-width: 0;\n }\n\n /* ── Header ──────────────────────────────────────────────────────────────── */\n\n .cal-header {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n justify-content: space-between;\n padding-block-end: var(--size-2);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n .nav-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n height: var(--size-8);\n padding: 0;\n color: var(--color-contrast-600);\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n .nav-btn:hover:not(:disabled) {\n color: var(--color-contrast-900);\n background: var(--color-contrast-300);\n }\n\n .nav-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .nav-btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n .cal-label-btn {\n flex: 1;\n padding: var(--size-1) var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-900);\n text-align: center;\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition: background var(--transition-fast);\n }\n\n .cal-label-btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .cal-label-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-label-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .cal-label-month,\n .cal-label-year {\n display: inline-block;\n }\n\n .cal-label-sep {\n display: inline-block;\n padding-inline: var(--size-1);\n font-weight: var(--font-normal);\n color: var(--color-contrast-400);\n }\n\n /* ── Grid base ───────────────────────────────────────────────────────────── */\n\n [hidden] {\n display: none;\n }\n\n .cal-grid {\n display: flex;\n flex-direction: column;\n gap: var(--size-0-5);\n }\n\n .cal-grid-days {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: var(--size-0-5);\n\n /* Reserve max height (6 week rows + 1 header) so the panel never shrinks\n on 5-week months or when switching to month/year view. */\n min-height: calc(7 * var(--size-10) + 6 * var(--size-0-5));\n }\n\n /* role=\"row\" wrappers exist for ARIA grid structure only — `display: contents`\n removes them from layout so their children still participate directly in the\n parent's CSS grid tracks. */\n .cal-grid [role='row'] {\n display: contents;\n }\n\n .cal-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--text-sm);\n cursor: pointer;\n outline: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* ── Column headers ──────────────────────────────────────────────────────── */\n\n .cal-cell-head {\n height: var(--size-8);\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--color-contrast-500);\n cursor: default;\n }\n\n /* ── Day cells ───────────────────────────────────────────────────────────── */\n\n .cal-cell-day {\n flex-direction: column;\n gap: var(--size-0-5);\n min-width: 0;\n height: var(--size-10);\n overflow: hidden;\n color: var(--color-contrast-800);\n }\n\n .cal-cell-day:hover:not([data-disabled]) {\n color: var(--color-contrast-900);\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-day:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-today] {\n font-weight: var(--font-semibold);\n color: var(--_day-today-color);\n }\n\n .cal-cell-day[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-outside] {\n opacity: var(--_day-outside-opacity);\n }\n\n .cal-cell-day[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Event dots (normal mode) ────────────────────────────────────────────── */\n\n .cal-dots {\n display: flex;\n gap: 2px;\n align-items: center;\n justify-content: center;\n margin-block-start: var(--size-0-5);\n }\n\n .cal-dot {\n --badge-bg: var(--_day-selected-bg);\n --badge-border-color: var(--_day-selected-bg);\n }\n\n .cal-dot-overflow {\n font-size: 8px;\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-500);\n }\n\n /* ── Month / year grids ──────────────────────────────────────────────────── */\n\n .cal-grid-months,\n .cal-grid-years {\n /* 4-column grid — same width as cal-grid-days, natural height. */\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--size-1);\n }\n\n .cal-cell-month,\n .cal-cell-year {\n height: var(--size-10);\n font-size: var(--text-sm);\n color: var(--color-contrast-800);\n cursor: pointer;\n border-radius: var(--rounded-md);\n }\n\n .cal-cell-month:hover:not([data-disabled]),\n .cal-cell-year:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-month:focus-visible,\n .cal-cell-year:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-selected],\n .cal-cell-year[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-disabled],\n .cal-cell-year[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Expanded variant ────────────────────────────────────────────────────── */\n\n :host([expanded]) {\n display: block;\n width: 100%;\n }\n\n :host([expanded]) .calendar {\n width: 100%;\n min-width: 0;\n padding: 0;\n overflow: hidden;\n }\n\n :host([expanded]) .cal-header {\n padding: var(--size-3) var(--size-4);\n }\n\n :host([expanded]) .cal-label-btn {\n font-size: var(--text-base);\n }\n\n :host([expanded]) .cal-grid {\n gap: 0;\n }\n\n :host([expanded]) .cal-grid-days {\n gap: 0;\n border-block-start: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell {\n border-radius: 0;\n }\n\n :host([expanded]) .cal-cell-head {\n height: var(--size-9);\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell-day {\n position: relative;\n flex-direction: column;\n gap: 0;\n align-items: flex-start;\n justify-content: flex-start;\n height: auto;\n min-height: var(--calendar-expanded-cell-height, var(--size-28));\n aspect-ratio: auto;\n padding: var(--size-2);\n font-size: var(--text-sm);\n vertical-align: top;\n border-block-end: var(--border) solid var(--_border-color);\n border-inline-end: var(--border) solid var(--_border-color);\n }\n\n /* Remove right border on last column */\n :host([expanded]) .cal-cell-day:nth-child(7n) {\n border-inline-end: none;\n }\n\n :host([expanded]) .cal-cell-day:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 6%, transparent);\n }\n\n /* Selected day — circle around the number only */\n :host([expanded]) .cal-cell-day[data-selected] {\n color: inherit;\n background: transparent;\n }\n\n :host([expanded]) .cal-cell-day[data-selected]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-selected-bg);\n border-radius: var(--rounded-full);\n }\n\n /* Today — circle in accent colour */\n :host([expanded]) .cal-cell-day[data-today] {\n font-weight: inherit;\n color: inherit;\n }\n\n :host([expanded]) .cal-cell-day[data-today]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-today-color);\n border-radius: var(--rounded-full);\n }\n\n /* When both today AND selected — selected wins */\n :host([expanded]) .cal-cell-day[data-today][data-selected]::before {\n background: var(--_day-selected-bg);\n }\n\n /* ── Expanded event pills ────────────────────────────────────────────────── */\n\n /* Push events below the day-number circle row */\n :host([expanded]) .cal-events {\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 100%;\n margin-block-start: var(--size-4);\n overflow: hidden;\n }\n\n :host([expanded]) .cal-event-pill {\n --badge-max-width: 100%;\n max-width: 100%;\n }\n\n :host([expanded]) .cal-event-pill-overflow {\n padding-inline: var(--size-1);\n font-size: 10px;\n font-weight: var(--font-semibold);\n color: var(--color-contrast-500);\n }\n\n /* Dots are hidden in expanded mode — pills take over */\n :host([expanded]) .cal-dots {\n display: none;\n }\n\n :host([expanded]) .cal-cell-day[data-outside] {\n background: color-mix(in oklch, var(--color-contrast-900) 2%, transparent);\n }\n\n /* Expanded month / year grids */\n :host([expanded]) .cal-grid-months,\n :host([expanded]) .cal-grid-years {\n gap: var(--size-2);\n min-height: 0;\n padding: var(--size-4);\n }\n\n :host([expanded]) .cal-cell-month,\n :host([expanded]) .cal-cell-year {\n min-height: var(--size-16);\n font-size: var(--text-base);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--rounded-lg);\n }\n\n :host([expanded]) .cal-cell-month[data-selected],\n :host([expanded]) .cal-cell-year[data-selected] {\n border-color: transparent;\n }\n\n /* ── Disabled host ───────────────────────────────────────────────────────── */\n\n :host(.is-disabled) .calendar {\n pointer-events: none;\n opacity: 0.6;\n }\n\n /* ── Reduced motion ──────────────────────────────────────────────────────── */\n\n @media (prefers-reduced-motion: reduce) {\n .nav-btn,\n .cal-label-btn,\n .cal-cell {\n transition: none;\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"calendar.css.js","names":[],"sources":["../../../src/inputs/calendar/calendar.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-focus));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-focus));\n --_day-outside-opacity: var(--calendar-day-outside-opacity, 0.35);\n --_bg: var(--calendar-bg, var(--color-canvas));\n --_border-color: var(--calendar-border-color, var(--color-contrast-200));\n --_radius: var(--calendar-radius, var(--rounded-xl));\n\n display: inline-block;\n }\n\n :host([fullwidth]) {\n display: block;\n }\n\n :host([color='secondary']) {\n --_day-selected-bg: var(--calendar-day-selected-bg, var(--_theme-base));\n --_day-today-color: var(--calendar-day-today-color, var(--_theme-base));\n }\n\n /* ── Root panel ──────────────────────────────────────────────────────────── */\n\n .calendar {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 18rem;\n padding: var(--size-3);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n box-shadow: var(--calendar-shadow, var(--shadow-md));\n }\n\n :host([fullwidth]) .calendar {\n min-width: 0;\n }\n\n /* ── Header ──────────────────────────────────────────────────────────────── */\n\n .cal-header {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n justify-content: space-between;\n padding-block-end: var(--size-2);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n .nav-btn {\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n height: var(--size-8);\n padding: 0;\n color: var(--color-contrast-600);\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n .nav-btn:hover:not(:disabled) {\n color: var(--color-contrast-900);\n background: var(--color-contrast-300);\n }\n\n .nav-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .nav-btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n .cal-label-btn {\n flex: 1;\n padding: var(--size-1) var(--size-2);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-900);\n text-align: center;\n cursor: pointer;\n outline: none;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition: background var(--transition-fast);\n }\n\n .cal-label-btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .cal-label-btn:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-label-btn:disabled {\n cursor: not-allowed;\n opacity: 0.5;\n }\n\n .cal-label-month,\n .cal-label-year {\n display: inline-block;\n }\n\n .cal-label-sep {\n display: inline-block;\n padding-inline: var(--size-1);\n font-weight: var(--font-normal);\n color: var(--color-contrast-400);\n }\n\n /* ── Grid base ───────────────────────────────────────────────────────────── */\n\n [hidden] {\n display: none;\n }\n\n .cal-grid {\n display: flex;\n flex-direction: column;\n gap: var(--size-0-5);\n }\n\n .cal-grid-days {\n display: grid;\n grid-template-columns: repeat(7, minmax(0, 1fr));\n gap: var(--size-0-5);\n\n /* Reserve max height (6 week rows + 1 header) so the panel never shrinks\n on 5-week months or when switching to month/year view. */\n min-height: calc(7 * var(--size-10) + 6 * var(--size-0-5));\n }\n\n /* role=\"row\" wrappers exist for ARIA grid structure only: `display: contents`\n removes them from layout so their children still participate directly in the\n parent's CSS grid tracks. */\n .cal-grid [role='row'] {\n display: contents;\n }\n\n .cal-cell {\n display: flex;\n align-items: center;\n justify-content: center;\n font-size: var(--text-sm);\n cursor: pointer;\n outline: none;\n border-radius: var(--rounded-md);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* ── Column headers ──────────────────────────────────────────────────────── */\n\n .cal-cell-head {\n height: var(--size-8);\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n color: var(--color-contrast-500);\n cursor: default;\n }\n\n /* ── Day cells ───────────────────────────────────────────────────────────── */\n\n .cal-cell-day {\n flex-direction: column;\n gap: var(--size-0-5);\n min-width: 0;\n height: var(--size-10);\n overflow: hidden;\n color: var(--color-contrast-800);\n }\n\n .cal-cell-day:hover:not([data-disabled]) {\n color: var(--color-contrast-900);\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-day:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-today] {\n font-weight: var(--font-semibold);\n color: var(--_day-today-color);\n }\n\n .cal-cell-day[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-day[data-outside] {\n opacity: var(--_day-outside-opacity);\n }\n\n .cal-cell-day[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Event dots (normal mode) ────────────────────────────────────────────── */\n\n .cal-dots {\n display: flex;\n gap: 2px;\n align-items: center;\n justify-content: center;\n margin-block-start: var(--size-0-5);\n }\n\n .cal-dot {\n --badge-bg: var(--_day-selected-bg);\n --badge-border-color: var(--_day-selected-bg);\n }\n\n .cal-dot-overflow {\n font-size: 8px;\n font-weight: var(--font-semibold);\n line-height: 1;\n color: var(--color-contrast-500);\n }\n\n /* ── Month / year grids ──────────────────────────────────────────────────── */\n\n .cal-grid-months,\n .cal-grid-years {\n /* 4-column grid: same width as cal-grid-days, natural height. */\n display: grid;\n grid-template-columns: repeat(4, minmax(0, 1fr));\n gap: var(--size-1);\n }\n\n .cal-cell-month,\n .cal-cell-year {\n height: var(--size-10);\n font-size: var(--text-sm);\n color: var(--color-contrast-800);\n cursor: pointer;\n border-radius: var(--rounded-md);\n }\n\n .cal-cell-month:hover:not([data-disabled]),\n .cal-cell-year:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 15%, transparent);\n }\n\n .cal-cell-month:focus-visible,\n .cal-cell-year:focus-visible {\n box-shadow: 0 0 0 2px var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-selected],\n .cal-cell-year[data-selected] {\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n background: var(--_day-selected-bg);\n }\n\n .cal-cell-month[data-disabled],\n .cal-cell-year[data-disabled] {\n pointer-events: none;\n cursor: not-allowed;\n opacity: 0.3;\n }\n\n /* ── Expanded variant ────────────────────────────────────────────────────── */\n\n :host([expanded]) {\n display: block;\n width: 100%;\n }\n\n :host([expanded]) .calendar {\n width: 100%;\n min-width: 0;\n padding: 0;\n overflow: hidden;\n }\n\n :host([expanded]) .cal-header {\n padding: var(--size-3) var(--size-4);\n }\n\n :host([expanded]) .cal-label-btn {\n font-size: var(--text-base);\n }\n\n :host([expanded]) .cal-grid {\n gap: 0;\n }\n\n :host([expanded]) .cal-grid-days {\n gap: 0;\n border-block-start: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell {\n border-radius: 0;\n }\n\n :host([expanded]) .cal-cell-head {\n height: var(--size-9);\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n text-transform: uppercase;\n letter-spacing: 0.05em;\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n :host([expanded]) .cal-cell-day {\n position: relative;\n flex-direction: column;\n gap: 0;\n align-items: flex-start;\n justify-content: flex-start;\n height: auto;\n min-height: var(--calendar-expanded-cell-height, var(--size-28));\n aspect-ratio: auto;\n padding: var(--size-2);\n font-size: var(--text-sm);\n vertical-align: top;\n border-block-end: var(--border) solid var(--_border-color);\n border-inline-end: var(--border) solid var(--_border-color);\n }\n\n /* Remove right border on last column */\n :host([expanded]) .cal-cell-day:nth-child(7n) {\n border-inline-end: none;\n }\n\n :host([expanded]) .cal-cell-day:hover:not([data-disabled]) {\n background: color-mix(in oklch, var(--_day-selected-bg) 6%, transparent);\n }\n\n /* Selected day: circle around the number only */\n :host([expanded]) .cal-cell-day[data-selected] {\n color: inherit;\n background: transparent;\n }\n\n :host([expanded]) .cal-cell-day[data-selected]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-selected-bg);\n border-radius: var(--rounded-full);\n }\n\n /* Today: circle in accent colour */\n :host([expanded]) .cal-cell-day[data-today] {\n font-weight: inherit;\n color: inherit;\n }\n\n :host([expanded]) .cal-cell-day[data-today]::before {\n position: absolute;\n top: var(--size-1-5);\n left: var(--size-1-5);\n display: flex;\n align-items: center;\n justify-content: center;\n width: var(--size-7);\n height: var(--size-7);\n font-size: var(--text-sm);\n font-weight: var(--font-semibold);\n color: var(--color-white, #fff);\n content: attr(data-day);\n background: var(--_day-today-color);\n border-radius: var(--rounded-full);\n }\n\n /* When both today AND selected: selected wins */\n :host([expanded]) .cal-cell-day[data-today][data-selected]::before {\n background: var(--_day-selected-bg);\n }\n\n /* ── Expanded event pills ────────────────────────────────────────────────── */\n\n /* Push events below the day-number circle row */\n :host([expanded]) .cal-events {\n display: flex;\n flex-direction: column;\n gap: 2px;\n width: 100%;\n margin-block-start: var(--size-4);\n overflow: hidden;\n }\n\n :host([expanded]) .cal-event-pill {\n --badge-max-width: 100%;\n max-width: 100%;\n }\n\n :host([expanded]) .cal-event-pill-overflow {\n padding-inline: var(--size-1);\n font-size: 10px;\n font-weight: var(--font-semibold);\n color: var(--color-contrast-500);\n }\n\n /* Dots are hidden in expanded mode: pills take over */\n :host([expanded]) .cal-dots {\n display: none;\n }\n\n :host([expanded]) .cal-cell-day[data-outside] {\n background: color-mix(in oklch, var(--color-contrast-900) 2%, transparent);\n }\n\n /* Expanded month / year grids */\n :host([expanded]) .cal-grid-months,\n :host([expanded]) .cal-grid-years {\n gap: var(--size-2);\n min-height: 0;\n padding: var(--size-4);\n }\n\n :host([expanded]) .cal-cell-month,\n :host([expanded]) .cal-cell-year {\n min-height: var(--size-16);\n font-size: var(--text-base);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--rounded-lg);\n }\n\n :host([expanded]) .cal-cell-month[data-selected],\n :host([expanded]) .cal-cell-year[data-selected] {\n border-color: transparent;\n }\n\n /* ── Disabled host ───────────────────────────────────────────────────────── */\n\n :host(.is-disabled) .calendar {\n pointer-events: none;\n opacity: 0.6;\n }\n\n /* ── Reduced motion ──────────────────────────────────────────────────────── */\n\n @media (prefers-reduced-motion: reduce) {\n .nav-btn,\n .cal-label-btn,\n .cal-cell {\n transition: none;\n }\n }\n}\n"],"mappings":""}
@@ -19,7 +19,7 @@ export type CalendarEvent = {
19
19
  * Any CSS color value for the event dot / pill.
20
20
  * Defaults to the component's theme color when omitted.
21
21
  * Rendered via `styleMap()`, which strips `;`/`{`/`}` so the value can't break out of
22
- * its custom-property declaration — it is not a full CSS-color syntax validator, so an
22
+ * its custom-property declaration: it is not a full CSS-color syntax validator, so an
23
23
  * invalid (but injection-safe) value may still render as no color.
24
24
  */
25
25
  color?: string;
@@ -50,7 +50,7 @@ export type OreCalendarProps = {
50
50
  */
51
51
  events?: CalendarEvent[];
52
52
  /**
53
- * Expanded layout — large cells with top-aligned day numbers suitable
53
+ * Expanded layout: large cells with top-aligned day numbers suitable
54
54
  * for a full-page calendar app view.
55
55
  */
56
56
  expanded?: boolean;
@@ -10,7 +10,7 @@ export type CheckboxGroupContext = {
10
10
  };
11
11
  export declare const CHECKBOX_GROUP_CTX: import("@vielzeug/ore").InjectionKey<CheckboxGroupContext>;
12
12
  export type OreCheckboxGroupProps = {
13
- /** Theme color — propagated to all child ore-checkbox elements */
13
+ /** Theme color: propagated to all child ore-checkbox elements */
14
14
  color?: ThemeColor;
15
15
  /** Disable all checkboxes in the group */
16
16
  disabled?: boolean;
@@ -26,7 +26,7 @@ export type OreCheckboxGroupProps = {
26
26
  orientation?: 'vertical' | 'horizontal';
27
27
  /** Mark the group as required */
28
28
  required?: boolean;
29
- /** Size — propagated to all child ore-checkbox elements */
29
+ /** Size: propagated to all child ore-checkbox elements */
30
30
  size?: ComponentSize;
31
31
  /** Comma-separated list of currently checked values */
32
32
  values?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../../../src/inputs/checkbox-group/checkbox-group.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,KAAK,QAAQ,EAAU,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,4DAA8D,CAAC;AAI9F,MAAM,MAAM,qBAAqB,GAAG;IAClC,kEAAkE;IAClE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,2DAA2D;IAC3D,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,kBAAkB,EAAG,oBAA6B,CAAC"}
1
+ {"version":3,"file":"checkbox-group.d.ts","sourceRoot":"","sources":["../../../src/inputs/checkbox-group/checkbox-group.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAY,KAAK,QAAQ,EAAU,MAAM,kBAAkB,CAAC;AACnE,OAAO,EACL,KAAK,kBAAkB,EAKxB,MAAM,YAAY,CAAC;AAGpB,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAK7D,MAAM,MAAM,oBAAoB,GAAG;IACjC,KAAK,EAAE,QAAQ,CAAC,UAAU,GAAG,SAAS,CAAC,CAAC;IACxC,QAAQ,EAAE,QAAQ,CAAC,OAAO,CAAC,CAAC;IAC5B,IAAI,EAAE,QAAQ,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;IAC1C,MAAM,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,KAAK,KAAK,IAAI,CAAC;IACvD,MAAM,EAAE,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;CAC5B,CAAC;AAEF,eAAO,MAAM,kBAAkB,4DAA8D,CAAC;AAI9F,MAAM,MAAM,qBAAqB,GAAG;IAClC,iEAAiE;IACjE,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0CAA0C;IAC1C,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0CAA0C;IAC1C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,wCAAwC;IACxC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,mEAAmE;IACnE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,WAAW,CAAC,EAAE,UAAU,GAAG,YAAY,CAAC;IACxC,iCAAiC;IACjC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,uDAAuD;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,MAAM,EAAE,kBAAkB,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoCG;AACH,eAAO,MAAM,kBAAkB,EAAG,oBAA6B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.css.cjs","names":[],"sources":["../../../src/inputs/combobox/combobox.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_dropdown-bg: var(--combobox-dropdown-bg, var(--color-canvas));\n --_dropdown-border-color: var(--combobox-dropdown-border-color, var(--color-contrast-200));\n --_option-hover-bg: var(--combobox-option-hover-bg, var(--color-contrast-100));\n --_option-focus-bg: var(\n --combobox-option-focus-bg,\n color-mix(in oklch, var(--_theme-base) 12%, var(--color-contrast-100))\n );\n --_option-selected-bg: var(\n --combobox-option-selected-bg,\n color-mix(in oklch, var(--_theme-base) 10%, var(--color-contrast-50))\n );\n --_option-selected-focus-bg: var(\n --combobox-option-selected-focus-bg,\n color-mix(in oklch, var(--_theme-base) 20%, var(--color-contrast-100))\n );\n\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n min-width: var(--combobox-min-width, 12rem);\n }\n\n :host([fullwidth]) {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n /* .sr-only is provided by the shared srOnlyMixin (see styles: [...] in combobox.ts) */\n\n /* ore-input cursor override so the field still feels like a text input */\n .trigger::part(input) {\n cursor: text;\n }\n\n /* Allow the field to grow vertically when chips wrap to multiple rows. */\n .trigger::part(field) {\n height: auto;\n min-height: var(--input-height, var(--size-10));\n }\n\n /* Wrap chips + input across rows; suffix stays on same row as input.\n Only row-gap is set here — column spacing between chips is handled\n via margin on ore-chip so the empty prefix slot adds no extra offset\n (which would shift the input rightward vs the inset label). */\n .trigger::part(input-row) {\n flex-wrap: wrap;\n row-gap: var(--size-1);\n align-items: center;\n }\n\n /* ========================================\n Chips (prefix slot)\n ======================================== */\n\n /* display:contents removes chips-row from the flex layout so chips\n become direct flex items of input-row — no extra gap before input\n when there are no chips (fixes inset-label alignment). */\n .chips-row {\n display: contents;\n }\n\n /* chips-list is also display:contents so individual ore-chip elements\n are the direct flex items, wrapping inline with the search input. */\n .chips-list {\n display: contents;\n }\n\n /* Trailing space after each chip covers both inter-chip spacing and\n the gap between the last chip and the search input. */\n ore-chip {\n margin-inline-end: var(--size-1);\n }\n\n /* ========================================\n Suffix: clear button + loader + chevron\n ======================================== */\n\n .combobox-suffix {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-1);\n align-items: center;\n }\n\n .clear-btn {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n padding: 0;\n color: var(--color-contrast-400);\n cursor: pointer;\n background: none;\n border: 0;\n }\n\n .clear-btn[hidden] {\n display: none;\n }\n\n .clear-btn:hover {\n color: var(--color-contrast-600);\n }\n\n .combobox-suffix-end {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n color: var(--color-contrast-500);\n }\n\n .chevron {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n transition: var(--_motion-transition, transform var(--transition-fast));\n }\n\n :host([open]) .chevron {\n transform: rotate(180deg);\n }\n\n .loader {\n display: none;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n border: 2px solid currentcolor;\n border-inline-end-color: transparent;\n border-radius: 50%;\n animation: var(--_motion-animation, spin var(--transition-loader) infinite);\n }\n\n /* Keyframe must live in shadow DOM — @keyframes don't inherit across shadow roots */\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n :host([loading]) .loader {\n display: inline-block;\n }\n\n /* ========================================\n Dropdown / Listbox\n ======================================== */\n\n .dropdown {\n position: fixed;\n inset: 0 auto auto 0;\n z-index: calc(var(--z-popover, 1000) + 1);\n box-sizing: border-box;\n max-height: min(16rem, 50dvh);\n padding: var(--size-1);\n margin: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n text-align: start;\n pointer-events: none;\n scrollbar-width: thin;\n background: var(--_dropdown-bg);\n border: var(--border) solid var(--_dropdown-border-color);\n border-radius: var(--_radius);\n box-shadow: var(--shadow-lg);\n opacity: 0;\n backdrop-filter: blur(var(--blur-md));\n transform: translateY(var(--overlay-enter-translate-y));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-fast),\n display var(--transition-fast) allow-discrete\n );\n }\n\n .dropdown[data-open] {\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: translateY(var(--overlay-enter-translate-y));\n }\n }\n\n /* ========================================\n Option Items\n ======================================== */\n\n .option {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n line-height: var(--leading-normal);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* Truncate long labels so options always stay single-line (fixed virtualizer row height). */\n .option > span:not(.option-check, .option-icon) {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .disabled-reason {\n flex: 0 1 45%;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--text-xs);\n color: var(--text-color-tertiary);\n text-align: end;\n white-space: nowrap;\n }\n\n .option:hover:not([data-disabled]) {\n background: var(--_option-hover-bg);\n }\n\n .option[data-focused]:not([data-disabled]) {\n color: var(--_theme-base);\n background: var(--_option-focus-bg);\n }\n\n .option[data-selected],\n .option[aria-selected='true'] {\n font-weight: var(--font-medium);\n color: var(--_theme-base);\n background: var(--_option-selected-bg);\n }\n\n .option[data-selected][data-focused],\n .option[aria-selected='true'][data-focused] {\n background: var(--_option-selected-focus-bg);\n }\n\n .option[data-disabled] {\n color: var(--color-contrast-500);\n cursor: not-allowed;\n }\n\n .option-check {\n display: inline-flex;\n flex-shrink: 0;\n margin-inline-start: auto;\n color: var(--_theme-base);\n opacity: 0;\n transition: opacity var(--transition-fast);\n }\n\n .option[data-selected] .option-check,\n .option[aria-selected='true'] .option-check {\n opacity: 1;\n }\n\n .no-results,\n .no-results-create,\n .dropdown-loading {\n padding: var(--size-3) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--color-contrast-400);\n text-align: center;\n }\n\n .no-results-create {\n display: flex;\n gap: var(--size-1-5);\n align-items: center;\n width: 100%;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--_theme-content, var(--color-primary-content));\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: var(--rounded-sm);\n }\n\n .no-results-create:hover,\n .no-results-create[data-focused] {\n background: color-mix(in oklch, var(--_theme-base, var(--color-primary)) 10%, transparent);\n }\n\n /* ========================================\n Option Icon\n ======================================== */\n\n .option-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n }\n\n /* ========================================\n Slotted option elements (hidden data nodes)\n ======================================== */\n\n ::slotted(ore-combobox-option) {\n display: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"combobox.css.cjs","names":[],"sources":["../../../src/inputs/combobox/combobox.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_dropdown-bg: var(--combobox-dropdown-bg, var(--color-canvas));\n --_dropdown-border-color: var(--combobox-dropdown-border-color, var(--color-contrast-200));\n --_option-hover-bg: var(--combobox-option-hover-bg, var(--color-contrast-100));\n --_option-focus-bg: var(\n --combobox-option-focus-bg,\n color-mix(in oklch, var(--_theme-base) 12%, var(--color-contrast-100))\n );\n --_option-selected-bg: var(\n --combobox-option-selected-bg,\n color-mix(in oklch, var(--_theme-base) 10%, var(--color-contrast-50))\n );\n --_option-selected-focus-bg: var(\n --combobox-option-selected-focus-bg,\n color-mix(in oklch, var(--_theme-base) 20%, var(--color-contrast-100))\n );\n\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n min-width: var(--combobox-min-width, 12rem);\n }\n\n :host([fullwidth]) {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n /* .sr-only is provided by the shared srOnlyMixin (see styles: [...] in combobox.ts) */\n\n /* ore-input cursor override so the field still feels like a text input */\n .trigger::part(input) {\n cursor: text;\n }\n\n /* Allow the field to grow vertically when chips wrap to multiple rows. */\n .trigger::part(field) {\n height: auto;\n min-height: var(--input-height, var(--size-10));\n }\n\n /* Wrap chips + input across rows; suffix stays on same row as input.\n Only row-gap is set here: column spacing between chips is handled\n via margin on ore-chip so the empty prefix slot adds no extra offset\n (which would shift the input rightward vs the inset label). */\n .trigger::part(input-row) {\n flex-wrap: wrap;\n row-gap: var(--size-1);\n align-items: center;\n }\n\n /* ========================================\n Chips (prefix slot)\n ======================================== */\n\n /* display:contents removes chips-row from the flex layout so chips\n become direct flex items of input-row: no extra gap before input\n when there are no chips (fixes inset-label alignment). */\n .chips-row {\n display: contents;\n }\n\n /* chips-list is also display:contents so individual ore-chip elements\n are the direct flex items, wrapping inline with the search input. */\n .chips-list {\n display: contents;\n }\n\n /* Trailing space after each chip covers both inter-chip spacing and\n the gap between the last chip and the search input. */\n ore-chip {\n margin-inline-end: var(--size-1);\n }\n\n /* ========================================\n Suffix: clear button + loader + chevron\n ======================================== */\n\n .combobox-suffix {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-1);\n align-items: center;\n }\n\n .clear-btn {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n padding: 0;\n color: var(--color-contrast-400);\n cursor: pointer;\n background: none;\n border: 0;\n }\n\n .clear-btn[hidden] {\n display: none;\n }\n\n .clear-btn:hover {\n color: var(--color-contrast-600);\n }\n\n .combobox-suffix-end {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n color: var(--color-contrast-500);\n }\n\n .chevron {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n transition: var(--_motion-transition, transform var(--transition-fast));\n }\n\n :host([open]) .chevron {\n transform: rotate(180deg);\n }\n\n .loader {\n display: none;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n border: 2px solid currentcolor;\n border-inline-end-color: transparent;\n border-radius: 50%;\n animation: var(--_motion-animation, spin var(--transition-loader) infinite);\n }\n\n /* Keyframe must live in shadow DOM: @keyframes don't inherit across shadow roots */\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n :host([loading]) .loader {\n display: inline-block;\n }\n\n /* ========================================\n Dropdown / Listbox\n ======================================== */\n\n .dropdown {\n position: fixed;\n inset: 0 auto auto 0;\n z-index: calc(var(--z-popover, 1000) + 1);\n box-sizing: border-box;\n max-height: min(16rem, 50dvh);\n padding: var(--size-1);\n margin: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n text-align: start;\n pointer-events: none;\n scrollbar-width: thin;\n background: var(--_dropdown-bg);\n border: var(--border) solid var(--_dropdown-border-color);\n border-radius: var(--_radius);\n box-shadow: var(--shadow-lg);\n opacity: 0;\n backdrop-filter: blur(var(--blur-md));\n transform: translateY(var(--overlay-enter-translate-y));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-fast),\n display var(--transition-fast) allow-discrete\n );\n }\n\n .dropdown[data-open] {\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: translateY(var(--overlay-enter-translate-y));\n }\n }\n\n /* ========================================\n Option Items\n ======================================== */\n\n .option {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n line-height: var(--leading-normal);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* Truncate long labels so options always stay single-line (fixed virtualizer row height). */\n .option > span:not(.option-check, .option-icon) {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .disabled-reason {\n flex: 0 1 45%;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--text-xs);\n color: var(--text-color-tertiary);\n text-align: end;\n white-space: nowrap;\n }\n\n .option:hover:not([data-disabled]) {\n background: var(--_option-hover-bg);\n }\n\n .option[data-focused]:not([data-disabled]) {\n color: var(--_theme-base);\n background: var(--_option-focus-bg);\n }\n\n .option[data-selected],\n .option[aria-selected='true'] {\n font-weight: var(--font-medium);\n color: var(--_theme-base);\n background: var(--_option-selected-bg);\n }\n\n .option[data-selected][data-focused],\n .option[aria-selected='true'][data-focused] {\n background: var(--_option-selected-focus-bg);\n }\n\n .option[data-disabled] {\n color: var(--color-contrast-500);\n cursor: not-allowed;\n }\n\n .option-check {\n display: inline-flex;\n flex-shrink: 0;\n margin-inline-start: auto;\n color: var(--_theme-base);\n opacity: 0;\n transition: opacity var(--transition-fast);\n }\n\n .option[data-selected] .option-check,\n .option[aria-selected='true'] .option-check {\n opacity: 1;\n }\n\n .no-results,\n .no-results-create,\n .dropdown-loading {\n padding: var(--size-3) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--color-contrast-400);\n text-align: center;\n }\n\n .no-results-create {\n display: flex;\n gap: var(--size-1-5);\n align-items: center;\n width: 100%;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--_theme-content, var(--color-primary-content));\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: var(--rounded-sm);\n }\n\n .no-results-create:hover,\n .no-results-create[data-focused] {\n background: color-mix(in oklch, var(--_theme-base, var(--color-primary)) 10%, transparent);\n }\n\n /* ========================================\n Option Icon\n ======================================== */\n\n .option-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n }\n\n /* ========================================\n Slotted option elements (hidden data nodes)\n ======================================== */\n\n ::slotted(ore-combobox-option) {\n display: none;\n }\n}\n"],"mappings":""}
@@ -1 +1 @@
1
- {"version":3,"file":"combobox.css.js","names":[],"sources":["../../../src/inputs/combobox/combobox.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_dropdown-bg: var(--combobox-dropdown-bg, var(--color-canvas));\n --_dropdown-border-color: var(--combobox-dropdown-border-color, var(--color-contrast-200));\n --_option-hover-bg: var(--combobox-option-hover-bg, var(--color-contrast-100));\n --_option-focus-bg: var(\n --combobox-option-focus-bg,\n color-mix(in oklch, var(--_theme-base) 12%, var(--color-contrast-100))\n );\n --_option-selected-bg: var(\n --combobox-option-selected-bg,\n color-mix(in oklch, var(--_theme-base) 10%, var(--color-contrast-50))\n );\n --_option-selected-focus-bg: var(\n --combobox-option-selected-focus-bg,\n color-mix(in oklch, var(--_theme-base) 20%, var(--color-contrast-100))\n );\n\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n min-width: var(--combobox-min-width, 12rem);\n }\n\n :host([fullwidth]) {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n /* .sr-only is provided by the shared srOnlyMixin (see styles: [...] in combobox.ts) */\n\n /* ore-input cursor override so the field still feels like a text input */\n .trigger::part(input) {\n cursor: text;\n }\n\n /* Allow the field to grow vertically when chips wrap to multiple rows. */\n .trigger::part(field) {\n height: auto;\n min-height: var(--input-height, var(--size-10));\n }\n\n /* Wrap chips + input across rows; suffix stays on same row as input.\n Only row-gap is set here — column spacing between chips is handled\n via margin on ore-chip so the empty prefix slot adds no extra offset\n (which would shift the input rightward vs the inset label). */\n .trigger::part(input-row) {\n flex-wrap: wrap;\n row-gap: var(--size-1);\n align-items: center;\n }\n\n /* ========================================\n Chips (prefix slot)\n ======================================== */\n\n /* display:contents removes chips-row from the flex layout so chips\n become direct flex items of input-row — no extra gap before input\n when there are no chips (fixes inset-label alignment). */\n .chips-row {\n display: contents;\n }\n\n /* chips-list is also display:contents so individual ore-chip elements\n are the direct flex items, wrapping inline with the search input. */\n .chips-list {\n display: contents;\n }\n\n /* Trailing space after each chip covers both inter-chip spacing and\n the gap between the last chip and the search input. */\n ore-chip {\n margin-inline-end: var(--size-1);\n }\n\n /* ========================================\n Suffix: clear button + loader + chevron\n ======================================== */\n\n .combobox-suffix {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-1);\n align-items: center;\n }\n\n .clear-btn {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n padding: 0;\n color: var(--color-contrast-400);\n cursor: pointer;\n background: none;\n border: 0;\n }\n\n .clear-btn[hidden] {\n display: none;\n }\n\n .clear-btn:hover {\n color: var(--color-contrast-600);\n }\n\n .combobox-suffix-end {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n color: var(--color-contrast-500);\n }\n\n .chevron {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n transition: var(--_motion-transition, transform var(--transition-fast));\n }\n\n :host([open]) .chevron {\n transform: rotate(180deg);\n }\n\n .loader {\n display: none;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n border: 2px solid currentcolor;\n border-inline-end-color: transparent;\n border-radius: 50%;\n animation: var(--_motion-animation, spin var(--transition-loader) infinite);\n }\n\n /* Keyframe must live in shadow DOM — @keyframes don't inherit across shadow roots */\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n :host([loading]) .loader {\n display: inline-block;\n }\n\n /* ========================================\n Dropdown / Listbox\n ======================================== */\n\n .dropdown {\n position: fixed;\n inset: 0 auto auto 0;\n z-index: calc(var(--z-popover, 1000) + 1);\n box-sizing: border-box;\n max-height: min(16rem, 50dvh);\n padding: var(--size-1);\n margin: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n text-align: start;\n pointer-events: none;\n scrollbar-width: thin;\n background: var(--_dropdown-bg);\n border: var(--border) solid var(--_dropdown-border-color);\n border-radius: var(--_radius);\n box-shadow: var(--shadow-lg);\n opacity: 0;\n backdrop-filter: blur(var(--blur-md));\n transform: translateY(var(--overlay-enter-translate-y));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-fast),\n display var(--transition-fast) allow-discrete\n );\n }\n\n .dropdown[data-open] {\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: translateY(var(--overlay-enter-translate-y));\n }\n }\n\n /* ========================================\n Option Items\n ======================================== */\n\n .option {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n line-height: var(--leading-normal);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* Truncate long labels so options always stay single-line (fixed virtualizer row height). */\n .option > span:not(.option-check, .option-icon) {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .disabled-reason {\n flex: 0 1 45%;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--text-xs);\n color: var(--text-color-tertiary);\n text-align: end;\n white-space: nowrap;\n }\n\n .option:hover:not([data-disabled]) {\n background: var(--_option-hover-bg);\n }\n\n .option[data-focused]:not([data-disabled]) {\n color: var(--_theme-base);\n background: var(--_option-focus-bg);\n }\n\n .option[data-selected],\n .option[aria-selected='true'] {\n font-weight: var(--font-medium);\n color: var(--_theme-base);\n background: var(--_option-selected-bg);\n }\n\n .option[data-selected][data-focused],\n .option[aria-selected='true'][data-focused] {\n background: var(--_option-selected-focus-bg);\n }\n\n .option[data-disabled] {\n color: var(--color-contrast-500);\n cursor: not-allowed;\n }\n\n .option-check {\n display: inline-flex;\n flex-shrink: 0;\n margin-inline-start: auto;\n color: var(--_theme-base);\n opacity: 0;\n transition: opacity var(--transition-fast);\n }\n\n .option[data-selected] .option-check,\n .option[aria-selected='true'] .option-check {\n opacity: 1;\n }\n\n .no-results,\n .no-results-create,\n .dropdown-loading {\n padding: var(--size-3) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--color-contrast-400);\n text-align: center;\n }\n\n .no-results-create {\n display: flex;\n gap: var(--size-1-5);\n align-items: center;\n width: 100%;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--_theme-content, var(--color-primary-content));\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: var(--rounded-sm);\n }\n\n .no-results-create:hover,\n .no-results-create[data-focused] {\n background: color-mix(in oklch, var(--_theme-base, var(--color-primary)) 10%, transparent);\n }\n\n /* ========================================\n Option Icon\n ======================================== */\n\n .option-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n }\n\n /* ========================================\n Slotted option elements (hidden data nodes)\n ======================================== */\n\n ::slotted(ore-combobox-option) {\n display: none;\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"combobox.css.js","names":[],"sources":["../../../src/inputs/combobox/combobox.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_dropdown-bg: var(--combobox-dropdown-bg, var(--color-canvas));\n --_dropdown-border-color: var(--combobox-dropdown-border-color, var(--color-contrast-200));\n --_option-hover-bg: var(--combobox-option-hover-bg, var(--color-contrast-100));\n --_option-focus-bg: var(\n --combobox-option-focus-bg,\n color-mix(in oklch, var(--_theme-base) 12%, var(--color-contrast-100))\n );\n --_option-selected-bg: var(\n --combobox-option-selected-bg,\n color-mix(in oklch, var(--_theme-base) 10%, var(--color-contrast-50))\n );\n --_option-selected-focus-bg: var(\n --combobox-option-selected-focus-bg,\n color-mix(in oklch, var(--_theme-base) 20%, var(--color-contrast-100))\n );\n\n display: inline-flex;\n flex-direction: column;\n align-items: stretch;\n min-width: var(--combobox-min-width, 12rem);\n }\n\n :host([fullwidth]) {\n display: block;\n width: 100%;\n min-width: 0;\n }\n\n /* .sr-only is provided by the shared srOnlyMixin (see styles: [...] in combobox.ts) */\n\n /* ore-input cursor override so the field still feels like a text input */\n .trigger::part(input) {\n cursor: text;\n }\n\n /* Allow the field to grow vertically when chips wrap to multiple rows. */\n .trigger::part(field) {\n height: auto;\n min-height: var(--input-height, var(--size-10));\n }\n\n /* Wrap chips + input across rows; suffix stays on same row as input.\n Only row-gap is set here: column spacing between chips is handled\n via margin on ore-chip so the empty prefix slot adds no extra offset\n (which would shift the input rightward vs the inset label). */\n .trigger::part(input-row) {\n flex-wrap: wrap;\n row-gap: var(--size-1);\n align-items: center;\n }\n\n /* ========================================\n Chips (prefix slot)\n ======================================== */\n\n /* display:contents removes chips-row from the flex layout so chips\n become direct flex items of input-row: no extra gap before input\n when there are no chips (fixes inset-label alignment). */\n .chips-row {\n display: contents;\n }\n\n /* chips-list is also display:contents so individual ore-chip elements\n are the direct flex items, wrapping inline with the search input. */\n .chips-list {\n display: contents;\n }\n\n /* Trailing space after each chip covers both inter-chip spacing and\n the gap between the last chip and the search input. */\n ore-chip {\n margin-inline-end: var(--size-1);\n }\n\n /* ========================================\n Suffix: clear button + loader + chevron\n ======================================== */\n\n .combobox-suffix {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-1);\n align-items: center;\n }\n\n .clear-btn {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n padding: 0;\n color: var(--color-contrast-400);\n cursor: pointer;\n background: none;\n border: 0;\n }\n\n .clear-btn[hidden] {\n display: none;\n }\n\n .clear-btn:hover {\n color: var(--color-contrast-600);\n }\n\n .combobox-suffix-end {\n display: flex;\n gap: var(--size-1);\n align-items: center;\n color: var(--color-contrast-500);\n }\n\n .chevron {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n transition: var(--_motion-transition, transform var(--transition-fast));\n }\n\n :host([open]) .chevron {\n transform: rotate(180deg);\n }\n\n .loader {\n display: none;\n flex-shrink: 0;\n width: 1em;\n height: 1em;\n border: 2px solid currentcolor;\n border-inline-end-color: transparent;\n border-radius: 50%;\n animation: var(--_motion-animation, spin var(--transition-loader) infinite);\n }\n\n /* Keyframe must live in shadow DOM: @keyframes don't inherit across shadow roots */\n @keyframes spin {\n to {\n transform: rotate(360deg);\n }\n }\n\n :host([loading]) .loader {\n display: inline-block;\n }\n\n /* ========================================\n Dropdown / Listbox\n ======================================== */\n\n .dropdown {\n position: fixed;\n inset: 0 auto auto 0;\n z-index: calc(var(--z-popover, 1000) + 1);\n box-sizing: border-box;\n max-height: min(16rem, 50dvh);\n padding: var(--size-1);\n margin: 0;\n overflow-y: auto;\n overscroll-behavior: contain;\n text-align: start;\n pointer-events: none;\n scrollbar-width: thin;\n background: var(--_dropdown-bg);\n border: var(--border) solid var(--_dropdown-border-color);\n border-radius: var(--_radius);\n box-shadow: var(--shadow-lg);\n opacity: 0;\n backdrop-filter: blur(var(--blur-md));\n transform: translateY(var(--overlay-enter-translate-y));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-fast),\n display var(--transition-fast) allow-discrete\n );\n }\n\n .dropdown[data-open] {\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: translateY(var(--overlay-enter-translate-y));\n }\n }\n\n /* ========================================\n Option Items\n ======================================== */\n\n .option {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n line-height: var(--leading-normal);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition:\n background var(--transition-fast),\n color var(--transition-fast);\n }\n\n /* Truncate long labels so options always stay single-line (fixed virtualizer row height). */\n .option > span:not(.option-check, .option-icon) {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n .disabled-reason {\n flex: 0 1 45%;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--text-xs);\n color: var(--text-color-tertiary);\n text-align: end;\n white-space: nowrap;\n }\n\n .option:hover:not([data-disabled]) {\n background: var(--_option-hover-bg);\n }\n\n .option[data-focused]:not([data-disabled]) {\n color: var(--_theme-base);\n background: var(--_option-focus-bg);\n }\n\n .option[data-selected],\n .option[aria-selected='true'] {\n font-weight: var(--font-medium);\n color: var(--_theme-base);\n background: var(--_option-selected-bg);\n }\n\n .option[data-selected][data-focused],\n .option[aria-selected='true'][data-focused] {\n background: var(--_option-selected-focus-bg);\n }\n\n .option[data-disabled] {\n color: var(--color-contrast-500);\n cursor: not-allowed;\n }\n\n .option-check {\n display: inline-flex;\n flex-shrink: 0;\n margin-inline-start: auto;\n color: var(--_theme-base);\n opacity: 0;\n transition: opacity var(--transition-fast);\n }\n\n .option[data-selected] .option-check,\n .option[aria-selected='true'] .option-check {\n opacity: 1;\n }\n\n .no-results,\n .no-results-create,\n .dropdown-loading {\n padding: var(--size-3) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--color-contrast-400);\n text-align: center;\n }\n\n .no-results-create {\n display: flex;\n gap: var(--size-1-5);\n align-items: center;\n width: 100%;\n padding: var(--size-1-5) var(--size-2-5);\n font-size: var(--text-sm);\n color: var(--_theme-content, var(--color-primary-content));\n text-align: start;\n cursor: pointer;\n background: none;\n border: 0;\n border-radius: var(--rounded-sm);\n }\n\n .no-results-create:hover,\n .no-results-create[data-focused] {\n background: color-mix(in oklch, var(--_theme-base, var(--color-primary)) 10%, transparent);\n }\n\n /* ========================================\n Option Icon\n ======================================== */\n\n .option-icon {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n }\n\n /* ========================================\n Slotted option elements (hidden data nodes)\n ======================================== */\n\n ::slotted(ore-combobox-option) {\n display: none;\n }\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e=`@layer refine.base{:host{--_bg:var(--counter-bg,var(--color-contrast-100));--_border-color:var(--counter-border-color,var(--color-divider));--_radius:var(--counter-radius,var(--rounded-lg));--_gap:var(--counter-gap,var(--size-3));--_button-size:var(--counter-button-size,var(--size-11));--_value-size:var(--counter-value-size,var(--text-2xl));--_icon-size:var(--size-5);--_slot-icon-size:var(--counter-icon-size,var(--size-6));--_label-size:var(--text-sm);--_accent:var(--_theme-base,var(--text-color-heading));box-sizing:border-box;vertical-align:middle;min-width:0;display:inline-flex}:host([size=sm]){--_button-size:var(--counter-button-size,var(--size-10));--_value-size:var(--counter-value-size,var(--text-xl));--_icon-size:var(--size-4);--_slot-icon-size:var(--counter-icon-size,var(--size-5));--_label-size:var(--text-xs)}:host([size=lg]){--_button-size:var(--counter-button-size,var(--size-12));--_value-size:var(--counter-value-size,var(--text-3xl));--_icon-size:var(--size-6);--_slot-icon-size:var(--counter-icon-size,var(--size-8));--_label-size:var(--text-base)}.counter{box-sizing:border-box;gap:var(--size-2);min-width:0;padding:var(--size-3);color:var(--text-color-body);background:var(--_bg);border:var(--border) solid var(--_border-color);border-radius:var(--_radius);flex-direction:column;flex:1;display:flex}.header{gap:var(--size-2);align-items:center;min-width:0;display:flex}::slotted([slot=icon]){width:var(--_slot-icon-size);height:var(--_slot-icon-size);color:var(--_accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.label{text-overflow:ellipsis;min-width:0;font-size:var(--_label-size);font-weight:var(--font-medium);line-height:var(--leading-none);color:var(--text-color-heading);white-space:nowrap;overflow:hidden}.controls{gap:var(--_gap);justify-content:space-between;align-items:center;display:flex}.btn{all:unset;box-sizing:border-box;width:var(--_button-size);min-width:var(--_touch-target,var(--_button-size));height:var(--_button-size);min-height:var(--_touch-target,var(--_button-size));color:var(--text-color-heading);touch-action:manipulation;cursor:pointer;background:var(--color-contrast-200);border-radius:var(--_radius);transition:background var(--transition-fast), transform .12s var(--ease-spring);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-contrast-300)}.btn:active:not(:disabled){transform:scale(.94)}.btn:disabled{cursor:not-allowed;opacity:.4}:host([variant=frost]) .label,:host([variant=frost]) .value,:host([variant=frost]) .btn,:host([variant=frost]) ::slotted([slot=icon]){color:inherit}:host([variant=frost]) .btn{background:color-mix(in oklch, currentColor 18%, transparent)}:host([variant=frost]) .btn:hover:not(:disabled){background:color-mix(in oklch, currentColor 30%, transparent)}:host([variant=frost]) .btn-large{border-color:color-mix(in oklch, currentColor 45%, transparent);background:0 0}:host([variant=frost]) .hint{color:color-mix(in oklch, currentColor 80%, transparent)}.btn[hidden]{display:none}.btn-large{font-size:var(--_label-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;color:var(--text-color-secondary);border:var(--border) solid var(--_border-color);background:0 0}.btn-large:hover:not(:disabled){color:var(--text-color-heading);background:var(--color-contrast-200)}.value{min-width:2ch;font-size:var(--_value-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-none);color:var(--_accent);text-align:center;touch-action:manipulation;border-radius:var(--rounded-md);flex:1}.value:focus-visible{outline:2px solid var(--_theme-focus,var(--color-primary));outline-offset:2px}:host([data-bump]) .value{animation:var(--_motion-animation,counter-bump .2s var(--ease-spring))}@keyframes counter-bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.hint,::slotted([slot=hint]){font-size:var(--text-xs);line-height:var(--leading-snug,1.35);color:var(--text-color-tertiary)}.hint[hidden]{display:none}:host([readonly]) .controls{justify-content:flex-start}:host([readonly]) .value{flex:0}:host([readonly]) .value:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:left}:host([readonly]) .value:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:right}}:host([variant=frost][color]) .counter{background:color-mix(in oklch, var(--_theme-base) 78%, transparent)}`;exports.default=e;
1
+ var e=`@layer refine.base{:host{--_bg:var(--counter-bg,var(--color-contrast-100));--_border-color:var(--counter-border-color,var(--color-divider));--_radius:var(--counter-radius,var(--rounded-lg));--_gap:var(--counter-gap,var(--size-3));--_button-size:var(--counter-button-size,var(--size-11));--_value-size:var(--counter-value-size,var(--text-2xl));--_icon-size:var(--size-5);--_slot-icon-size:var(--counter-icon-size,var(--size-6));--_label-size:var(--text-sm);--_accent:var(--_theme-base,var(--text-color-heading));box-sizing:border-box;vertical-align:middle;min-width:0;display:inline-flex}:host([size=sm]){--_button-size:var(--counter-button-size,var(--size-10));--_value-size:var(--counter-value-size,var(--text-xl));--_icon-size:var(--size-4);--_slot-icon-size:var(--counter-icon-size,var(--size-5));--_label-size:var(--text-xs)}:host([size=lg]){--_button-size:var(--counter-button-size,var(--size-12));--_value-size:var(--counter-value-size,var(--text-3xl));--_icon-size:var(--size-6);--_slot-icon-size:var(--counter-icon-size,var(--size-8));--_label-size:var(--text-base)}.counter{box-sizing:border-box;gap:var(--size-2);min-width:0;padding:var(--size-3);color:var(--text-color-body);background:var(--_bg);border:var(--border) solid var(--_border-color);border-radius:var(--_radius);flex-direction:column;flex:1;display:flex}.header{gap:var(--size-2);align-items:center;min-width:0;display:flex}::slotted([slot=icon]){width:var(--_slot-icon-size);height:var(--_slot-icon-size);color:var(--_accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.label{text-overflow:ellipsis;min-width:0;font-size:var(--_label-size);font-weight:var(--font-medium);line-height:var(--leading-none);color:var(--text-color-heading);white-space:nowrap;overflow:hidden}.header-end{flex-shrink:0;align-items:center;display:flex}.header-end:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:auto}.header-end:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.controls{gap:var(--_gap);justify-content:space-between;align-items:center;display:flex}.btn{all:unset;box-sizing:border-box;width:var(--_button-size);min-width:var(--_touch-target,var(--_button-size));height:var(--_button-size);min-height:var(--_touch-target,var(--_button-size));color:var(--text-color-heading);touch-action:manipulation;cursor:pointer;background:var(--color-contrast-200);border-radius:var(--_radius);transition:background var(--transition-fast), transform .12s var(--ease-spring);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-contrast-300)}.btn:active:not(:disabled){transform:scale(.94)}.btn:disabled{cursor:not-allowed;opacity:.4}:host([variant=frost]) .label,:host([variant=frost]) .value,:host([variant=frost]) .btn,:host([variant=frost]) ::slotted([slot=icon]){color:inherit}:host([variant=frost]) .btn{background:color-mix(in oklch, currentColor 18%, transparent)}:host([variant=frost]) .btn:hover:not(:disabled){background:color-mix(in oklch, currentColor 30%, transparent)}:host([variant=frost]) .btn-large{border-color:color-mix(in oklch, currentColor 45%, transparent);background:0 0}:host([variant=frost]) .hint{color:color-mix(in oklch, currentColor 80%, transparent)}.btn[hidden]{display:none}.btn-large{font-size:var(--_label-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;color:var(--text-color-secondary);border:var(--border) solid var(--_border-color);background:0 0}.btn-large:hover:not(:disabled){color:var(--text-color-heading);background:var(--color-contrast-200)}.value{min-width:2ch;font-size:var(--_value-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-none);color:var(--_accent);text-align:center;touch-action:manipulation;border-radius:var(--rounded-md);flex:1}.value:focus-visible{outline:2px solid var(--_theme-focus,var(--color-primary));outline-offset:2px}:host([data-bump]) .value{animation:var(--_motion-animation,counter-bump .2s var(--ease-spring))}@keyframes counter-bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.hint,::slotted([slot=hint]){font-size:var(--text-xs);line-height:var(--leading-snug,1.35);color:var(--text-color-tertiary)}.hint[hidden]{display:none}:host([readonly]) .controls{justify-content:flex-start}:host([readonly]) .value{flex:0}:host([readonly]) .value:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:left}:host([readonly]) .value:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:right}}:host([variant=frost][color]) .counter{background:color-mix(in oklch, var(--_theme-base) 78%, transparent)}`;exports.default=e;
2
2
  //# sourceMappingURL=counter.css.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"counter.css.cjs","names":[],"sources":["../../../src/inputs/counter/counter.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_bg: var(--counter-bg, var(--color-contrast-100));\n --_border-color: var(--counter-border-color, var(--color-divider));\n --_radius: var(--counter-radius, var(--rounded-lg));\n --_gap: var(--counter-gap, var(--size-3));\n --_button-size: var(--counter-button-size, var(--size-11));\n --_value-size: var(--counter-value-size, var(--text-2xl));\n --_icon-size: var(--size-5);\n --_slot-icon-size: var(--counter-icon-size, var(--size-6));\n --_label-size: var(--text-sm);\n --_accent: var(--_theme-base, var(--text-color-heading));\n box-sizing: border-box;\n\n display: inline-flex;\n min-width: 0;\n vertical-align: middle;\n }\n\n :host([size='sm']) {\n --_button-size: var(--counter-button-size, var(--size-10));\n --_value-size: var(--counter-value-size, var(--text-xl));\n --_icon-size: var(--size-4);\n --_slot-icon-size: var(--counter-icon-size, var(--size-5));\n --_label-size: var(--text-xs);\n }\n\n :host([size='lg']) {\n --_button-size: var(--counter-button-size, var(--size-12));\n --_value-size: var(--counter-value-size, var(--text-3xl));\n --_icon-size: var(--size-6);\n --_slot-icon-size: var(--counter-icon-size, var(--size-8));\n --_label-size: var(--text-base);\n }\n\n .counter {\n box-sizing: border-box;\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 0;\n padding: var(--size-3);\n color: var(--text-color-body);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n }\n\n .header {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n min-width: 0;\n }\n\n ::slotted([slot='icon']) {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_slot-icon-size);\n height: var(--_slot-icon-size);\n color: var(--_accent);\n }\n\n .label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_label-size);\n font-weight: var(--font-medium);\n line-height: var(--leading-none);\n color: var(--text-color-heading);\n white-space: nowrap;\n }\n\n .controls {\n display: flex;\n gap: var(--_gap);\n align-items: center;\n justify-content: space-between;\n }\n\n .btn {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_button-size);\n min-width: var(--_touch-target, var(--_button-size));\n height: var(--_button-size);\n min-height: var(--_touch-target, var(--_button-size));\n color: var(--text-color-heading);\n touch-action: manipulation;\n cursor: pointer;\n background: var(--color-contrast-200);\n border-radius: var(--_radius);\n transition:\n background var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .btn:active:not(:disabled) {\n transform: scale(0.94);\n }\n\n .btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n /* Frost: the variant mixin paints the surface with its own high-contrast theme ink.\n Keep every inner element on that same ink — the page-ink defaults (--text-color-*)\n and the base-tinted value were written for opaque panels and fail over artwork. */\n :host([variant='frost']) .label,\n :host([variant='frost']) .value,\n :host([variant='frost']) .btn {\n color: inherit;\n }\n\n :host([variant='frost']) ::slotted([slot='icon']) {\n color: inherit;\n }\n\n /* Solid button fills would read as opaque patches over the blur; glass tints instead. */\n :host([variant='frost']) .btn {\n background: color-mix(in oklch, currentColor 18%, transparent);\n }\n\n :host([variant='frost']) .btn:hover:not(:disabled) {\n background: color-mix(in oklch, currentColor 30%, transparent);\n }\n\n :host([variant='frost']) .btn-large {\n background: transparent;\n border-color: color-mix(in oklch, currentColor 45%, transparent);\n }\n\n :host([variant='frost']) .hint {\n color: color-mix(in oklch, currentColor 80%, transparent);\n }\n\n .btn[hidden] {\n display: none;\n }\n\n /* Quick-step buttons: same footprint, quieter surface, numeric label instead of an icon. */\n .btn-large {\n font-size: var(--_label-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n color: var(--text-color-secondary);\n background: transparent;\n border: var(--border) solid var(--_border-color);\n }\n\n .btn-large:hover:not(:disabled) {\n color: var(--text-color-heading);\n background: var(--color-contrast-200);\n }\n\n .value {\n flex: 1;\n min-width: 2ch;\n font-size: var(--_value-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n line-height: var(--leading-none);\n color: var(--_accent);\n text-align: center;\n touch-action: manipulation;\n border-radius: var(--rounded-md);\n }\n\n .value:focus-visible {\n outline: 2px solid var(--_theme-focus, var(--color-primary));\n outline-offset: 2px;\n }\n\n :host([data-bump]) .value {\n animation: var(--_motion-animation, counter-bump 200ms var(--ease-spring));\n }\n\n @keyframes counter-bump {\n 0% {\n transform: scale(1);\n }\n\n 40% {\n transform: scale(1.18);\n }\n\n 100% {\n transform: scale(1);\n }\n }\n\n .hint,\n ::slotted([slot='hint']) {\n font-size: var(--text-xs);\n line-height: var(--leading-snug, 1.35);\n color: var(--text-color-tertiary);\n }\n\n .hint[hidden] {\n display: none;\n }\n\n :host([readonly]) .controls {\n justify-content: flex-start;\n }\n\n :host([readonly]) .value {\n flex: 0;\n text-align: start;\n }\n}\n\n/* Unlayered on purpose: the frost surface comes from the unlayered frostVariantMixin, and\n layered rules can never beat unlayered ones. The mixin paints the tinted film at 50% alpha,\n which lets dark artwork drag the surface below the lightness the theme ink (--_theme-content)\n was designed against — dark ink on dark glass in dark mode, washed-out white in light mode.\n A denser film keeps the color's own lightness dominant, so the ink pairing both themes define\n (dark ink on the light-mode base, light ink on the dark-mode base) holds over any artwork,\n while the blur and saturation still read as glass. */\n:host([variant='frost'][color]) .counter {\n background: color-mix(in oklch, var(--_theme-base) 78%, transparent);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"counter.css.cjs","names":[],"sources":["../../../src/inputs/counter/counter.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_bg: var(--counter-bg, var(--color-contrast-100));\n --_border-color: var(--counter-border-color, var(--color-divider));\n --_radius: var(--counter-radius, var(--rounded-lg));\n --_gap: var(--counter-gap, var(--size-3));\n --_button-size: var(--counter-button-size, var(--size-11));\n --_value-size: var(--counter-value-size, var(--text-2xl));\n --_icon-size: var(--size-5);\n --_slot-icon-size: var(--counter-icon-size, var(--size-6));\n --_label-size: var(--text-sm);\n --_accent: var(--_theme-base, var(--text-color-heading));\n box-sizing: border-box;\n\n display: inline-flex;\n min-width: 0;\n vertical-align: middle;\n }\n\n :host([size='sm']) {\n --_button-size: var(--counter-button-size, var(--size-10));\n --_value-size: var(--counter-value-size, var(--text-xl));\n --_icon-size: var(--size-4);\n --_slot-icon-size: var(--counter-icon-size, var(--size-5));\n --_label-size: var(--text-xs);\n }\n\n :host([size='lg']) {\n --_button-size: var(--counter-button-size, var(--size-12));\n --_value-size: var(--counter-value-size, var(--text-3xl));\n --_icon-size: var(--size-6);\n --_slot-icon-size: var(--counter-icon-size, var(--size-8));\n --_label-size: var(--text-base);\n }\n\n .counter {\n box-sizing: border-box;\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 0;\n padding: var(--size-3);\n color: var(--text-color-body);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n }\n\n .header {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n min-width: 0;\n }\n\n ::slotted([slot='icon']) {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_slot-icon-size);\n height: var(--_slot-icon-size);\n color: var(--_accent);\n }\n\n .label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_label-size);\n font-weight: var(--font-medium);\n line-height: var(--leading-none);\n color: var(--text-color-heading);\n white-space: nowrap;\n }\n\n .header-end {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n margin-inline-start: auto;\n }\n\n .controls {\n display: flex;\n gap: var(--_gap);\n align-items: center;\n justify-content: space-between;\n }\n\n .btn {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_button-size);\n min-width: var(--_touch-target, var(--_button-size));\n height: var(--_button-size);\n min-height: var(--_touch-target, var(--_button-size));\n color: var(--text-color-heading);\n touch-action: manipulation;\n cursor: pointer;\n background: var(--color-contrast-200);\n border-radius: var(--_radius);\n transition:\n background var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .btn:active:not(:disabled) {\n transform: scale(0.94);\n }\n\n .btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n /* Frost: the variant mixin paints the surface with its own high-contrast theme ink.\n Keep every inner element on that same ink: the page-ink defaults (--text-color-*)\n and the base-tinted value were written for opaque panels and fail over artwork. */\n :host([variant='frost']) .label,\n :host([variant='frost']) .value,\n :host([variant='frost']) .btn {\n color: inherit;\n }\n\n :host([variant='frost']) ::slotted([slot='icon']) {\n color: inherit;\n }\n\n /* Solid button fills would read as opaque patches over the blur; glass tints instead. */\n :host([variant='frost']) .btn {\n background: color-mix(in oklch, currentColor 18%, transparent);\n }\n\n :host([variant='frost']) .btn:hover:not(:disabled) {\n background: color-mix(in oklch, currentColor 30%, transparent);\n }\n\n :host([variant='frost']) .btn-large {\n background: transparent;\n border-color: color-mix(in oklch, currentColor 45%, transparent);\n }\n\n :host([variant='frost']) .hint {\n color: color-mix(in oklch, currentColor 80%, transparent);\n }\n\n .btn[hidden] {\n display: none;\n }\n\n /* Quick-step buttons: same footprint, quieter surface, numeric label instead of an icon. */\n .btn-large {\n font-size: var(--_label-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n color: var(--text-color-secondary);\n background: transparent;\n border: var(--border) solid var(--_border-color);\n }\n\n .btn-large:hover:not(:disabled) {\n color: var(--text-color-heading);\n background: var(--color-contrast-200);\n }\n\n .value {\n flex: 1;\n min-width: 2ch;\n font-size: var(--_value-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n line-height: var(--leading-none);\n color: var(--_accent);\n text-align: center;\n touch-action: manipulation;\n border-radius: var(--rounded-md);\n }\n\n .value:focus-visible {\n outline: 2px solid var(--_theme-focus, var(--color-primary));\n outline-offset: 2px;\n }\n\n :host([data-bump]) .value {\n animation: var(--_motion-animation, counter-bump 200ms var(--ease-spring));\n }\n\n @keyframes counter-bump {\n 0% {\n transform: scale(1);\n }\n\n 40% {\n transform: scale(1.18);\n }\n\n 100% {\n transform: scale(1);\n }\n }\n\n .hint,\n ::slotted([slot='hint']) {\n font-size: var(--text-xs);\n line-height: var(--leading-snug, 1.35);\n color: var(--text-color-tertiary);\n }\n\n .hint[hidden] {\n display: none;\n }\n\n :host([readonly]) .controls {\n justify-content: flex-start;\n }\n\n :host([readonly]) .value {\n flex: 0;\n text-align: start;\n }\n}\n\n/* Unlayered on purpose: the frost surface comes from the unlayered frostVariantMixin, and\n layered rules can never beat unlayered ones. The mixin paints the tinted film at 50% alpha,\n which lets dark artwork drag the surface below the lightness the theme ink (--_theme-content)\n was designed against: dark ink on dark glass in dark mode, washed-out white in light mode.\n A denser film keeps the color's own lightness dominant, so the ink pairing both themes define\n (dark ink on the light-mode base, light ink on the dark-mode base) holds over any artwork,\n while the blur and saturation still read as glass. */\n:host([variant='frost'][color]) .counter {\n background: color-mix(in oklch, var(--_theme-base) 78%, transparent);\n}\n"],"mappings":""}
@@ -1,2 +1,2 @@
1
- var e=`@layer refine.base{:host{--_bg:var(--counter-bg,var(--color-contrast-100));--_border-color:var(--counter-border-color,var(--color-divider));--_radius:var(--counter-radius,var(--rounded-lg));--_gap:var(--counter-gap,var(--size-3));--_button-size:var(--counter-button-size,var(--size-11));--_value-size:var(--counter-value-size,var(--text-2xl));--_icon-size:var(--size-5);--_slot-icon-size:var(--counter-icon-size,var(--size-6));--_label-size:var(--text-sm);--_accent:var(--_theme-base,var(--text-color-heading));box-sizing:border-box;vertical-align:middle;min-width:0;display:inline-flex}:host([size=sm]){--_button-size:var(--counter-button-size,var(--size-10));--_value-size:var(--counter-value-size,var(--text-xl));--_icon-size:var(--size-4);--_slot-icon-size:var(--counter-icon-size,var(--size-5));--_label-size:var(--text-xs)}:host([size=lg]){--_button-size:var(--counter-button-size,var(--size-12));--_value-size:var(--counter-value-size,var(--text-3xl));--_icon-size:var(--size-6);--_slot-icon-size:var(--counter-icon-size,var(--size-8));--_label-size:var(--text-base)}.counter{box-sizing:border-box;gap:var(--size-2);min-width:0;padding:var(--size-3);color:var(--text-color-body);background:var(--_bg);border:var(--border) solid var(--_border-color);border-radius:var(--_radius);flex-direction:column;flex:1;display:flex}.header{gap:var(--size-2);align-items:center;min-width:0;display:flex}::slotted([slot=icon]){width:var(--_slot-icon-size);height:var(--_slot-icon-size);color:var(--_accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.label{text-overflow:ellipsis;min-width:0;font-size:var(--_label-size);font-weight:var(--font-medium);line-height:var(--leading-none);color:var(--text-color-heading);white-space:nowrap;overflow:hidden}.controls{gap:var(--_gap);justify-content:space-between;align-items:center;display:flex}.btn{all:unset;box-sizing:border-box;width:var(--_button-size);min-width:var(--_touch-target,var(--_button-size));height:var(--_button-size);min-height:var(--_touch-target,var(--_button-size));color:var(--text-color-heading);touch-action:manipulation;cursor:pointer;background:var(--color-contrast-200);border-radius:var(--_radius);transition:background var(--transition-fast), transform .12s var(--ease-spring);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-contrast-300)}.btn:active:not(:disabled){transform:scale(.94)}.btn:disabled{cursor:not-allowed;opacity:.4}:host([variant=frost]) .label,:host([variant=frost]) .value,:host([variant=frost]) .btn,:host([variant=frost]) ::slotted([slot=icon]){color:inherit}:host([variant=frost]) .btn{background:color-mix(in oklch, currentColor 18%, transparent)}:host([variant=frost]) .btn:hover:not(:disabled){background:color-mix(in oklch, currentColor 30%, transparent)}:host([variant=frost]) .btn-large{border-color:color-mix(in oklch, currentColor 45%, transparent);background:0 0}:host([variant=frost]) .hint{color:color-mix(in oklch, currentColor 80%, transparent)}.btn[hidden]{display:none}.btn-large{font-size:var(--_label-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;color:var(--text-color-secondary);border:var(--border) solid var(--_border-color);background:0 0}.btn-large:hover:not(:disabled){color:var(--text-color-heading);background:var(--color-contrast-200)}.value{min-width:2ch;font-size:var(--_value-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-none);color:var(--_accent);text-align:center;touch-action:manipulation;border-radius:var(--rounded-md);flex:1}.value:focus-visible{outline:2px solid var(--_theme-focus,var(--color-primary));outline-offset:2px}:host([data-bump]) .value{animation:var(--_motion-animation,counter-bump .2s var(--ease-spring))}@keyframes counter-bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.hint,::slotted([slot=hint]){font-size:var(--text-xs);line-height:var(--leading-snug,1.35);color:var(--text-color-tertiary)}.hint[hidden]{display:none}:host([readonly]) .controls{justify-content:flex-start}:host([readonly]) .value{flex:0}:host([readonly]) .value:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:left}:host([readonly]) .value:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:right}}:host([variant=frost][color]) .counter{background:color-mix(in oklch, var(--_theme-base) 78%, transparent)}`;export{e as default};
1
+ var e=`@layer refine.base{:host{--_bg:var(--counter-bg,var(--color-contrast-100));--_border-color:var(--counter-border-color,var(--color-divider));--_radius:var(--counter-radius,var(--rounded-lg));--_gap:var(--counter-gap,var(--size-3));--_button-size:var(--counter-button-size,var(--size-11));--_value-size:var(--counter-value-size,var(--text-2xl));--_icon-size:var(--size-5);--_slot-icon-size:var(--counter-icon-size,var(--size-6));--_label-size:var(--text-sm);--_accent:var(--_theme-base,var(--text-color-heading));box-sizing:border-box;vertical-align:middle;min-width:0;display:inline-flex}:host([size=sm]){--_button-size:var(--counter-button-size,var(--size-10));--_value-size:var(--counter-value-size,var(--text-xl));--_icon-size:var(--size-4);--_slot-icon-size:var(--counter-icon-size,var(--size-5));--_label-size:var(--text-xs)}:host([size=lg]){--_button-size:var(--counter-button-size,var(--size-12));--_value-size:var(--counter-value-size,var(--text-3xl));--_icon-size:var(--size-6);--_slot-icon-size:var(--counter-icon-size,var(--size-8));--_label-size:var(--text-base)}.counter{box-sizing:border-box;gap:var(--size-2);min-width:0;padding:var(--size-3);color:var(--text-color-body);background:var(--_bg);border:var(--border) solid var(--_border-color);border-radius:var(--_radius);flex-direction:column;flex:1;display:flex}.header{gap:var(--size-2);align-items:center;min-width:0;display:flex}::slotted([slot=icon]){width:var(--_slot-icon-size);height:var(--_slot-icon-size);color:var(--_accent);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.label{text-overflow:ellipsis;min-width:0;font-size:var(--_label-size);font-weight:var(--font-medium);line-height:var(--leading-none);color:var(--text-color-heading);white-space:nowrap;overflow:hidden}.header-end{flex-shrink:0;align-items:center;display:flex}.header-end:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:auto}.header-end:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.controls{gap:var(--_gap);justify-content:space-between;align-items:center;display:flex}.btn{all:unset;box-sizing:border-box;width:var(--_button-size);min-width:var(--_touch-target,var(--_button-size));height:var(--_button-size);min-height:var(--_touch-target,var(--_button-size));color:var(--text-color-heading);touch-action:manipulation;cursor:pointer;background:var(--color-contrast-200);border-radius:var(--_radius);transition:background var(--transition-fast), transform .12s var(--ease-spring);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.btn:hover:not(:disabled){background:var(--color-contrast-300)}.btn:active:not(:disabled){transform:scale(.94)}.btn:disabled{cursor:not-allowed;opacity:.4}:host([variant=frost]) .label,:host([variant=frost]) .value,:host([variant=frost]) .btn,:host([variant=frost]) ::slotted([slot=icon]){color:inherit}:host([variant=frost]) .btn{background:color-mix(in oklch, currentColor 18%, transparent)}:host([variant=frost]) .btn:hover:not(:disabled){background:color-mix(in oklch, currentColor 30%, transparent)}:host([variant=frost]) .btn-large{border-color:color-mix(in oklch, currentColor 45%, transparent);background:0 0}:host([variant=frost]) .hint{color:color-mix(in oklch, currentColor 80%, transparent)}.btn[hidden]{display:none}.btn-large{font-size:var(--_label-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;color:var(--text-color-secondary);border:var(--border) solid var(--_border-color);background:0 0}.btn-large:hover:not(:disabled){color:var(--text-color-heading);background:var(--color-contrast-200)}.value{min-width:2ch;font-size:var(--_value-size);font-weight:var(--font-semibold);font-variant-numeric:tabular-nums;line-height:var(--leading-none);color:var(--_accent);text-align:center;touch-action:manipulation;border-radius:var(--rounded-md);flex:1}.value:focus-visible{outline:2px solid var(--_theme-focus,var(--color-primary));outline-offset:2px}:host([data-bump]) .value{animation:var(--_motion-animation,counter-bump .2s var(--ease-spring))}@keyframes counter-bump{0%{transform:scale(1)}40%{transform:scale(1.18)}to{transform:scale(1)}}.hint,::slotted([slot=hint]){font-size:var(--text-xs);line-height:var(--leading-snug,1.35);color:var(--text-color-tertiary)}.hint[hidden]{display:none}:host([readonly]) .controls{justify-content:flex-start}:host([readonly]) .value{flex:0}:host([readonly]) .value:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){text-align:left}:host([readonly]) .value:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){text-align:right}}:host([variant=frost][color]) .counter{background:color-mix(in oklch, var(--_theme-base) 78%, transparent)}`;export{e as default};
2
2
  //# sourceMappingURL=counter.css.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"counter.css.js","names":[],"sources":["../../../src/inputs/counter/counter.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_bg: var(--counter-bg, var(--color-contrast-100));\n --_border-color: var(--counter-border-color, var(--color-divider));\n --_radius: var(--counter-radius, var(--rounded-lg));\n --_gap: var(--counter-gap, var(--size-3));\n --_button-size: var(--counter-button-size, var(--size-11));\n --_value-size: var(--counter-value-size, var(--text-2xl));\n --_icon-size: var(--size-5);\n --_slot-icon-size: var(--counter-icon-size, var(--size-6));\n --_label-size: var(--text-sm);\n --_accent: var(--_theme-base, var(--text-color-heading));\n box-sizing: border-box;\n\n display: inline-flex;\n min-width: 0;\n vertical-align: middle;\n }\n\n :host([size='sm']) {\n --_button-size: var(--counter-button-size, var(--size-10));\n --_value-size: var(--counter-value-size, var(--text-xl));\n --_icon-size: var(--size-4);\n --_slot-icon-size: var(--counter-icon-size, var(--size-5));\n --_label-size: var(--text-xs);\n }\n\n :host([size='lg']) {\n --_button-size: var(--counter-button-size, var(--size-12));\n --_value-size: var(--counter-value-size, var(--text-3xl));\n --_icon-size: var(--size-6);\n --_slot-icon-size: var(--counter-icon-size, var(--size-8));\n --_label-size: var(--text-base);\n }\n\n .counter {\n box-sizing: border-box;\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 0;\n padding: var(--size-3);\n color: var(--text-color-body);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n }\n\n .header {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n min-width: 0;\n }\n\n ::slotted([slot='icon']) {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_slot-icon-size);\n height: var(--_slot-icon-size);\n color: var(--_accent);\n }\n\n .label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_label-size);\n font-weight: var(--font-medium);\n line-height: var(--leading-none);\n color: var(--text-color-heading);\n white-space: nowrap;\n }\n\n .controls {\n display: flex;\n gap: var(--_gap);\n align-items: center;\n justify-content: space-between;\n }\n\n .btn {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_button-size);\n min-width: var(--_touch-target, var(--_button-size));\n height: var(--_button-size);\n min-height: var(--_touch-target, var(--_button-size));\n color: var(--text-color-heading);\n touch-action: manipulation;\n cursor: pointer;\n background: var(--color-contrast-200);\n border-radius: var(--_radius);\n transition:\n background var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .btn:active:not(:disabled) {\n transform: scale(0.94);\n }\n\n .btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n /* Frost: the variant mixin paints the surface with its own high-contrast theme ink.\n Keep every inner element on that same ink — the page-ink defaults (--text-color-*)\n and the base-tinted value were written for opaque panels and fail over artwork. */\n :host([variant='frost']) .label,\n :host([variant='frost']) .value,\n :host([variant='frost']) .btn {\n color: inherit;\n }\n\n :host([variant='frost']) ::slotted([slot='icon']) {\n color: inherit;\n }\n\n /* Solid button fills would read as opaque patches over the blur; glass tints instead. */\n :host([variant='frost']) .btn {\n background: color-mix(in oklch, currentColor 18%, transparent);\n }\n\n :host([variant='frost']) .btn:hover:not(:disabled) {\n background: color-mix(in oklch, currentColor 30%, transparent);\n }\n\n :host([variant='frost']) .btn-large {\n background: transparent;\n border-color: color-mix(in oklch, currentColor 45%, transparent);\n }\n\n :host([variant='frost']) .hint {\n color: color-mix(in oklch, currentColor 80%, transparent);\n }\n\n .btn[hidden] {\n display: none;\n }\n\n /* Quick-step buttons: same footprint, quieter surface, numeric label instead of an icon. */\n .btn-large {\n font-size: var(--_label-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n color: var(--text-color-secondary);\n background: transparent;\n border: var(--border) solid var(--_border-color);\n }\n\n .btn-large:hover:not(:disabled) {\n color: var(--text-color-heading);\n background: var(--color-contrast-200);\n }\n\n .value {\n flex: 1;\n min-width: 2ch;\n font-size: var(--_value-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n line-height: var(--leading-none);\n color: var(--_accent);\n text-align: center;\n touch-action: manipulation;\n border-radius: var(--rounded-md);\n }\n\n .value:focus-visible {\n outline: 2px solid var(--_theme-focus, var(--color-primary));\n outline-offset: 2px;\n }\n\n :host([data-bump]) .value {\n animation: var(--_motion-animation, counter-bump 200ms var(--ease-spring));\n }\n\n @keyframes counter-bump {\n 0% {\n transform: scale(1);\n }\n\n 40% {\n transform: scale(1.18);\n }\n\n 100% {\n transform: scale(1);\n }\n }\n\n .hint,\n ::slotted([slot='hint']) {\n font-size: var(--text-xs);\n line-height: var(--leading-snug, 1.35);\n color: var(--text-color-tertiary);\n }\n\n .hint[hidden] {\n display: none;\n }\n\n :host([readonly]) .controls {\n justify-content: flex-start;\n }\n\n :host([readonly]) .value {\n flex: 0;\n text-align: start;\n }\n}\n\n/* Unlayered on purpose: the frost surface comes from the unlayered frostVariantMixin, and\n layered rules can never beat unlayered ones. The mixin paints the tinted film at 50% alpha,\n which lets dark artwork drag the surface below the lightness the theme ink (--_theme-content)\n was designed against — dark ink on dark glass in dark mode, washed-out white in light mode.\n A denser film keeps the color's own lightness dominant, so the ink pairing both themes define\n (dark ink on the light-mode base, light ink on the dark-mode base) holds over any artwork,\n while the blur and saturation still read as glass. */\n:host([variant='frost'][color]) .counter {\n background: color-mix(in oklch, var(--_theme-base) 78%, transparent);\n}\n"],"mappings":""}
1
+ {"version":3,"file":"counter.css.js","names":[],"sources":["../../../src/inputs/counter/counter.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n --_bg: var(--counter-bg, var(--color-contrast-100));\n --_border-color: var(--counter-border-color, var(--color-divider));\n --_radius: var(--counter-radius, var(--rounded-lg));\n --_gap: var(--counter-gap, var(--size-3));\n --_button-size: var(--counter-button-size, var(--size-11));\n --_value-size: var(--counter-value-size, var(--text-2xl));\n --_icon-size: var(--size-5);\n --_slot-icon-size: var(--counter-icon-size, var(--size-6));\n --_label-size: var(--text-sm);\n --_accent: var(--_theme-base, var(--text-color-heading));\n box-sizing: border-box;\n\n display: inline-flex;\n min-width: 0;\n vertical-align: middle;\n }\n\n :host([size='sm']) {\n --_button-size: var(--counter-button-size, var(--size-10));\n --_value-size: var(--counter-value-size, var(--text-xl));\n --_icon-size: var(--size-4);\n --_slot-icon-size: var(--counter-icon-size, var(--size-5));\n --_label-size: var(--text-xs);\n }\n\n :host([size='lg']) {\n --_button-size: var(--counter-button-size, var(--size-12));\n --_value-size: var(--counter-value-size, var(--text-3xl));\n --_icon-size: var(--size-6);\n --_slot-icon-size: var(--counter-icon-size, var(--size-8));\n --_label-size: var(--text-base);\n }\n\n .counter {\n box-sizing: border-box;\n display: flex;\n flex: 1;\n flex-direction: column;\n gap: var(--size-2);\n min-width: 0;\n padding: var(--size-3);\n color: var(--text-color-body);\n background: var(--_bg);\n border: var(--border) solid var(--_border-color);\n border-radius: var(--_radius);\n }\n\n .header {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n min-width: 0;\n }\n\n ::slotted([slot='icon']) {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_slot-icon-size);\n height: var(--_slot-icon-size);\n color: var(--_accent);\n }\n\n .label {\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--_label-size);\n font-weight: var(--font-medium);\n line-height: var(--leading-none);\n color: var(--text-color-heading);\n white-space: nowrap;\n }\n\n .header-end {\n display: flex;\n flex-shrink: 0;\n align-items: center;\n margin-inline-start: auto;\n }\n\n .controls {\n display: flex;\n gap: var(--_gap);\n align-items: center;\n justify-content: space-between;\n }\n\n .btn {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--_button-size);\n min-width: var(--_touch-target, var(--_button-size));\n height: var(--_button-size);\n min-height: var(--_touch-target, var(--_button-size));\n color: var(--text-color-heading);\n touch-action: manipulation;\n cursor: pointer;\n background: var(--color-contrast-200);\n border-radius: var(--_radius);\n transition:\n background var(--transition-fast),\n transform 120ms var(--ease-spring);\n }\n\n .btn:hover:not(:disabled) {\n background: var(--color-contrast-300);\n }\n\n .btn:active:not(:disabled) {\n transform: scale(0.94);\n }\n\n .btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n /* Frost: the variant mixin paints the surface with its own high-contrast theme ink.\n Keep every inner element on that same ink: the page-ink defaults (--text-color-*)\n and the base-tinted value were written for opaque panels and fail over artwork. */\n :host([variant='frost']) .label,\n :host([variant='frost']) .value,\n :host([variant='frost']) .btn {\n color: inherit;\n }\n\n :host([variant='frost']) ::slotted([slot='icon']) {\n color: inherit;\n }\n\n /* Solid button fills would read as opaque patches over the blur; glass tints instead. */\n :host([variant='frost']) .btn {\n background: color-mix(in oklch, currentColor 18%, transparent);\n }\n\n :host([variant='frost']) .btn:hover:not(:disabled) {\n background: color-mix(in oklch, currentColor 30%, transparent);\n }\n\n :host([variant='frost']) .btn-large {\n background: transparent;\n border-color: color-mix(in oklch, currentColor 45%, transparent);\n }\n\n :host([variant='frost']) .hint {\n color: color-mix(in oklch, currentColor 80%, transparent);\n }\n\n .btn[hidden] {\n display: none;\n }\n\n /* Quick-step buttons: same footprint, quieter surface, numeric label instead of an icon. */\n .btn-large {\n font-size: var(--_label-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n color: var(--text-color-secondary);\n background: transparent;\n border: var(--border) solid var(--_border-color);\n }\n\n .btn-large:hover:not(:disabled) {\n color: var(--text-color-heading);\n background: var(--color-contrast-200);\n }\n\n .value {\n flex: 1;\n min-width: 2ch;\n font-size: var(--_value-size);\n font-weight: var(--font-semibold);\n font-variant-numeric: tabular-nums;\n line-height: var(--leading-none);\n color: var(--_accent);\n text-align: center;\n touch-action: manipulation;\n border-radius: var(--rounded-md);\n }\n\n .value:focus-visible {\n outline: 2px solid var(--_theme-focus, var(--color-primary));\n outline-offset: 2px;\n }\n\n :host([data-bump]) .value {\n animation: var(--_motion-animation, counter-bump 200ms var(--ease-spring));\n }\n\n @keyframes counter-bump {\n 0% {\n transform: scale(1);\n }\n\n 40% {\n transform: scale(1.18);\n }\n\n 100% {\n transform: scale(1);\n }\n }\n\n .hint,\n ::slotted([slot='hint']) {\n font-size: var(--text-xs);\n line-height: var(--leading-snug, 1.35);\n color: var(--text-color-tertiary);\n }\n\n .hint[hidden] {\n display: none;\n }\n\n :host([readonly]) .controls {\n justify-content: flex-start;\n }\n\n :host([readonly]) .value {\n flex: 0;\n text-align: start;\n }\n}\n\n/* Unlayered on purpose: the frost surface comes from the unlayered frostVariantMixin, and\n layered rules can never beat unlayered ones. The mixin paints the tinted film at 50% alpha,\n which lets dark artwork drag the surface below the lightness the theme ink (--_theme-content)\n was designed against: dark ink on dark glass in dark mode, washed-out white in light mode.\n A denser film keeps the color's own lightness dominant, so the ink pairing both themes define\n (dark ink on the light-mode base, light ink on the dark-mode base) holds over any artwork,\n while the blur and saturation still read as glass. */\n:host([variant='frost'][color]) .counter {\n background: color-mix(in oklch, var(--_theme-base) 78%, transparent);\n}\n"],"mappings":""}
@@ -44,7 +44,7 @@ export declare const COUNTER_HOLD_REPEAT_MS = 120;
44
44
  /**
45
45
  * A large-target tally control for counting things at a glance: `−` / value / `+` with an
46
46
  * optional icon, label and hint. Designed for touch and arm's-length use (tabletop trackers,
47
- * inventories, scoreboards) rather than typed form entry — use `ore-number-input` for that.
47
+ * inventories, scoreboards) rather than typed form entry: use `ore-number-input` for that.
48
48
  *
49
49
  * Holding any button auto-repeats. The value is announced through a live region and is
50
50
  * keyboard-operable as a spinbutton (Arrow keys, Home/End, Page Up/Down). Set `quick-steps` to add an
@@ -69,6 +69,7 @@ export declare const COUNTER_HOLD_REPEAT_MS = 120;
69
69
  * @fires change - Fired after every accepted change. detail: { value: number, delta: number }
70
70
  *
71
71
  * @slot icon - Leading icon or token artwork shown before the label
72
+ * @slot header-end - Trailing header action beside the label
72
73
  * @slot hint - Custom hint content (replaces the `hint` attribute)
73
74
  *
74
75
  * @cssprop --counter-value-size - Font size of the value
@@ -1 +1 @@
1
- {"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/inputs/counter/counter.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,MAAM,MAAM,sBAAsB,GAAG;IACnC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,oBAAoB;AACpB,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACzC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0DG;AACH,eAAO,MAAM,WAAW,EAAG,aAAsB,CAAC"}
1
+ {"version":3,"file":"counter.d.ts","sourceRoot":"","sources":["../../../src/inputs/counter/counter.ts"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,aAAa,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAG5E,OAAO,EAAE,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACnD,MAAM,MAAM,sBAAsB,GAAG;IACnC,wDAAwD;IACxD,KAAK,EAAE,MAAM,CAAC;IACd,+BAA+B;IAC/B,KAAK,EAAE,MAAM,CAAC;CACf,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,MAAM,EAAE,sBAAsB,CAAC;CAChC,CAAC;AAEF,oBAAoB;AACpB,MAAM,MAAM,eAAe,GAAG;IAC5B,kBAAkB;IAClB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,gEAAgE;IAChE,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,qEAAqE;IACrE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iDAAiD;IACjD,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,4BAA4B;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,yCAAyC;IACzC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,oEAAoE;IACpE,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qBAAqB;IACrB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,4CAA4C;IAC5C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,+EAA+E;IAC/E,OAAO,CAAC,EAAE,OAAO,CAAC,aAAa,EAAE,MAAM,CAAC,CAAC;IACzC,oBAAoB;IACpB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,sEAAsE;AACtE,eAAO,MAAM,qBAAqB,MAAM,CAAC;AACzC,eAAO,MAAM,sBAAsB,MAAM,CAAC;AAE1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2DG;AACH,eAAO,MAAM,WAAW,EAAG,aAAsB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"datagrid.css.cjs","names":[],"sources":["../../../src/inputs/datagrid/datagrid.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n /* ── Datagrid-specific token overrides on top of tableBaseMixin ─────── */\n --_row-hover-bg: var(--datagrid-row-hover-bg, color-mix(in oklch, var(--color-contrast-500) 5%, transparent));\n --_row-selected-bg: var(--datagrid-row-selected-bg, color-mix(in oklch, var(--_accent) 10%, transparent));\n --_row-selected-border: var(--datagrid-row-selected-border, var(--_accent));\n }\n\n /* ── Scroll wrapper ───────────────────────────────────────────────────────── */\n\n .dg-scroll {\n max-height: var(--datagrid-max-height, none);\n overflow: auto;\n }\n\n /* ── Table ────────────────────────────────────────────────────────────────── */\n\n .dg-table {\n width: 100%;\n font-size: var(--_font-size);\n table-layout: auto;\n border-collapse: collapse;\n }\n\n /* ── Head ─────────────────────────────────────────────────────────────────── */\n\n .dg-head {\n position: sticky;\n top: 0;\n z-index: 2;\n background: var(--_header-bg);\n box-shadow: inset 0 calc(var(--border) * -1) 0 var(--_border-color);\n }\n\n .dg-th {\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-500);\n text-align: start;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n white-space: nowrap;\n user-select: none;\n border-right: var(--border) solid var(--_border-color);\n\n &[data-align='center'] {\n text-align: center;\n }\n\n &[data-align='right'] {\n text-align: right;\n }\n\n &:has(.dg-sort-btn) {\n padding: 0;\n }\n }\n\n .dg-sort-btn {\n --button-padding: var(--_cell-padding-y) var(--_cell-padding-x);\n --button-font-size: var(--text-xs);\n --button-font-weight: var(--font-semibold);\n --button-color: var(--color-contrast-500);\n --button-justify: flex-start;\n\n height: 100%;\n }\n\n .dg-th[data-align='center'] .dg-sort-btn {\n --button-justify: center;\n }\n\n .dg-th[data-align='right'] .dg-sort-btn {\n --button-justify: flex-end;\n }\n\n :host(:dir(rtl)) .dg-th,\n :dir(rtl) .dg-th {\n border-right: none;\n border-left: var(--border) solid var(--_border-color);\n }\n\n .dg-th:last-child,\n .dg-th.dg-th-check,\n .dg-th.dg-th-expand,\n .dg-th.dg-th-last {\n border-right: none;\n }\n\n :host(:dir(rtl)) .dg-th:last-child,\n :host(:dir(rtl)) .dg-th.dg-th-check,\n :host(:dir(rtl)) .dg-th.dg-th-expand,\n :host(:dir(rtl)) .dg-th.dg-th-last,\n :dir(rtl) .dg-th:last-child,\n :dir(rtl) .dg-th.dg-th-check,\n :dir(rtl) .dg-th.dg-th-expand,\n :dir(rtl) .dg-th.dg-th-last {\n border-left: none;\n }\n\n .dg-th-inner {\n position: relative;\n display: flex;\n gap: var(--size-1);\n align-items: center;\n }\n\n .dg-th[aria-sort]:has(.dg-sort-btn:hover):not(:has(.dg-sort-btn[aria-disabled='true'])) {\n background: color-mix(in oklch, var(--color-contrast-900) 5%, transparent);\n }\n\n .dg-th[aria-sort='ascending'] .dg-sort-icon,\n .dg-th[aria-sort='descending'] .dg-sort-icon {\n color: var(--_accent);\n }\n\n /* Select-all checkbox cell */\n .dg-th-check {\n width: var(--size-5);\n min-width: var(--size-5);\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n }\n\n .dg-th-check,\n .dg-td-check {\n vertical-align: middle;\n text-align: center;\n }\n\n .dg-td.dg-td-check {\n padding: var(--size-1) 0 0;\n }\n\n /* ore-checkbox used for select-all and row checkboxes — label-less, compact */\n .dg-check {\n display: inline-flex;\n gap: 0;\n align-items: center;\n justify-content: center;\n min-height: 0;\n cursor: pointer;\n }\n\n /* ── Body rows ────────────────────────────────────────────────────────────── */\n\n .dg-body .dg-tr {\n border-block-end: var(--border) solid var(--_border-color);\n transition: background var(--transition-fast);\n }\n\n .dg-body .dg-tr:hover:not([data-disabled], [aria-selected='true']) {\n background: var(--_row-hover-bg);\n }\n\n /* ── Selection ─────────────────────────────────────────────────────────────── */\n\n .dg-body .dg-tr[aria-selected='true'] {\n background: var(--_row-selected-bg);\n }\n\n .dg-body .dg-tr[data-selectable] {\n cursor: pointer;\n outline: none;\n }\n\n .dg-body .dg-tr[data-selectable]:focus-visible {\n box-shadow: inset 0 0 0 2px var(--_row-selected-border);\n }\n\n .dg-body .dg-tr[data-disabled] {\n pointer-events: none;\n opacity: 0.45;\n }\n\n /* Striped rows */\n :host([striped]) .dg-body .dg-tr:nth-child(even) {\n background: var(--_stripe-bg);\n }\n\n :host([striped]) .dg-body .dg-tr:nth-child(even)[aria-selected='true'] {\n background: var(--_row-selected-bg);\n }\n\n /* ── Body cells ────────────────────────────────────────────────────────────── */\n\n .dg-td {\n max-width: var(--datagrid-cell-max-width, 32ch);\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n color: var(--color-contrast-800);\n white-space: nowrap;\n border-right: var(--border) solid var(--_border-color);\n\n &[data-align='center'] {\n text-align: center;\n }\n\n &[data-align='right'] {\n text-align: right;\n }\n }\n\n :host(:dir(rtl)) .dg-td,\n :dir(rtl) .dg-td {\n border-right: none;\n border-left: var(--border) solid var(--_border-color);\n }\n\n .dg-td:last-child,\n .dg-td.dg-td-check,\n .dg-td.dg-td-expand,\n .dg-td.dg-td-last {\n border-right: none;\n }\n\n :host(:dir(rtl)) .dg-td:last-child,\n :host(:dir(rtl)) .dg-td.dg-td-check,\n :host(:dir(rtl)) .dg-td.dg-td-expand,\n :host(:dir(rtl)) .dg-td.dg-td-last,\n :dir(rtl) .dg-td:last-child,\n :dir(rtl) .dg-td.dg-td-check,\n :dir(rtl) .dg-td.dg-td-expand,\n :dir(rtl) .dg-td.dg-td-last {\n border-left: none;\n }\n\n /* ── Empty state ──────────────────────────────────────────────────────────── */\n\n .dg-empty {\n padding: var(--size-12) var(--_cell-padding-x);\n font-size: var(--text-sm);\n color: var(--color-contrast-400);\n text-align: center;\n }\n\n .dg-empty-content {\n display: flex;\n flex-direction: column;\n gap: var(--size-4);\n align-items: center;\n justify-content: center;\n }\n\n .dg-empty-actions {\n margin-top: var(--size-2);\n }\n\n /* ── Controls bar (tabs + action row) ───────────────────────────────────── */\n\n .dg-controls {\n display: flex;\n gap: var(--size-3);\n align-items: center;\n justify-content: space-between;\n height: var(--size-8);\n padding: var(--size-1-5) var(--_cell-padding-x);\n background: var(--_header-bg);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n /* ── Tab system (left) ───────────────────────────────────────────────────── */\n\n .dg-tabs {\n display: flex;\n flex: 1;\n gap: var(--size-1);\n align-items: center;\n min-width: 0;\n overflow: hidden;\n }\n\n .dg-tab {\n --button-padding: var(--size-0-5) var(--size-2-5);\n --button-font-size: var(--text-xs);\n --button-color: var(--color-contrast-500);\n\n flex: 1;\n min-width: 0;\n }\n\n @media (max-width: 40rem) {\n .dg-tabs {\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n scrollbar-width: none;\n }\n\n .dg-tabs::-webkit-scrollbar {\n display: none;\n }\n\n .dg-tab {\n flex: 0 0 auto;\n min-width: max-content;\n }\n }\n\n .dg-tab--active {\n --button-color: var(--color-contrast-900);\n --button-bg: color-mix(in oklch, var(--color-contrast-500) 10%, transparent);\n --button-border-color: var(--_border-color);\n --button-border: var(--border);\n\n font-weight: var(--font-semibold);\n }\n\n /* ── Action bar (right) ──────────────────────────────────────────────────── */\n\n .dg-actions {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-0-5);\n align-items: center;\n }\n\n /* ── Shared icon button — used by action bar, search-expand clear, popover header icons ── */\n\n .dg-action-divider {\n display: inline-block;\n flex-shrink: 0;\n width: var(--border);\n height: var(--size-4);\n margin-inline: var(--size-1);\n background: var(--_border-color);\n\n &[hidden] {\n display: none;\n }\n }\n\n .dg-filter {\n display: block;\n width: 100%;\n }\n\n /* ── Search toggle (rightmost action) ───────────────────────────────────── */\n\n .dg-search {\n display: flex;\n flex-direction: row-reverse;\n gap: var(--size-1);\n align-items: center;\n }\n\n .dg-search-input {\n --input-height: var(--size-7);\n display: block;\n flex-shrink: 0;\n width: 0;\n overflow: hidden;\n opacity: 0;\n transition:\n width var(--transition-fast),\n opacity var(--transition-fast);\n }\n\n .dg-search--open .dg-search-input {\n width: 12rem;\n overflow: visible;\n opacity: 1;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .dg-search-input {\n transition: none;\n }\n }\n\n /* ── ore-popover: action popover wrapper ─────────────────────────────────── */\n\n .dg-action-popover {\n display: inline-flex;\n }\n\n /* ── Popover content: shared header row ─────────────────────────────────── */\n\n .dg-pop-header {\n display: flex;\n gap: var(--size-3);\n align-items: center;\n justify-content: space-between;\n min-height: var(--size-10);\n padding: var(--size-2) var(--size-3);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n .dg-pop-title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-600);\n letter-spacing: 0.02em;\n }\n\n .dg-pop-heading,\n .dg-pop-heading > * {\n display: block;\n min-width: 0;\n }\n\n .dg-pop-heading small {\n margin-block-start: var(--size-0-5);\n font-size: var(--text-xs);\n color: var(--color-contrast-500);\n }\n\n /* ── Sort / Group by popover content ────────────────────────────────────── */\n\n .dg-pop-sort {\n display: flex;\n flex-direction: column;\n }\n\n .dg-pop-sort-row {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-2) var(--size-3);\n }\n\n .dg-pop-select,\n .dg-pop-dir-select {\n --input-min-width: 0;\n --select-min-width: 0;\n width: 0;\n min-width: 0;\n }\n\n .dg-pop-select {\n flex: 2 1 0;\n }\n\n .dg-pop-dir-select {\n flex: 0 0 var(--size-28);\n width: var(--size-28);\n }\n\n /* ── Filter popover content ──────────────────────────────────────────────── */\n\n .dg-pop-filter {\n display: flex;\n flex-direction: column;\n }\n\n /* Field picker: select columns to add filter rules. */\n .dg-pop-filter-fields {\n padding: var(--size-2) var(--size-3);\n }\n\n /* ── Filter rules section ────────────────────────────────────────────────── */\n\n .dg-pop-filter-rules {\n padding-block-start: var(--size-1);\n border-block-start: var(--border) solid var(--_border-color);\n\n &[hidden] {\n display: none;\n }\n }\n\n .dg-pop-filter-rule {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n padding: var(--size-2) var(--size-3);\n }\n\n .dg-pop-filter-rule-header {\n display: flex;\n gap: var(--size-1-5);\n align-items: center;\n }\n\n .dg-pop-filter-field {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-800);\n white-space: nowrap;\n }\n\n .dg-pop-filter-op-select {\n --input-min-width: 0;\n --select-min-width: 0;\n --select-height: var(--size-6);\n --select-font-size: var(--text-2xs);\n --select-padding-x: var(--size-1-5);\n\n flex: 1 1 0;\n min-width: 6rem;\n }\n\n .dg-state-trigger {\n position: relative;\n }\n\n .dg-state-trigger[data-customized]::after {\n position: absolute;\n inset-block-start: var(--size-1);\n inset-inline-end: var(--size-1);\n width: var(--size-1-5);\n height: var(--size-1-5);\n content: '';\n background: var(--color-primary);\n border: var(--border) solid var(--_header-bg);\n border-radius: 50%;\n }\n\n .dg-pop-col {\n width: 18rem;\n }\n\n .dg-pop-col-list {\n display: grid;\n gap: var(--size-0-5);\n max-height: min(50vh, 24rem);\n padding: var(--size-2) var(--size-3);\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n\n .dg-pop-col-item {\n --checkbox-size: var(--size-4);\n --checkbox-font-size: var(--text-sm);\n\n width: 100%;\n padding: var(--size-1) var(--size-2);\n cursor: pointer;\n border-radius: var(--rounded-md);\n }\n\n .dg-pop-col-item:hover {\n background: var(--color-contrast-150);\n }\n\n .dg-pop-col-item::part(label) {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* ── Footer / pagination bar ─────────────────────────────────────────────── */\n\n .dg-footer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-1) var(--_cell-padding-x);\n font-size: var(--text-xs);\n color: var(--color-contrast-500);\n background: var(--_header-bg);\n }\n\n .dg-footer-info {\n white-space: nowrap;\n }\n\n .dg-footer-start {\n display: flex;\n flex: 1 1 auto;\n gap: var(--size-2);\n align-items: center;\n min-width: 0;\n }\n\n .dg-page-size-wrap {\n flex-shrink: 0;\n order: -1;\n width: var(--size-20);\n }\n\n .dg-page-size-select {\n --input-height: var(--size-8);\n --input-min-width: 0;\n --select-min-width: 0;\n --select-font-size: var(--text-xs);\n --select-padding-x: var(--size-2);\n }\n\n .dg-pagination {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-1);\n align-items: center;\n margin-inline-start: auto;\n }\n\n :host(:dir(rtl)) .dg-page-btn,\n :dir(rtl) .dg-page-btn {\n transform: scaleX(-1);\n }\n\n .dg-page-btn {\n --button-color: var(--color-contrast-600);\n --button-radius: var(--rounded-md);\n\n width: var(--size-7);\n height: var(--size-7);\n }\n\n .dg-page-btn:hover {\n --button-color: var(--color-contrast-900);\n --button-bg: var(--color-contrast-300);\n }\n\n .dg-page-btn:disabled {\n cursor: not-allowed;\n opacity: 0.35;\n }\n\n .dg-page-label {\n padding-inline: var(--size-1);\n white-space: nowrap;\n }\n\n /* ── Column resize handle (F4) ───────────────────────────────────────────── */\n\n .dg-col-resize {\n position: absolute;\n inset-block: calc(var(--_cell-padding-y) * -1);\n inset-inline-end: calc((var(--_cell-padding-x) + var(--border) + 2px) * -1);\n width: var(--size-1);\n cursor: col-resize;\n user-select: none;\n background: transparent;\n border-radius: var(--rounded);\n transition: background var(--transition-fast);\n }\n\n .dg-col-resize:hover,\n .dg-col-resize:active {\n background: var(--_accent, var(--color-contrast-300));\n }\n\n /* ── Cell keyboard focus (ARIA grid roving tabindex) ─────────────────────── */\n\n .dg-td:focus-visible,\n .dg-th:focus-visible {\n outline: 2px solid var(--_row-selected-border);\n outline-offset: -2px;\n }\n\n /* ── Row expansion ────────────────────────────────────────────────────────── */\n\n .dg-tr-expanded .dg-td-expanded {\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n border: none;\n\n /* Paint background + bottom separator via box-shadow so it is\n direction-agnostic and covers the host outer border on both sides. */\n box-shadow:\n inset 0 0 0 9999px color-mix(in oklch, var(--color-contrast-600) 4%, var(--_bg, transparent)),\n inset 0 calc(var(--border) * -1) 0 var(--_border-color);\n }\n\n .dg-tr-expanded:last-child .dg-td-expanded {\n box-shadow: inset 0 0 0 9999px color-mix(in oklch, var(--color-contrast-900) 4%, var(--_bg, transparent));\n }\n\n .dg-tr:has(+ .dg-tr-expanded) {\n border-block-end: none;\n }\n\n .dg-th-expand,\n .dg-td-expand {\n width: var(--size-8);\n min-width: var(--size-8);\n padding-block: var(--size-1) 0;\n padding-inline: 0 var(--size-2);\n text-align: center;\n white-space: nowrap;\n border-right: none;\n border-left: none;\n }\n\n .dg-expand-btn {\n --button-color: var(--color-contrast-500);\n --button-radius: var(--rounded-sm);\n\n width: var(--size-5);\n height: var(--size-5);\n }\n\n .dg-expand-btn:hover {\n --button-color: var(--color-contrast-900);\n }\n\n .dg-expand-btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n /* ── Loading overlay ──────────────────────────────────────────────────────── */\n\n .dg-loading-overlay {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: none;\n align-items: center;\n justify-content: center;\n background: color-mix(in oklch, var(--_bg, white) 40%, transparent);\n backdrop-filter: blur(1px);\n }\n\n :host([loading]) .dg-loading-overlay {\n display: flex;\n }\n\n :host([loading]) .dg-scroll table {\n pointer-events: none;\n opacity: 0.5;\n }\n\n .dg-spin {\n animation: dg-spin 1s linear infinite;\n }\n\n @keyframes dg-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n }\n}\n"],"mappings":""}
1
+ {"version":3,"file":"datagrid.css.cjs","names":[],"sources":["../../../src/inputs/datagrid/datagrid.css?inline"],"sourcesContent":["@layer refine.base {\n :host {\n /* ── Datagrid-specific token overrides on top of tableBaseMixin ─────── */\n --_row-hover-bg: var(--datagrid-row-hover-bg, color-mix(in oklch, var(--color-contrast-500) 5%, transparent));\n --_row-selected-bg: var(--datagrid-row-selected-bg, color-mix(in oklch, var(--_accent) 10%, transparent));\n --_row-selected-border: var(--datagrid-row-selected-border, var(--_accent));\n }\n\n /* ── Scroll wrapper ───────────────────────────────────────────────────────── */\n\n .dg-scroll {\n max-height: var(--datagrid-max-height, none);\n overflow: auto;\n }\n\n /* ── Table ────────────────────────────────────────────────────────────────── */\n\n .dg-table {\n width: 100%;\n font-size: var(--_font-size);\n table-layout: auto;\n border-collapse: collapse;\n }\n\n /* ── Head ─────────────────────────────────────────────────────────────────── */\n\n .dg-head {\n position: sticky;\n top: 0;\n z-index: 2;\n background: var(--_header-bg);\n box-shadow: inset 0 calc(var(--border) * -1) 0 var(--_border-color);\n }\n\n .dg-th {\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-500);\n text-align: start;\n text-transform: uppercase;\n letter-spacing: 0.04em;\n white-space: nowrap;\n user-select: none;\n border-right: var(--border) solid var(--_border-color);\n\n &[data-align='center'] {\n text-align: center;\n }\n\n &[data-align='right'] {\n text-align: right;\n }\n\n &:has(.dg-sort-btn) {\n padding: 0;\n }\n }\n\n .dg-sort-btn {\n --button-padding: var(--_cell-padding-y) var(--_cell-padding-x);\n --button-font-size: var(--text-xs);\n --button-font-weight: var(--font-semibold);\n --button-color: var(--color-contrast-500);\n --button-justify: flex-start;\n\n height: 100%;\n }\n\n .dg-th[data-align='center'] .dg-sort-btn {\n --button-justify: center;\n }\n\n .dg-th[data-align='right'] .dg-sort-btn {\n --button-justify: flex-end;\n }\n\n :host(:dir(rtl)) .dg-th,\n :dir(rtl) .dg-th {\n border-right: none;\n border-left: var(--border) solid var(--_border-color);\n }\n\n .dg-th:last-child,\n .dg-th.dg-th-check,\n .dg-th.dg-th-expand,\n .dg-th.dg-th-last {\n border-right: none;\n }\n\n :host(:dir(rtl)) .dg-th:last-child,\n :host(:dir(rtl)) .dg-th.dg-th-check,\n :host(:dir(rtl)) .dg-th.dg-th-expand,\n :host(:dir(rtl)) .dg-th.dg-th-last,\n :dir(rtl) .dg-th:last-child,\n :dir(rtl) .dg-th.dg-th-check,\n :dir(rtl) .dg-th.dg-th-expand,\n :dir(rtl) .dg-th.dg-th-last {\n border-left: none;\n }\n\n .dg-th-inner {\n position: relative;\n display: flex;\n gap: var(--size-1);\n align-items: center;\n }\n\n .dg-th[aria-sort]:has(.dg-sort-btn:hover):not(:has(.dg-sort-btn[aria-disabled='true'])) {\n background: color-mix(in oklch, var(--color-contrast-900) 5%, transparent);\n }\n\n .dg-th[aria-sort='ascending'] .dg-sort-icon,\n .dg-th[aria-sort='descending'] .dg-sort-icon {\n color: var(--_accent);\n }\n\n /* Select-all checkbox cell */\n .dg-th-check {\n width: var(--size-5);\n min-width: var(--size-5);\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n }\n\n .dg-th-check,\n .dg-td-check {\n vertical-align: middle;\n text-align: center;\n }\n\n .dg-td.dg-td-check {\n padding: var(--size-1) 0 0;\n }\n\n /* ore-checkbox used for select-all and row checkboxes: label-less, compact */\n .dg-check {\n display: inline-flex;\n gap: 0;\n align-items: center;\n justify-content: center;\n min-height: 0;\n cursor: pointer;\n }\n\n /* ── Body rows ────────────────────────────────────────────────────────────── */\n\n .dg-body .dg-tr {\n border-block-end: var(--border) solid var(--_border-color);\n transition: background var(--transition-fast);\n }\n\n .dg-body .dg-tr:hover:not([data-disabled], [aria-selected='true']) {\n background: var(--_row-hover-bg);\n }\n\n /* ── Selection ─────────────────────────────────────────────────────────────── */\n\n .dg-body .dg-tr[aria-selected='true'] {\n background: var(--_row-selected-bg);\n }\n\n .dg-body .dg-tr[data-selectable] {\n cursor: pointer;\n outline: none;\n }\n\n .dg-body .dg-tr[data-selectable]:focus-visible {\n box-shadow: inset 0 0 0 2px var(--_row-selected-border);\n }\n\n .dg-body .dg-tr[data-disabled] {\n pointer-events: none;\n opacity: 0.45;\n }\n\n /* Striped rows */\n :host([striped]) .dg-body .dg-tr:nth-child(even) {\n background: var(--_stripe-bg);\n }\n\n :host([striped]) .dg-body .dg-tr:nth-child(even)[aria-selected='true'] {\n background: var(--_row-selected-bg);\n }\n\n /* ── Body cells ────────────────────────────────────────────────────────────── */\n\n .dg-td {\n max-width: var(--datagrid-cell-max-width, 32ch);\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n overflow: hidden;\n text-overflow: ellipsis;\n vertical-align: middle;\n color: var(--color-contrast-800);\n white-space: nowrap;\n border-right: var(--border) solid var(--_border-color);\n\n &[data-align='center'] {\n text-align: center;\n }\n\n &[data-align='right'] {\n text-align: right;\n }\n }\n\n :host(:dir(rtl)) .dg-td,\n :dir(rtl) .dg-td {\n border-right: none;\n border-left: var(--border) solid var(--_border-color);\n }\n\n .dg-td:last-child,\n .dg-td.dg-td-check,\n .dg-td.dg-td-expand,\n .dg-td.dg-td-last {\n border-right: none;\n }\n\n :host(:dir(rtl)) .dg-td:last-child,\n :host(:dir(rtl)) .dg-td.dg-td-check,\n :host(:dir(rtl)) .dg-td.dg-td-expand,\n :host(:dir(rtl)) .dg-td.dg-td-last,\n :dir(rtl) .dg-td:last-child,\n :dir(rtl) .dg-td.dg-td-check,\n :dir(rtl) .dg-td.dg-td-expand,\n :dir(rtl) .dg-td.dg-td-last {\n border-left: none;\n }\n\n /* ── Empty state ──────────────────────────────────────────────────────────── */\n\n .dg-empty {\n padding: var(--size-12) var(--_cell-padding-x);\n font-size: var(--text-sm);\n color: var(--color-contrast-400);\n text-align: center;\n }\n\n .dg-empty-content {\n display: flex;\n flex-direction: column;\n gap: var(--size-4);\n align-items: center;\n justify-content: center;\n }\n\n .dg-empty-actions {\n margin-top: var(--size-2);\n }\n\n /* ── Controls bar (tabs + action row) ───────────────────────────────────── */\n\n .dg-controls {\n display: flex;\n gap: var(--size-3);\n align-items: center;\n justify-content: space-between;\n height: var(--size-8);\n padding: var(--size-1-5) var(--_cell-padding-x);\n background: var(--_header-bg);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n /* ── Tab system (left) ───────────────────────────────────────────────────── */\n\n .dg-tabs {\n display: flex;\n flex: 1;\n gap: var(--size-1);\n align-items: center;\n min-width: 0;\n overflow: hidden;\n }\n\n .dg-tab {\n --button-padding: var(--size-0-5) var(--size-2-5);\n --button-font-size: var(--text-xs);\n --button-color: var(--color-contrast-500);\n\n flex: 1;\n min-width: 0;\n }\n\n @media (max-width: 40rem) {\n .dg-tabs {\n overflow-x: auto;\n overscroll-behavior-inline: contain;\n scrollbar-width: none;\n }\n\n .dg-tabs::-webkit-scrollbar {\n display: none;\n }\n\n .dg-tab {\n flex: 0 0 auto;\n min-width: max-content;\n }\n }\n\n .dg-tab--active {\n --button-color: var(--color-contrast-900);\n --button-bg: color-mix(in oklch, var(--color-contrast-500) 10%, transparent);\n --button-border-color: var(--_border-color);\n --button-border: var(--border);\n\n font-weight: var(--font-semibold);\n }\n\n /* ── Action bar (right) ──────────────────────────────────────────────────── */\n\n .dg-actions {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-0-5);\n align-items: center;\n }\n\n /* ── Shared icon button: used by action bar, search-expand clear, popover header icons ── */\n\n .dg-action-divider {\n display: inline-block;\n flex-shrink: 0;\n width: var(--border);\n height: var(--size-4);\n margin-inline: var(--size-1);\n background: var(--_border-color);\n\n &[hidden] {\n display: none;\n }\n }\n\n .dg-filter {\n display: block;\n width: 100%;\n }\n\n /* ── Search toggle (rightmost action) ───────────────────────────────────── */\n\n .dg-search {\n display: flex;\n flex-direction: row-reverse;\n gap: var(--size-1);\n align-items: center;\n }\n\n .dg-search-input {\n --input-height: var(--size-7);\n display: block;\n flex-shrink: 0;\n width: 0;\n overflow: hidden;\n opacity: 0;\n transition:\n width var(--transition-fast),\n opacity var(--transition-fast);\n }\n\n .dg-search--open .dg-search-input {\n width: 12rem;\n overflow: visible;\n opacity: 1;\n }\n\n @media (prefers-reduced-motion: reduce) {\n .dg-search-input {\n transition: none;\n }\n }\n\n /* ── ore-popover: action popover wrapper ─────────────────────────────────── */\n\n .dg-action-popover {\n display: inline-flex;\n }\n\n /* ── Popover content: shared header row ─────────────────────────────────── */\n\n .dg-pop-header {\n display: flex;\n gap: var(--size-3);\n align-items: center;\n justify-content: space-between;\n min-height: var(--size-10);\n padding: var(--size-2) var(--size-3);\n border-block-end: var(--border) solid var(--_border-color);\n }\n\n .dg-pop-title {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-600);\n letter-spacing: 0.02em;\n }\n\n .dg-pop-heading,\n .dg-pop-heading > * {\n display: block;\n min-width: 0;\n }\n\n .dg-pop-heading small {\n margin-block-start: var(--size-0-5);\n font-size: var(--text-xs);\n color: var(--color-contrast-500);\n }\n\n /* ── Sort / Group by popover content ────────────────────────────────────── */\n\n .dg-pop-sort {\n display: flex;\n flex-direction: column;\n }\n\n .dg-pop-sort-row {\n display: flex;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-2) var(--size-3);\n }\n\n .dg-pop-select,\n .dg-pop-dir-select {\n --input-min-width: 0;\n --select-min-width: 0;\n width: 0;\n min-width: 0;\n }\n\n .dg-pop-select {\n flex: 2 1 0;\n }\n\n .dg-pop-dir-select {\n flex: 0 0 var(--size-28);\n width: var(--size-28);\n }\n\n /* ── Filter popover content ──────────────────────────────────────────────── */\n\n .dg-pop-filter {\n display: flex;\n flex-direction: column;\n }\n\n /* Field picker: select columns to add filter rules. */\n .dg-pop-filter-fields {\n padding: var(--size-2) var(--size-3);\n }\n\n /* ── Filter rules section ────────────────────────────────────────────────── */\n\n .dg-pop-filter-rules {\n padding-block-start: var(--size-1);\n border-block-start: var(--border) solid var(--_border-color);\n\n &[hidden] {\n display: none;\n }\n }\n\n .dg-pop-filter-rule {\n display: flex;\n flex-direction: column;\n gap: var(--size-2);\n padding: var(--size-2) var(--size-3);\n }\n\n .dg-pop-filter-rule-header {\n display: flex;\n gap: var(--size-1-5);\n align-items: center;\n }\n\n .dg-pop-filter-field {\n font-size: var(--text-xs);\n font-weight: var(--font-semibold);\n color: var(--color-contrast-800);\n white-space: nowrap;\n }\n\n .dg-pop-filter-op-select {\n --input-min-width: 0;\n --select-min-width: 0;\n --select-height: var(--size-6);\n --select-font-size: var(--text-2xs);\n --select-padding-x: var(--size-1-5);\n\n flex: 1 1 0;\n min-width: 6rem;\n }\n\n .dg-state-trigger {\n position: relative;\n }\n\n .dg-state-trigger[data-customized]::after {\n position: absolute;\n inset-block-start: var(--size-1);\n inset-inline-end: var(--size-1);\n width: var(--size-1-5);\n height: var(--size-1-5);\n content: '';\n background: var(--color-primary);\n border: var(--border) solid var(--_header-bg);\n border-radius: 50%;\n }\n\n .dg-pop-col {\n width: 18rem;\n }\n\n .dg-pop-col-list {\n display: grid;\n gap: var(--size-0-5);\n max-height: min(50vh, 24rem);\n padding: var(--size-2) var(--size-3);\n overflow-y: auto;\n overscroll-behavior: contain;\n }\n\n .dg-pop-col-item {\n --checkbox-size: var(--size-4);\n --checkbox-font-size: var(--text-sm);\n\n width: 100%;\n padding: var(--size-1) var(--size-2);\n cursor: pointer;\n border-radius: var(--rounded-md);\n }\n\n .dg-pop-col-item:hover {\n background: var(--color-contrast-150);\n }\n\n .dg-pop-col-item::part(label) {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n\n /* ── Footer / pagination bar ─────────────────────────────────────────────── */\n\n .dg-footer {\n display: flex;\n flex-wrap: wrap;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-1) var(--_cell-padding-x);\n font-size: var(--text-xs);\n color: var(--color-contrast-500);\n background: var(--_header-bg);\n }\n\n .dg-footer-info {\n white-space: nowrap;\n }\n\n .dg-footer-start {\n display: flex;\n flex: 1 1 auto;\n gap: var(--size-2);\n align-items: center;\n min-width: 0;\n }\n\n .dg-page-size-wrap {\n flex-shrink: 0;\n order: -1;\n width: var(--size-20);\n }\n\n .dg-page-size-select {\n --input-height: var(--size-8);\n --input-min-width: 0;\n --select-min-width: 0;\n --select-font-size: var(--text-xs);\n --select-padding-x: var(--size-2);\n }\n\n .dg-pagination {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-1);\n align-items: center;\n margin-inline-start: auto;\n }\n\n :host(:dir(rtl)) .dg-page-btn,\n :dir(rtl) .dg-page-btn {\n transform: scaleX(-1);\n }\n\n .dg-page-btn {\n --button-color: var(--color-contrast-600);\n --button-radius: var(--rounded-md);\n\n width: var(--size-7);\n height: var(--size-7);\n }\n\n .dg-page-btn:hover {\n --button-color: var(--color-contrast-900);\n --button-bg: var(--color-contrast-300);\n }\n\n .dg-page-btn:disabled {\n cursor: not-allowed;\n opacity: 0.35;\n }\n\n .dg-page-label {\n padding-inline: var(--size-1);\n white-space: nowrap;\n }\n\n /* ── Column resize handle (F4) ───────────────────────────────────────────── */\n\n .dg-col-resize {\n position: absolute;\n inset-block: calc(var(--_cell-padding-y) * -1);\n inset-inline-end: calc((var(--_cell-padding-x) + var(--border) + 2px) * -1);\n width: var(--size-1);\n cursor: col-resize;\n user-select: none;\n background: transparent;\n border-radius: var(--rounded);\n transition: background var(--transition-fast);\n }\n\n .dg-col-resize:hover,\n .dg-col-resize:active {\n background: var(--_accent, var(--color-contrast-300));\n }\n\n /* ── Cell keyboard focus (ARIA grid roving tabindex) ─────────────────────── */\n\n .dg-td:focus-visible,\n .dg-th:focus-visible {\n outline: 2px solid var(--_row-selected-border);\n outline-offset: -2px;\n }\n\n /* ── Row expansion ────────────────────────────────────────────────────────── */\n\n .dg-tr-expanded .dg-td-expanded {\n padding: var(--_cell-padding-y) var(--_cell-padding-x);\n border: none;\n\n /* Paint background + bottom separator via box-shadow so it is\n direction-agnostic and covers the host outer border on both sides. */\n box-shadow:\n inset 0 0 0 9999px color-mix(in oklch, var(--color-contrast-600) 4%, var(--_bg, transparent)),\n inset 0 calc(var(--border) * -1) 0 var(--_border-color);\n }\n\n .dg-tr-expanded:last-child .dg-td-expanded {\n box-shadow: inset 0 0 0 9999px color-mix(in oklch, var(--color-contrast-900) 4%, var(--_bg, transparent));\n }\n\n .dg-tr:has(+ .dg-tr-expanded) {\n border-block-end: none;\n }\n\n .dg-th-expand,\n .dg-td-expand {\n width: var(--size-8);\n min-width: var(--size-8);\n padding-block: var(--size-1) 0;\n padding-inline: 0 var(--size-2);\n text-align: center;\n white-space: nowrap;\n border-right: none;\n border-left: none;\n }\n\n .dg-expand-btn {\n --button-color: var(--color-contrast-500);\n --button-radius: var(--rounded-sm);\n\n width: var(--size-5);\n height: var(--size-5);\n }\n\n .dg-expand-btn:hover {\n --button-color: var(--color-contrast-900);\n }\n\n .dg-expand-btn:disabled {\n cursor: not-allowed;\n opacity: 0.4;\n }\n\n /* ── Loading overlay ──────────────────────────────────────────────────────── */\n\n .dg-loading-overlay {\n position: absolute;\n inset: 0;\n z-index: 3;\n display: none;\n align-items: center;\n justify-content: center;\n background: color-mix(in oklch, var(--_bg, white) 40%, transparent);\n backdrop-filter: blur(1px);\n }\n\n :host([loading]) .dg-loading-overlay {\n display: flex;\n }\n\n :host([loading]) .dg-scroll table {\n pointer-events: none;\n opacity: 0.5;\n }\n\n .dg-spin {\n animation: dg-spin 1s linear infinite;\n }\n\n @keyframes dg-spin {\n from {\n transform: rotate(0deg);\n }\n\n to {\n transform: rotate(360deg);\n }\n }\n}\n"],"mappings":""}