@editora/ui-core 0.2.1 → 0.3.0

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 (365) hide show
  1. package/dist/{ElementBase-DxbvhLJs.js → ElementBase-CbUsP3D6.js} +1 -1
  2. package/dist/{ElementBase-BeZT54Hj.mjs → ElementBase-D5QsC5Vw.mjs} +10 -1
  3. package/dist/ElementBase.d.ts +7 -0
  4. package/dist/ElementBase.d.ts.map +1 -1
  5. package/dist/accordion.cjs.js +1 -1
  6. package/dist/accordion.esm.js +1 -1
  7. package/dist/add-icons-CVeHOsWl.js +1 -0
  8. package/dist/add-icons-DBUZJ0g7.mjs +14 -0
  9. package/dist/add-icons.cjs.js +1 -0
  10. package/dist/add-icons.d.ts +16 -0
  11. package/dist/add-icons.d.ts.map +1 -0
  12. package/dist/add-icons.esm.js +4 -0
  13. package/dist/alert-dialog.cjs.js +24 -24
  14. package/dist/alert-dialog.esm.js +112 -107
  15. package/dist/alert.cjs.js +8 -8
  16. package/dist/alert.esm.js +22 -22
  17. package/dist/animated-beam.cjs.js +1 -1
  18. package/dist/animated-beam.esm.js +1 -1
  19. package/dist/animated-list.cjs.js +1 -1
  20. package/dist/animated-list.esm.js +1 -1
  21. package/dist/animated-text.cjs.js +1 -1
  22. package/dist/animated-text.esm.js +1 -1
  23. package/dist/app-header.cjs.js +15 -3
  24. package/dist/app-header.esm.js +31 -4
  25. package/dist/aspect-ratio.cjs.js +1 -1
  26. package/dist/aspect-ratio.esm.js +1 -1
  27. package/dist/avatar.cjs.js +1 -1
  28. package/dist/avatar.esm.js +1 -1
  29. package/dist/badge.cjs.js +1 -1
  30. package/dist/badge.esm.js +1 -1
  31. package/dist/block-controls.cjs.js +1 -1
  32. package/dist/block-controls.esm.js +1 -1
  33. package/dist/box.cjs.js +1 -1
  34. package/dist/box.esm.js +1 -1
  35. package/dist/breadcrumb.cjs.js +4 -4
  36. package/dist/breadcrumb.esm.js +93 -84
  37. package/dist/button.cjs.js +520 -1
  38. package/dist/button.esm.js +682 -2
  39. package/dist/{calendar-CzpWDxLc.js → calendar-BsVqtpjM.js} +6 -6
  40. package/dist/{calendar-DkSDFg33.mjs → calendar-CFafqZVA.mjs} +6 -6
  41. package/dist/calendar.cjs.js +1 -1
  42. package/dist/calendar.esm.js +1 -1
  43. package/dist/card.cjs.js +6 -5
  44. package/dist/card.esm.js +52 -39
  45. package/dist/chart.cjs.js +2 -2
  46. package/dist/chart.esm.js +2 -2
  47. package/dist/checkbox.cjs.js +4 -4
  48. package/dist/checkbox.esm.js +36 -15
  49. package/dist/clone-source-BxK2pEVw.mjs +11 -0
  50. package/dist/clone-source-C7E_ri5f.js +1 -0
  51. package/dist/collapsible.cjs.js +1 -1
  52. package/dist/collapsible.esm.js +1 -1
  53. package/dist/color-picker.cjs.js +2 -2
  54. package/dist/color-picker.esm.js +3 -3
  55. package/dist/combobox.cjs.js +4 -4
  56. package/dist/combobox.esm.js +22 -19
  57. package/dist/command-palette.cjs.js +1 -1
  58. package/dist/command-palette.esm.js +1 -1
  59. package/dist/command.cjs.js +1 -1
  60. package/dist/command.esm.js +1 -1
  61. package/dist/components/ui-alert-dialog.d.ts.map +1 -1
  62. package/dist/components/ui-alert.d.ts.map +1 -1
  63. package/dist/components/ui-app-header.d.ts +1 -0
  64. package/dist/components/ui-app-header.d.ts.map +1 -1
  65. package/dist/components/ui-breadcrumb.d.ts.map +1 -1
  66. package/dist/components/ui-card.d.ts +7 -0
  67. package/dist/components/ui-card.d.ts.map +1 -1
  68. package/dist/components/ui-checkbox.d.ts +6 -0
  69. package/dist/components/ui-checkbox.d.ts.map +1 -1
  70. package/dist/components/ui-combobox.d.ts.map +1 -1
  71. package/dist/components/ui-date-time-picker.d.ts.map +1 -1
  72. package/dist/components/ui-dialog.d.ts +1 -0
  73. package/dist/components/ui-dialog.d.ts.map +1 -1
  74. package/dist/components/ui-drawer.d.ts.map +1 -1
  75. package/dist/components/ui-dropdown.d.ts.map +1 -1
  76. package/dist/components/ui-empty-state.d.ts.map +1 -1
  77. package/dist/components/ui-hover-card.d.ts.map +1 -1
  78. package/dist/components/ui-icon.d.ts +1 -0
  79. package/dist/components/ui-icon.d.ts.map +1 -1
  80. package/dist/components/ui-input.d.ts +16 -0
  81. package/dist/components/ui-input.d.ts.map +1 -1
  82. package/dist/components/ui-layout.d.ts +20 -0
  83. package/dist/components/ui-layout.d.ts.map +1 -1
  84. package/dist/components/ui-menu.d.ts +1 -0
  85. package/dist/components/ui-menu.d.ts.map +1 -1
  86. package/dist/components/ui-menubar.d.ts.map +1 -1
  87. package/dist/components/ui-multi-select.d.ts +6 -0
  88. package/dist/components/ui-multi-select.d.ts.map +1 -1
  89. package/dist/components/ui-number-field.d.ts +6 -0
  90. package/dist/components/ui-number-field.d.ts.map +1 -1
  91. package/dist/components/ui-pagination.d.ts.map +1 -1
  92. package/dist/components/ui-password-field.d.ts +11 -0
  93. package/dist/components/ui-password-field.d.ts.map +1 -1
  94. package/dist/components/ui-popover.d.ts.map +1 -1
  95. package/dist/components/ui-positioner.d.ts.map +1 -1
  96. package/dist/components/ui-radio-group.d.ts +6 -0
  97. package/dist/components/ui-radio-group.d.ts.map +1 -1
  98. package/dist/components/ui-rating.d.ts +1 -0
  99. package/dist/components/ui-rating.d.ts.map +1 -1
  100. package/dist/components/ui-select.d.ts +7 -0
  101. package/dist/components/ui-select.d.ts.map +1 -1
  102. package/dist/components/ui-sidebar.d.ts +1 -0
  103. package/dist/components/ui-sidebar.d.ts.map +1 -1
  104. package/dist/components/ui-slider.d.ts +6 -0
  105. package/dist/components/ui-slider.d.ts.map +1 -1
  106. package/dist/components/ui-sortable.d.ts +1 -0
  107. package/dist/components/ui-sortable.d.ts.map +1 -1
  108. package/dist/components/ui-switch.d.ts +6 -0
  109. package/dist/components/ui-switch.d.ts.map +1 -1
  110. package/dist/components/ui-tabs.d.ts +2 -0
  111. package/dist/components/ui-tabs.d.ts.map +1 -1
  112. package/dist/components/ui-textarea.d.ts +6 -0
  113. package/dist/components/ui-textarea.d.ts.map +1 -1
  114. package/dist/components/ui-toast.d.ts.map +1 -1
  115. package/dist/components/ui-tooltip.d.ts.map +1 -1
  116. package/dist/container.cjs.js +1 -1
  117. package/dist/container.esm.js +1 -1
  118. package/dist/context-menu.cjs.js +2 -2
  119. package/dist/context-menu.esm.js +2 -2
  120. package/dist/control-group.cjs.js +1 -1
  121. package/dist/control-group.esm.js +1 -1
  122. package/dist/data-table.cjs.js +5 -5
  123. package/dist/data-table.esm.js +7 -7
  124. package/dist/date-field.cjs.js +1 -1
  125. package/dist/date-field.esm.js +3 -3
  126. package/dist/date-picker.cjs.js +2 -2
  127. package/dist/date-picker.esm.js +17 -17
  128. package/dist/date-range-picker.cjs.js +2 -2
  129. package/dist/date-range-picker.esm.js +4 -4
  130. package/dist/date-range-time-picker.cjs.js +3 -3
  131. package/dist/date-range-time-picker.esm.js +16 -16
  132. package/dist/date-time-picker.cjs.js +26 -23
  133. package/dist/date-time-picker.esm.js +49 -46
  134. package/dist/{date-time-utils-zAx4ghvC.mjs → date-time-utils-CJUksWj3.mjs} +1 -1
  135. package/dist/{date-time-utils-C-4eHTyy.js → date-time-utils-D3hQQ5Om.js} +1 -1
  136. package/dist/description.cjs.js +1 -1
  137. package/dist/description.esm.js +1 -1
  138. package/dist/dialog.cjs.js +7 -7
  139. package/dist/dialog.esm.js +51 -47
  140. package/dist/direction-provider.cjs.js +1 -1
  141. package/dist/direction-provider.esm.js +1 -1
  142. package/dist/dismissable-layer.cjs.js +1 -1
  143. package/dist/dismissable-layer.esm.js +1 -1
  144. package/dist/dock.cjs.js +1 -1
  145. package/dist/dock.esm.js +1 -1
  146. package/dist/drawer.cjs.js +5 -5
  147. package/dist/drawer.esm.js +18 -17
  148. package/dist/dropdown.cjs.js +7 -7
  149. package/dist/dropdown.esm.js +39 -38
  150. package/dist/empty-state.cjs.js +12 -2
  151. package/dist/empty-state.esm.js +17 -7
  152. package/dist/field-error.cjs.js +1 -1
  153. package/dist/field-error.esm.js +1 -1
  154. package/dist/field.cjs.js +2 -2
  155. package/dist/field.esm.js +2 -2
  156. package/dist/fieldset.cjs.js +1 -1
  157. package/dist/fieldset.esm.js +1 -1
  158. package/dist/file-upload.cjs.js +1 -1
  159. package/dist/file-upload.esm.js +1 -1
  160. package/dist/flex.cjs.js +1 -1
  161. package/dist/flex.esm.js +1 -1
  162. package/dist/floating-toolbar.cjs.js +2 -2
  163. package/dist/floating-toolbar.esm.js +2 -2
  164. package/dist/focus-scope-Dl0qk5GP.mjs +177 -0
  165. package/dist/focus-scope-Doz0bnE1.js +1 -0
  166. package/dist/focus-scope.cjs.js +1 -1
  167. package/dist/focus-scope.esm.js +2 -2
  168. package/dist/form-control-B90_3kYN.js +1 -0
  169. package/dist/form-control-D9wWUMBl.mjs +86 -0
  170. package/dist/form.cjs.js +2 -2
  171. package/dist/form.esm.js +2 -2
  172. package/dist/gantt.cjs.js +2 -2
  173. package/dist/gantt.esm.js +2 -2
  174. package/dist/grid.cjs.js +1 -1
  175. package/dist/grid.esm.js +1 -1
  176. package/dist/hover-card.cjs.js +5 -5
  177. package/dist/hover-card.esm.js +19 -18
  178. package/dist/icon-cloud.cjs.js +1 -1
  179. package/dist/icon-cloud.esm.js +1 -1
  180. package/dist/icon.cjs.js +207 -1
  181. package/dist/icon.esm.js +294 -2
  182. package/dist/icons-CpCpPXV5.js +1 -0
  183. package/dist/icons-DWYbbhb0.mjs +115 -0
  184. package/dist/icons.d.ts +11 -1
  185. package/dist/icons.d.ts.map +1 -1
  186. package/dist/implicit-submit-B6M5Uc56.js +1 -0
  187. package/dist/implicit-submit-Lr0-q2LR.mjs +44 -0
  188. package/dist/index.cjs.js +1 -1
  189. package/dist/index.d.ts +1 -0
  190. package/dist/index.d.ts.map +1 -1
  191. package/dist/index.esm.js +309 -299
  192. package/dist/inline-edit.cjs.js +1 -1
  193. package/dist/inline-edit.esm.js +1 -1
  194. package/dist/input.cjs.js +62 -20
  195. package/dist/input.esm.js +164 -58
  196. package/dist/label.cjs.js +1 -1
  197. package/dist/label.esm.js +1 -1
  198. package/dist/layout.cjs.js +145 -4
  199. package/dist/layout.esm.js +278 -40
  200. package/dist/marquee.cjs.js +1 -1
  201. package/dist/marquee.esm.js +1 -1
  202. package/dist/masonry-grid.cjs.js +1 -1
  203. package/dist/masonry-grid.esm.js +1 -1
  204. package/dist/menu.cjs.js +8 -8
  205. package/dist/menu.esm.js +51 -47
  206. package/dist/menubar.cjs.js +9 -9
  207. package/dist/menubar.esm.js +41 -40
  208. package/dist/meter.cjs.js +1 -1
  209. package/dist/meter.esm.js +1 -1
  210. package/dist/multi-select.cjs.js +7 -7
  211. package/dist/multi-select.esm.js +55 -34
  212. package/dist/navigate-CXebafwF.mjs +18 -0
  213. package/dist/navigate-ChJVIIuS.js +1 -0
  214. package/dist/navigation-menu.cjs.js +1 -1
  215. package/dist/navigation-menu.esm.js +1 -1
  216. package/dist/number-attribute-BAF07JrU.mjs +8 -0
  217. package/dist/number-attribute-C4Rrl7d3.js +1 -0
  218. package/dist/number-field.cjs.js +8 -8
  219. package/dist/number-field.esm.js +90 -69
  220. package/dist/number-ticker.cjs.js +1 -1
  221. package/dist/number-ticker.esm.js +1 -1
  222. package/dist/odometer.cjs.js +1 -1
  223. package/dist/odometer.esm.js +1 -1
  224. package/dist/orbiter.cjs.js +1 -1
  225. package/dist/orbiter.esm.js +1 -1
  226. package/dist/pagination.cjs.js +24 -23
  227. package/dist/pagination.esm.js +61 -46
  228. package/dist/{panel-group-BVHJEdfx.js → panel-group-BIzzpQ5i.js} +1 -1
  229. package/dist/{panel-group-BxO_eNW6.mjs → panel-group-CFLjzRWI.mjs} +1 -1
  230. package/dist/panel-group.cjs.js +1 -1
  231. package/dist/panel-group.esm.js +1 -1
  232. package/dist/panel.cjs.js +1 -1
  233. package/dist/panel.esm.js +1 -1
  234. package/dist/password-field.cjs.js +36 -16
  235. package/dist/password-field.esm.js +113 -44
  236. package/dist/pin-input.cjs.js +1 -1
  237. package/dist/pin-input.esm.js +1 -1
  238. package/dist/placement-grid.cjs.js +1 -1
  239. package/dist/placement-grid.esm.js +1 -1
  240. package/dist/plugin-panel.cjs.js +1 -1
  241. package/dist/plugin-panel.esm.js +1 -1
  242. package/dist/popover.cjs.js +2 -2
  243. package/dist/popover.esm.js +28 -26
  244. package/dist/portal.cjs.js +1 -1
  245. package/dist/portal.esm.js +1 -1
  246. package/dist/positioner.cjs.js +2 -2
  247. package/dist/positioner.esm.js +35 -38
  248. package/dist/preload.cjs.js +221 -0
  249. package/dist/preload.css +220 -0
  250. package/dist/preload.d.ts +17 -0
  251. package/dist/preload.d.ts.map +1 -0
  252. package/dist/preload.esm.js +224 -0
  253. package/dist/presence.cjs.js +1 -1
  254. package/dist/presence.esm.js +1 -1
  255. package/dist/primitives/clone-source.d.ts +3 -0
  256. package/dist/primitives/clone-source.d.ts.map +1 -0
  257. package/dist/primitives/focus-scope.d.ts +6 -0
  258. package/dist/primitives/focus-scope.d.ts.map +1 -1
  259. package/dist/primitives/form-control.d.ts +68 -0
  260. package/dist/primitives/form-control.d.ts.map +1 -0
  261. package/dist/primitives/implicit-submit.d.ts +17 -0
  262. package/dist/primitives/implicit-submit.d.ts.map +1 -0
  263. package/dist/primitives/navigate.d.ts +27 -0
  264. package/dist/primitives/navigate.d.ts.map +1 -0
  265. package/dist/primitives/number-attribute.d.ts +7 -0
  266. package/dist/primitives/number-attribute.d.ts.map +1 -0
  267. package/dist/primitives/slotted-input.d.ts +19 -0
  268. package/dist/primitives/slotted-input.d.ts.map +1 -0
  269. package/dist/progress.cjs.js +3 -3
  270. package/dist/progress.esm.js +3 -3
  271. package/dist/quick-actions.cjs.js +5 -5
  272. package/dist/quick-actions.esm.js +3 -3
  273. package/dist/radio-group.cjs.js +9 -9
  274. package/dist/radio-group.esm.js +47 -24
  275. package/dist/radio.cjs.js +1 -1
  276. package/dist/radio.esm.js +1 -1
  277. package/dist/rating.cjs.js +6 -6
  278. package/dist/rating.esm.js +21 -10
  279. package/dist/{runtime-BRT7E4A8.mjs → runtime-CORXjP7e.mjs} +379 -357
  280. package/dist/runtime-uCly3ECd.js +5 -0
  281. package/dist/runtime.cjs.js +1 -1
  282. package/dist/runtime.esm.js +1 -1
  283. package/dist/scroll-area.cjs.js +1 -1
  284. package/dist/scroll-area.esm.js +1 -1
  285. package/dist/section.cjs.js +1 -1
  286. package/dist/section.esm.js +1 -1
  287. package/dist/select.cjs.js +21 -21
  288. package/dist/select.esm.js +111 -71
  289. package/dist/selection-popup.cjs.js +2 -2
  290. package/dist/selection-popup.esm.js +2 -2
  291. package/dist/semantic-tokens.d.ts.map +1 -1
  292. package/dist/separator.cjs.js +1 -1
  293. package/dist/separator.esm.js +1 -1
  294. package/dist/sidebar.cjs.js +15 -15
  295. package/dist/sidebar.esm.js +48 -42
  296. package/dist/skeleton.cjs.js +1 -1
  297. package/dist/skeleton.esm.js +1 -1
  298. package/dist/slider.cjs.js +11 -11
  299. package/dist/slider.esm.js +40 -23
  300. package/dist/slot.cjs.js +1 -1
  301. package/dist/slot.esm.js +1 -1
  302. package/dist/slotted-input-BVq2QQg2.js +1 -0
  303. package/dist/slotted-input-atWznLfm.mjs +13 -0
  304. package/dist/sortable.cjs.js +25 -25
  305. package/dist/sortable.esm.js +29 -21
  306. package/dist/spinning-text.cjs.js +1 -1
  307. package/dist/spinning-text.esm.js +1 -1
  308. package/dist/split-button.cjs.js +1 -1
  309. package/dist/split-button.esm.js +1 -1
  310. package/dist/splitter.cjs.js +1 -1
  311. package/dist/splitter.esm.js +1 -1
  312. package/dist/standalone/add-icons.d.ts +2 -0
  313. package/dist/standalone/add-icons.d.ts.map +1 -0
  314. package/dist/standalone/preload.d.ts +2 -0
  315. package/dist/standalone/preload.d.ts.map +1 -0
  316. package/dist/stepper.cjs.js +3 -3
  317. package/dist/stepper.esm.js +3 -3
  318. package/dist/switch.cjs.js +9 -9
  319. package/dist/switch.esm.js +56 -35
  320. package/dist/table.cjs.js +1 -1
  321. package/dist/table.esm.js +1 -1
  322. package/dist/tabs.cjs.js +14 -14
  323. package/dist/tabs.esm.js +129 -115
  324. package/dist/tags-input.cjs.js +1 -1
  325. package/dist/tags-input.esm.js +1 -1
  326. package/dist/textarea.cjs.js +33 -11
  327. package/dist/textarea.esm.js +74 -35
  328. package/dist/theme.d.ts +6 -0
  329. package/dist/theme.d.ts.map +1 -1
  330. package/dist/time-field.cjs.js +1 -1
  331. package/dist/time-field.esm.js +2 -2
  332. package/dist/time-picker.cjs.js +1 -1
  333. package/dist/time-picker.esm.js +3 -3
  334. package/dist/timeline.cjs.js +2 -2
  335. package/dist/timeline.esm.js +2 -2
  336. package/dist/toast.cjs.js +4 -4
  337. package/dist/toast.esm.js +17 -16
  338. package/dist/toggle-group.cjs.js +1 -1
  339. package/dist/toggle-group.esm.js +1 -1
  340. package/dist/toggle.cjs.js +3 -3
  341. package/dist/toggle.esm.js +9 -9
  342. package/dist/toolbar.cjs.js +1 -1
  343. package/dist/toolbar.esm.js +1 -1
  344. package/dist/tooltip.cjs.js +2 -2
  345. package/dist/tooltip.esm.js +12 -14
  346. package/dist/transfer-list.cjs.js +1 -1
  347. package/dist/transfer-list.esm.js +1 -1
  348. package/dist/{tree-33fVNnaf.mjs → tree-CD2k2lIC.mjs} +1 -1
  349. package/dist/{tree-Dc02MChE.js → tree-ChQfhxya.js} +1 -1
  350. package/dist/tree-item.cjs.js +1 -1
  351. package/dist/tree-item.esm.js +1 -1
  352. package/dist/tree.cjs.js +1 -1
  353. package/dist/tree.esm.js +1 -1
  354. package/dist/visually-hidden.cjs.js +1 -1
  355. package/dist/visually-hidden.esm.js +1 -1
  356. package/dist/wizard.cjs.js +4 -4
  357. package/dist/wizard.esm.js +4 -4
  358. package/package.json +3 -2
  359. package/dist/focus-scope-Bwug2gDv.js +0 -1
  360. package/dist/focus-scope-CmEsG5UZ.mjs +0 -138
  361. package/dist/runtime-CXw4SGV9.js +0 -5
  362. package/dist/ui-button-C3OmI7Sn.mjs +0 -684
  363. package/dist/ui-button-CnLwXBnx.js +0 -520
  364. package/dist/ui-icon-D3avtxX_.js +0 -207
  365. package/dist/ui-icon-DLhB08Fo.mjs +0 -361
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./ElementBase-DxbvhLJs.js"),s=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const h=require("./ElementBase-CbUsP3D6.js"),d=require("./navigate-ChJVIIuS.js"),b=`
2
2
  :host {
3
3
  display: inline-flex;
4
4
  max-width: 100%;
@@ -39,7 +39,8 @@
39
39
  padding: 0 3px;
40
40
  }
41
41
 
42
- button {
42
+ :is(button, a.page-link) {
43
+ text-decoration: none;
43
44
  padding: var(--ui-pagination-padding);
44
45
  border-radius: var(--ui-pagination-radius);
45
46
  border: 1px solid var(--ui-pagination-border);
@@ -55,22 +56,22 @@
55
56
  transition: border-color 130ms ease, background-color 130ms ease, color 130ms ease, transform 130ms ease;
56
57
  }
57
58
 
58
- button:hover:not(:disabled) {
59
+ :is(button, a.page-link):hover:not(:disabled) {
59
60
  background: var(--ui-pagination-item-bg-hover);
60
61
  }
61
62
 
62
- button:focus-visible {
63
+ :is(button, a.page-link):focus-visible {
63
64
  outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-color-focus-ring, #2563eb));
64
65
  outline-offset: var(--ui-ring-offset, 2px);
65
66
  }
66
67
 
67
- button[aria-current="page"] {
68
+ :is(button, a.page-link)[aria-current="page"] {
68
69
  background: var(--ui-pagination-active-bg);
69
70
  color: var(--ui-pagination-active-color);
70
71
  border-color: var(--ui-pagination-active-bg);
71
72
  }
72
73
 
73
- button:disabled {
74
+ :is(button, a.page-link):disabled {
74
75
  opacity: 0.46;
75
76
  cursor: not-allowed;
76
77
  }
@@ -103,22 +104,22 @@
103
104
  padding: 0;
104
105
  }
105
106
 
106
- :host([variant="flat"]) button,
107
- :host([variant="minimal"]) button {
107
+ :host([variant="flat"]) :is(button, a.page-link),
108
+ :host([variant="minimal"]) :is(button, a.page-link) {
108
109
  border-color: transparent;
109
110
  background: transparent;
110
111
  box-shadow: none;
111
112
  min-width: 30px;
112
113
  }
113
114
 
114
- :host([variant="flat"]) button:hover:not(:disabled),
115
- :host([variant="minimal"]) button:hover:not(:disabled) {
115
+ :host([variant="flat"]) :is(button, a.page-link):hover:not(:disabled),
116
+ :host([variant="minimal"]) :is(button, a.page-link):hover:not(:disabled) {
116
117
  background: color-mix(in srgb, var(--ui-color-primary, #2563eb) 10%, transparent);
117
118
  border-color: transparent;
118
119
  }
119
120
 
120
- :host([variant="flat"]) button[aria-current="page"],
121
- :host([variant="minimal"]) button[aria-current="page"] {
121
+ :host([variant="flat"]) :is(button, a.page-link)[aria-current="page"],
122
+ :host([variant="minimal"]) :is(button, a.page-link)[aria-current="page"] {
122
123
  background: color-mix(in srgb, var(--ui-color-primary, #2563eb) 16%, transparent);
123
124
  color: var(--ui-color-primary, #2563eb);
124
125
  border-color: transparent;
@@ -130,12 +131,12 @@
130
131
  box-shadow: none;
131
132
  }
132
133
 
133
- :host([variant="outline"]) button {
134
+ :host([variant="outline"]) :is(button, a.page-link) {
134
135
  background: var(--ui-color-surface, #ffffff);
135
136
  border-color: var(--ui-pagination-border);
136
137
  }
137
138
 
138
- :host([variant="outline"]) button[aria-current="page"] {
139
+ :host([variant="outline"]) :is(button, a.page-link)[aria-current="page"] {
139
140
  background: color-mix(in srgb, var(--ui-color-primary, #2563eb) 10%, var(--ui-color-surface, #ffffff));
140
141
  color: var(--ui-color-primary, #2563eb);
141
142
  border-color: color-mix(in srgb, var(--ui-color-primary, #2563eb) 45%, var(--ui-pagination-border));
@@ -149,7 +150,7 @@
149
150
  --ui-pagination-border: #334155;
150
151
  --ui-pagination-color: #e2e8f0;
151
152
  --ui-pagination-muted: #93a4bd;
152
- --ui-pagination-active-bg: #93c5fd;
153
+ --ui-pagination-active-bg: var(--ui-color-accent-on-dark, #93c5fd);
153
154
  --ui-pagination-active-color: #0f172a;
154
155
  --ui-pagination-shadow: none;
155
156
  }
@@ -159,15 +160,15 @@
159
160
  padding: 8px;
160
161
  }
161
162
 
162
- :host([variant="solid"]) button,
163
- :host([variant="contrast"]) button {
163
+ :host([variant="solid"]) :is(button, a.page-link),
164
+ :host([variant="contrast"]) :is(button, a.page-link) {
164
165
  border-color: transparent;
165
166
  }
166
167
 
167
168
  :host([headless]) .pagination { display: none; }
168
169
 
169
170
  @media (prefers-reduced-motion: reduce) {
170
- button {
171
+ :is(button, a.page-link) {
171
172
  transition: none !important;
172
173
  }
173
174
  }
@@ -178,7 +179,7 @@
178
179
  box-shadow: none;
179
180
  }
180
181
 
181
- button {
182
+ :is(button, a.page-link) {
182
183
  border-width: 2px;
183
184
  }
184
185
  }
@@ -196,9 +197,9 @@
196
197
  --ui-pagination-shadow: none;
197
198
  }
198
199
  }
199
- `;class e extends r.ElementBase{constructor(){super(),this._page=1,this._count=1,this._headless=!1,this._onClick=this._onClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this)}static get observedAttributes(){return["page","count","headless","variant","size","aria-label"]}get page(){return this._page}set page(t){this.goToPage(t)}get count(){return this._count}set count(t){const i=Math.max(1,Number(t)||1);this.setAttribute("count",String(i)),this._page>i&&this.setAttribute("page",String(i))}attributeChangedCallback(t,i,a){(t==="page"||t==="count"||t==="headless")&&(this._page=Math.max(1,Number(this.getAttribute("page"))||1),this._count=Math.max(1,Number(this.getAttribute("count"))||1),this._headless=this.hasAttribute("headless"),this._page>this._count&&(this._page=this._count)),this.requestRender()}render(){if(this._headless){this.setContent("");return}let t="";t+=`<button type="button" data-page="1" aria-label="First" ${this._page===1?"disabled":""}>&laquo;</button>`,t+=`<button type="button" data-page="${this._page-1}" aria-label="Previous" ${this._page===1?"disabled":""}>&lsaquo;</button>`;const i=this._getPageRange(this._page,this._count);i[0]>1&&(t+='<button type="button" data-page="1">1</button>',i[0]>2&&(t+='<span class="ellipsis" aria-hidden="true">…</span>'));for(let n=i[0];n<=i[1];n++)t+=`<button type="button" data-page="${n}" ${n===this._page?'aria-current="page"':""}>${n}</button>`;i[1]<this._count&&(i[1]<this._count-1&&(t+='<span class="ellipsis" aria-hidden="true">…</span>'),t+=`<button type="button" data-page="${this._count}">${this._count}</button>`),t+=`<button type="button" data-page="${this._page+1}" aria-label="Next" ${this._page===this._count?"disabled":""}>&rsaquo;</button>`,t+=`<button type="button" data-page="${this._count}" aria-label="Last" ${this._page===this._count?"disabled":""}>&raquo;</button>`,this.setContent(`
200
- <style>${s}</style>
200
+ `;class c extends h.ElementBase{constructor(){super(),this._page=1,this._count=1,this._headless=!1,this._onClick=this._onClick.bind(this),this._onKeyDown=this._onKeyDown.bind(this)}static get observedAttributes(){return["page","count","headless","variant","size","aria-label","href-template"]}get page(){return this._page}set page(t){this.goToPage(t)}get count(){return this._count}set count(t){const i=Math.max(1,Number(t)||1);this.setAttribute("count",String(i)),this._page>i&&this.setAttribute("page",String(i))}attributeChangedCallback(t,i,a){(t==="page"||t==="count"||t==="headless")&&(this._page=Math.max(1,Number(this.getAttribute("page"))||1),this._count=Math.max(1,Number(this.getAttribute("count"))||1),this._headless=this.hasAttribute("headless"),this._page>this._count&&(this._page=this._count)),i!==a&&(this.isConnected?this.render():this.requestRender())}render(){if(this._headless){this.setContent("");return}const t=this.root.activeElement,i=t?.matches?.("[data-page][aria-label]")?`[data-page][aria-label="${t.getAttribute("aria-label")}"]`:t?.matches?.("[data-page]")?'[data-page][aria-current="page"]':"",a=this.getAttribute("href-template")||"",n=(o,g,u={})=>{const l=u.label?` aria-label="${u.label}"`:"",p=u.current?' aria-current="page"':"";return a&&!u.disabled?`<a class="page-link" href="${a.split("{page}").join(String(o)).replace(/"/g,"&quot;")}" data-page="${o}"${l}${p}>${g}</a>`:`<button type="button" data-page="${o}"${l}${p} ${u.disabled?"disabled":""}>${g}</button>`};let e="";e+=n(1,"&laquo;",{label:"First",disabled:this._page===1}),e+=n(this._page-1,"&lsaquo;",{label:"Previous",disabled:this._page===1});const r=this._getPageRange(this._page,this._count);r[0]>1&&(e+=n(1,"1"),r[0]>2&&(e+='<span class="ellipsis" aria-hidden="true">…</span>'));for(let o=r[0];o<=r[1];o++)e+=n(o,String(o),{current:o===this._page});r[1]<this._count&&(r[1]<this._count-1&&(e+='<span class="ellipsis" aria-hidden="true">…</span>'),e+=n(this._count,String(this._count))),e+=n(this._page+1,"&rsaquo;",{label:"Next",disabled:this._page===this._count}),e+=n(this._count,"&raquo;",{label:"Last",disabled:this._page===this._count}),this.setContent(`
201
+ <style>${b}</style>
201
202
  <nav class="pagination" role="navigation" aria-label="${this.getAttribute("aria-label")||"Pagination"}" tabindex="0">
202
- ${t}
203
+ ${e}
203
204
  </nav>
204
- `);const a=this.root.querySelector(".pagination");a&&(a.removeEventListener("click",this._onClick),a.addEventListener("click",this._onClick),a.removeEventListener("keydown",this._onKeyDown),a.addEventListener("keydown",this._onKeyDown))}goToPage(t){const i=Math.max(1,Math.min(this._count,Number(t)||1));i!==this._page&&this._applyPageChange(i)}nextPage(){this.goToPage(this._page+1)}prevPage(){this.goToPage(this._page-1)}firstPage(){this.goToPage(1)}lastPage(){this.goToPage(this._count)}focusCurrent(){this.root.querySelector('button[aria-current="page"]')?.focus()}_getPageRange(t,i){return i<=5?[1,i]:t<=3?[1,5]:t>=i-2?[i-4,i]:[t-2,t+2]}_onClick(t){const i=t.target.closest("button[data-page]");if(!i||i.hasAttribute("disabled"))return;const a=Number(i.getAttribute("data-page"));isNaN(a)||a<1||a>this._count||a===this._page||this._applyPageChange(a)}_onKeyDown(t){const i=this.root.querySelector(".pagination");if(!i)return;const a=Array.from(i.querySelectorAll("button:not(:disabled)")),n=this.root.activeElement;let o=a.indexOf(n);t.key==="ArrowRight"||t.key==="ArrowDown"?(o=(o+1)%a.length,a[o].focus(),t.preventDefault()):t.key==="ArrowLeft"||t.key==="ArrowUp"?(o=(o-1+a.length)%a.length,a[o].focus(),t.preventDefault()):t.key==="Home"?(a[0].focus(),t.preventDefault()):t.key==="End"&&(a[a.length-1].focus(),t.preventDefault())}_applyPageChange(t){const i=this._page,a=Math.max(1,Math.min(this._count,Number(t)||1));if(a===i)return;const n=a===1&&i!==1?"first":a===this._count&&i!==this._count?"last":a===i-1?"prev":a===i+1?"next":"change";this.setAttribute("page",String(a));const o={page:a,previousPage:i,count:this._count,reason:n};this.dispatchEvent(new CustomEvent(n,{detail:o,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:o,bubbles:!0,composed:!0}))}}typeof customElements<"u"&&!customElements.get("ui-pagination")&&customElements.define("ui-pagination",e);exports.UIPagination=e;
205
+ `);const s=this.root.querySelector(".pagination");if(s&&(s.removeEventListener("click",this._onClick),s.addEventListener("click",this._onClick),s.removeEventListener("keydown",this._onKeyDown),s.addEventListener("keydown",this._onKeyDown)),i&&!this.root.activeElement){const o=this.root.querySelector(i),g=this.root.querySelector('[data-page][aria-current="page"]');(o&&!o.disabled?o:g)?.focus({preventScroll:!0})}}goToPage(t){const i=Math.max(1,Math.min(this._count,Number(t)||1));i!==this._page&&this._applyPageChange(i)}nextPage(){this.goToPage(this._page+1)}prevPage(){this.goToPage(this._page-1)}firstPage(){this.goToPage(1)}lastPage(){this.goToPage(this._count)}focusCurrent(){this.root.querySelector('[data-page][aria-current="page"]')?.focus()}_getPageRange(t,i){return i<=5?[1,i]:t<=3?[1,5]:t>=i-2?[i-4,i]:[t-2,t+2]}_onClick(t){const i=t.target.closest("[data-page]");if(!i||i.hasAttribute("disabled"))return;const a=Number(i.getAttribute("data-page"));if(!(isNaN(a)||a<1||a>this._count)){if(i instanceof HTMLAnchorElement){if(!d.requestNavigate(this,{href:i.getAttribute("href")||"",page:a,previousPage:this._page},t))return;t.preventDefault()}a!==this._page&&this._applyPageChange(a)}}_onKeyDown(t){const i=this.root.querySelector(".pagination");if(!i)return;const a=Array.from(i.querySelectorAll("button:not(:disabled), a[data-page]")),n=this.root.activeElement;let e=a.indexOf(n);t.key==="ArrowRight"||t.key==="ArrowDown"?(e=(e+1)%a.length,a[e].focus(),t.preventDefault()):t.key==="ArrowLeft"||t.key==="ArrowUp"?(e=(e-1+a.length)%a.length,a[e].focus(),t.preventDefault()):t.key==="Home"?(a[0].focus(),t.preventDefault()):t.key==="End"&&(a[a.length-1].focus(),t.preventDefault())}_applyPageChange(t){const i=this._page,a=Math.max(1,Math.min(this._count,Number(t)||1));if(a===i)return;const n=a===1&&i!==1?"first":a===this._count&&i!==this._count?"last":a===i-1?"prev":a===i+1?"next":"change";this.setAttribute("page",String(a));const e={page:a,previousPage:i,count:this._count,reason:n};this.dispatchEvent(new CustomEvent(n,{detail:e,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:e,bubbles:!0,composed:!0}))}}typeof customElements<"u"&&!customElements.get("ui-pagination")&&customElements.define("ui-pagination",c);exports.UIPagination=c;
@@ -1,5 +1,6 @@
1
- import { E as e } from "./ElementBase-BeZT54Hj.mjs";
2
- const r = `
1
+ import { E as c } from "./ElementBase-D5QsC5Vw.mjs";
2
+ import { r as h } from "./navigate-CXebafwF.mjs";
3
+ const d = `
3
4
  :host {
4
5
  display: inline-flex;
5
6
  max-width: 100%;
@@ -40,7 +41,8 @@ const r = `
40
41
  padding: 0 3px;
41
42
  }
42
43
 
43
- button {
44
+ :is(button, a.page-link) {
45
+ text-decoration: none;
44
46
  padding: var(--ui-pagination-padding);
45
47
  border-radius: var(--ui-pagination-radius);
46
48
  border: 1px solid var(--ui-pagination-border);
@@ -56,22 +58,22 @@ const r = `
56
58
  transition: border-color 130ms ease, background-color 130ms ease, color 130ms ease, transform 130ms ease;
57
59
  }
58
60
 
59
- button:hover:not(:disabled) {
61
+ :is(button, a.page-link):hover:not(:disabled) {
60
62
  background: var(--ui-pagination-item-bg-hover);
61
63
  }
62
64
 
63
- button:focus-visible {
65
+ :is(button, a.page-link):focus-visible {
64
66
  outline: var(--ui-ring-width, 2px) solid var(--ui-ring-color, var(--ui-color-focus-ring, #2563eb));
65
67
  outline-offset: var(--ui-ring-offset, 2px);
66
68
  }
67
69
 
68
- button[aria-current="page"] {
70
+ :is(button, a.page-link)[aria-current="page"] {
69
71
  background: var(--ui-pagination-active-bg);
70
72
  color: var(--ui-pagination-active-color);
71
73
  border-color: var(--ui-pagination-active-bg);
72
74
  }
73
75
 
74
- button:disabled {
76
+ :is(button, a.page-link):disabled {
75
77
  opacity: 0.46;
76
78
  cursor: not-allowed;
77
79
  }
@@ -104,22 +106,22 @@ const r = `
104
106
  padding: 0;
105
107
  }
106
108
 
107
- :host([variant="flat"]) button,
108
- :host([variant="minimal"]) button {
109
+ :host([variant="flat"]) :is(button, a.page-link),
110
+ :host([variant="minimal"]) :is(button, a.page-link) {
109
111
  border-color: transparent;
110
112
  background: transparent;
111
113
  box-shadow: none;
112
114
  min-width: 30px;
113
115
  }
114
116
 
115
- :host([variant="flat"]) button:hover:not(:disabled),
116
- :host([variant="minimal"]) button:hover:not(:disabled) {
117
+ :host([variant="flat"]) :is(button, a.page-link):hover:not(:disabled),
118
+ :host([variant="minimal"]) :is(button, a.page-link):hover:not(:disabled) {
117
119
  background: color-mix(in srgb, var(--ui-color-primary, #2563eb) 10%, transparent);
118
120
  border-color: transparent;
119
121
  }
120
122
 
121
- :host([variant="flat"]) button[aria-current="page"],
122
- :host([variant="minimal"]) button[aria-current="page"] {
123
+ :host([variant="flat"]) :is(button, a.page-link)[aria-current="page"],
124
+ :host([variant="minimal"]) :is(button, a.page-link)[aria-current="page"] {
123
125
  background: color-mix(in srgb, var(--ui-color-primary, #2563eb) 16%, transparent);
124
126
  color: var(--ui-color-primary, #2563eb);
125
127
  border-color: transparent;
@@ -131,12 +133,12 @@ const r = `
131
133
  box-shadow: none;
132
134
  }
133
135
 
134
- :host([variant="outline"]) button {
136
+ :host([variant="outline"]) :is(button, a.page-link) {
135
137
  background: var(--ui-color-surface, #ffffff);
136
138
  border-color: var(--ui-pagination-border);
137
139
  }
138
140
 
139
- :host([variant="outline"]) button[aria-current="page"] {
141
+ :host([variant="outline"]) :is(button, a.page-link)[aria-current="page"] {
140
142
  background: color-mix(in srgb, var(--ui-color-primary, #2563eb) 10%, var(--ui-color-surface, #ffffff));
141
143
  color: var(--ui-color-primary, #2563eb);
142
144
  border-color: color-mix(in srgb, var(--ui-color-primary, #2563eb) 45%, var(--ui-pagination-border));
@@ -150,7 +152,7 @@ const r = `
150
152
  --ui-pagination-border: #334155;
151
153
  --ui-pagination-color: #e2e8f0;
152
154
  --ui-pagination-muted: #93a4bd;
153
- --ui-pagination-active-bg: #93c5fd;
155
+ --ui-pagination-active-bg: var(--ui-color-accent-on-dark, #93c5fd);
154
156
  --ui-pagination-active-color: #0f172a;
155
157
  --ui-pagination-shadow: none;
156
158
  }
@@ -160,15 +162,15 @@ const r = `
160
162
  padding: 8px;
161
163
  }
162
164
 
163
- :host([variant="solid"]) button,
164
- :host([variant="contrast"]) button {
165
+ :host([variant="solid"]) :is(button, a.page-link),
166
+ :host([variant="contrast"]) :is(button, a.page-link) {
165
167
  border-color: transparent;
166
168
  }
167
169
 
168
170
  :host([headless]) .pagination { display: none; }
169
171
 
170
172
  @media (prefers-reduced-motion: reduce) {
171
- button {
173
+ :is(button, a.page-link) {
172
174
  transition: none !important;
173
175
  }
174
176
  }
@@ -179,7 +181,7 @@ const r = `
179
181
  box-shadow: none;
180
182
  }
181
183
 
182
- button {
184
+ :is(button, a.page-link) {
183
185
  border-width: 2px;
184
186
  }
185
187
  }
@@ -198,12 +200,12 @@ const r = `
198
200
  }
199
201
  }
200
202
  `;
201
- class s extends e {
203
+ class b extends c {
202
204
  constructor() {
203
205
  super(), this._page = 1, this._count = 1, this._headless = !1, this._onClick = this._onClick.bind(this), this._onKeyDown = this._onKeyDown.bind(this);
204
206
  }
205
207
  static get observedAttributes() {
206
- return ["page", "count", "headless", "variant", "size", "aria-label"];
208
+ return ["page", "count", "headless", "variant", "size", "aria-label", "href-template"];
207
209
  }
208
210
  get page() {
209
211
  return this._page;
@@ -219,27 +221,34 @@ class s extends e {
219
221
  this.setAttribute("count", String(i)), this._page > i && this.setAttribute("page", String(i));
220
222
  }
221
223
  attributeChangedCallback(t, i, a) {
222
- (t === "page" || t === "count" || t === "headless") && (this._page = Math.max(1, Number(this.getAttribute("page")) || 1), this._count = Math.max(1, Number(this.getAttribute("count")) || 1), this._headless = this.hasAttribute("headless"), this._page > this._count && (this._page = this._count)), this.requestRender();
224
+ (t === "page" || t === "count" || t === "headless") && (this._page = Math.max(1, Number(this.getAttribute("page")) || 1), this._count = Math.max(1, Number(this.getAttribute("count")) || 1), this._headless = this.hasAttribute("headless"), this._page > this._count && (this._page = this._count)), i !== a && (this.isConnected ? this.render() : this.requestRender());
223
225
  }
224
226
  render() {
225
227
  if (this._headless) {
226
228
  this.setContent("");
227
229
  return;
228
230
  }
229
- let t = "";
230
- t += `<button type="button" data-page="1" aria-label="First" ${this._page === 1 ? "disabled" : ""}>&laquo;</button>`, t += `<button type="button" data-page="${this._page - 1}" aria-label="Previous" ${this._page === 1 ? "disabled" : ""}>&lsaquo;</button>`;
231
- const i = this._getPageRange(this._page, this._count);
232
- i[0] > 1 && (t += '<button type="button" data-page="1">1</button>', i[0] > 2 && (t += '<span class="ellipsis" aria-hidden="true">…</span>'));
233
- for (let n = i[0]; n <= i[1]; n++)
234
- t += `<button type="button" data-page="${n}" ${n === this._page ? 'aria-current="page"' : ""}>${n}</button>`;
235
- i[1] < this._count && (i[1] < this._count - 1 && (t += '<span class="ellipsis" aria-hidden="true">…</span>'), t += `<button type="button" data-page="${this._count}">${this._count}</button>`), t += `<button type="button" data-page="${this._page + 1}" aria-label="Next" ${this._page === this._count ? "disabled" : ""}>&rsaquo;</button>`, t += `<button type="button" data-page="${this._count}" aria-label="Last" ${this._page === this._count ? "disabled" : ""}>&raquo;</button>`, this.setContent(`
236
- <style>${r}</style>
231
+ const t = this.root.activeElement, i = t?.matches?.("[data-page][aria-label]") ? `[data-page][aria-label="${t.getAttribute("aria-label")}"]` : t?.matches?.("[data-page]") ? '[data-page][aria-current="page"]' : "", a = this.getAttribute("href-template") || "", e = (o, g, u = {}) => {
232
+ const p = u.label ? ` aria-label="${u.label}"` : "", l = u.current ? ' aria-current="page"' : "";
233
+ return a && !u.disabled ? `<a class="page-link" href="${a.split("{page}").join(String(o)).replace(/"/g, "&quot;")}" data-page="${o}"${p}${l}>${g}</a>` : `<button type="button" data-page="${o}"${p}${l} ${u.disabled ? "disabled" : ""}>${g}</button>`;
234
+ };
235
+ let n = "";
236
+ n += e(1, "&laquo;", { label: "First", disabled: this._page === 1 }), n += e(this._page - 1, "&lsaquo;", { label: "Previous", disabled: this._page === 1 });
237
+ const r = this._getPageRange(this._page, this._count);
238
+ r[0] > 1 && (n += e(1, "1"), r[0] > 2 && (n += '<span class="ellipsis" aria-hidden="true">…</span>'));
239
+ for (let o = r[0]; o <= r[1]; o++)
240
+ n += e(o, String(o), { current: o === this._page });
241
+ r[1] < this._count && (r[1] < this._count - 1 && (n += '<span class="ellipsis" aria-hidden="true">…</span>'), n += e(this._count, String(this._count))), n += e(this._page + 1, "&rsaquo;", { label: "Next", disabled: this._page === this._count }), n += e(this._count, "&raquo;", { label: "Last", disabled: this._page === this._count }), this.setContent(`
242
+ <style>${d}</style>
237
243
  <nav class="pagination" role="navigation" aria-label="${this.getAttribute("aria-label") || "Pagination"}" tabindex="0">
238
- ${t}
244
+ ${n}
239
245
  </nav>
240
246
  `);
241
- const a = this.root.querySelector(".pagination");
242
- a && (a.removeEventListener("click", this._onClick), a.addEventListener("click", this._onClick), a.removeEventListener("keydown", this._onKeyDown), a.addEventListener("keydown", this._onKeyDown));
247
+ const s = this.root.querySelector(".pagination");
248
+ if (s && (s.removeEventListener("click", this._onClick), s.addEventListener("click", this._onClick), s.removeEventListener("keydown", this._onKeyDown), s.addEventListener("keydown", this._onKeyDown)), i && !this.root.activeElement) {
249
+ const o = this.root.querySelector(i), g = this.root.querySelector('[data-page][aria-current="page"]');
250
+ (o && !o.disabled ? o : g)?.focus({ preventScroll: !0 });
251
+ }
243
252
  }
244
253
  goToPage(t) {
245
254
  const i = Math.max(1, Math.min(this._count, Number(t) || 1));
@@ -258,39 +267,45 @@ class s extends e {
258
267
  this.goToPage(this._count);
259
268
  }
260
269
  focusCurrent() {
261
- this.root.querySelector('button[aria-current="page"]')?.focus();
270
+ this.root.querySelector('[data-page][aria-current="page"]')?.focus();
262
271
  }
263
272
  _getPageRange(t, i) {
264
273
  return i <= 5 ? [1, i] : t <= 3 ? [1, 5] : t >= i - 2 ? [i - 4, i] : [t - 2, t + 2];
265
274
  }
266
275
  _onClick(t) {
267
- const i = t.target.closest("button[data-page]");
276
+ const i = t.target.closest("[data-page]");
268
277
  if (!i || i.hasAttribute("disabled")) return;
269
278
  const a = Number(i.getAttribute("data-page"));
270
- isNaN(a) || a < 1 || a > this._count || a === this._page || this._applyPageChange(a);
279
+ if (!(isNaN(a) || a < 1 || a > this._count)) {
280
+ if (i instanceof HTMLAnchorElement) {
281
+ if (!h(this, { href: i.getAttribute("href") || "", page: a, previousPage: this._page }, t)) return;
282
+ t.preventDefault();
283
+ }
284
+ a !== this._page && this._applyPageChange(a);
285
+ }
271
286
  }
272
287
  _onKeyDown(t) {
273
288
  const i = this.root.querySelector(".pagination");
274
289
  if (!i) return;
275
- const a = Array.from(i.querySelectorAll("button:not(:disabled)")), n = this.root.activeElement;
276
- let o = a.indexOf(n);
277
- t.key === "ArrowRight" || t.key === "ArrowDown" ? (o = (o + 1) % a.length, a[o].focus(), t.preventDefault()) : t.key === "ArrowLeft" || t.key === "ArrowUp" ? (o = (o - 1 + a.length) % a.length, a[o].focus(), t.preventDefault()) : t.key === "Home" ? (a[0].focus(), t.preventDefault()) : t.key === "End" && (a[a.length - 1].focus(), t.preventDefault());
290
+ const a = Array.from(i.querySelectorAll("button:not(:disabled), a[data-page]")), e = this.root.activeElement;
291
+ let n = a.indexOf(e);
292
+ t.key === "ArrowRight" || t.key === "ArrowDown" ? (n = (n + 1) % a.length, a[n].focus(), t.preventDefault()) : t.key === "ArrowLeft" || t.key === "ArrowUp" ? (n = (n - 1 + a.length) % a.length, a[n].focus(), t.preventDefault()) : t.key === "Home" ? (a[0].focus(), t.preventDefault()) : t.key === "End" && (a[a.length - 1].focus(), t.preventDefault());
278
293
  }
279
294
  _applyPageChange(t) {
280
295
  const i = this._page, a = Math.max(1, Math.min(this._count, Number(t) || 1));
281
296
  if (a === i) return;
282
- const n = a === 1 && i !== 1 ? "first" : a === this._count && i !== this._count ? "last" : a === i - 1 ? "prev" : a === i + 1 ? "next" : "change";
297
+ const e = a === 1 && i !== 1 ? "first" : a === this._count && i !== this._count ? "last" : a === i - 1 ? "prev" : a === i + 1 ? "next" : "change";
283
298
  this.setAttribute("page", String(a));
284
- const o = {
299
+ const n = {
285
300
  page: a,
286
301
  previousPage: i,
287
302
  count: this._count,
288
- reason: n
303
+ reason: e
289
304
  };
290
- this.dispatchEvent(new CustomEvent(n, { detail: o, bubbles: !0, composed: !0 })), this.dispatchEvent(new CustomEvent("change", { detail: o, bubbles: !0, composed: !0 }));
305
+ this.dispatchEvent(new CustomEvent(e, { detail: n, bubbles: !0, composed: !0 })), this.dispatchEvent(new CustomEvent("change", { detail: n, bubbles: !0, composed: !0 }));
291
306
  }
292
307
  }
293
- typeof customElements < "u" && !customElements.get("ui-pagination") && customElements.define("ui-pagination", s);
308
+ typeof customElements < "u" && !customElements.get("ui-pagination") && customElements.define("ui-pagination", b);
294
309
  export {
295
- s as UIPagination
310
+ b as UIPagination
296
311
  };
@@ -1,4 +1,4 @@
1
- "use strict";const P=require("./ElementBase-DxbvhLJs.js"),y=require("./panel.cjs.js"),b=require("./splitter.cjs.js");function f(o,e,t){return Math.min(t,Math.max(e,o))}function x(o){return Math.round(o*1e3)/1e3}function v(o){if(o.collapsed){const i=f(o.collapsedSize,0,100);return{min:i,max:i}}const e=f(o.min,0,100),t=f(Math.max(e,o.max),e,100);return{min:e,max:t}}function p(o,e=[]){if(!o.length)return[];const t=o.map((l,c)=>{const d=e[c],{min:h,max:_}=v(l);return Number.isFinite(d)?f(Number(d),h,_):l.collapsed?h:NaN}),i=t.reduce((l,c,d)=>(Number.isFinite(c)||l.push(d),l),[]),n=t.reduce((l,c)=>l+(Number.isFinite(c)?c:0),0),s=Math.max(0,100-n),r=i.length?s/i.length:0;i.forEach(l=>{const{min:c,max:d}=v(o[l]);t[l]=f(r,c,d)});let a=t.reduce((l,c)=>l+c,0),u=x(100-a),m=0;for(;Math.abs(u)>.001&&m<30;){const l=o.reduce((h,_,g)=>{const{min:w,max:S}=v(_);return u>0&&t[g]<S-.001&&h.push(g),u<0&&t[g]>w+.001&&h.push(g),h},[]);if(!l.length)break;const c=u/l.length;let d=0;if(l.forEach(h=>{const{min:_,max:g}=v(o[h]),w=t[h],S=f(w+c,_,g);t[h]=x(S),d+=t[h]-w}),a=t.reduce((h,_)=>h+_,0),u=x(100-a),Math.abs(d)<.001)break;m+=1}return t.map(l=>x(l))}function L(o,e,t,i){const n=t,s=t+1;if(n<0||s>=o.length)return[...o];const r=[...o],a=r[n],u=r[s],m=v(e[n]),l=v(e[s]),c=Math.max(m.min-a,u-l.max),d=Math.min(m.max-a,u-l.min),h=f(i,c,d);return r[n]=x(a+h),r[s]=x(u-h),r}const E=`
1
+ "use strict";const P=require("./ElementBase-CbUsP3D6.js"),y=require("./panel.cjs.js"),b=require("./splitter.cjs.js");function f(o,e,t){return Math.min(t,Math.max(e,o))}function x(o){return Math.round(o*1e3)/1e3}function v(o){if(o.collapsed){const i=f(o.collapsedSize,0,100);return{min:i,max:i}}const e=f(o.min,0,100),t=f(Math.max(e,o.max),e,100);return{min:e,max:t}}function p(o,e=[]){if(!o.length)return[];const t=o.map((l,c)=>{const d=e[c],{min:h,max:_}=v(l);return Number.isFinite(d)?f(Number(d),h,_):l.collapsed?h:NaN}),i=t.reduce((l,c,d)=>(Number.isFinite(c)||l.push(d),l),[]),n=t.reduce((l,c)=>l+(Number.isFinite(c)?c:0),0),s=Math.max(0,100-n),r=i.length?s/i.length:0;i.forEach(l=>{const{min:c,max:d}=v(o[l]);t[l]=f(r,c,d)});let a=t.reduce((l,c)=>l+c,0),u=x(100-a),m=0;for(;Math.abs(u)>.001&&m<30;){const l=o.reduce((h,_,g)=>{const{min:w,max:S}=v(_);return u>0&&t[g]<S-.001&&h.push(g),u<0&&t[g]>w+.001&&h.push(g),h},[]);if(!l.length)break;const c=u/l.length;let d=0;if(l.forEach(h=>{const{min:_,max:g}=v(o[h]),w=t[h],S=f(w+c,_,g);t[h]=x(S),d+=t[h]-w}),a=t.reduce((h,_)=>h+_,0),u=x(100-a),Math.abs(d)<.001)break;m+=1}return t.map(l=>x(l))}function L(o,e,t,i){const n=t,s=t+1;if(n<0||s>=o.length)return[...o];const r=[...o],a=r[n],u=r[s],m=v(e[n]),l=v(e[s]),c=Math.max(m.min-a,u-l.max),d=Math.min(m.max-a,u-l.min),h=f(i,c,d);return r[n]=x(a+h),r[s]=x(u-h),r}const E=`
2
2
  :host {
3
3
  display: block;
4
4
  min-inline-size: 0;
@@ -1,4 +1,4 @@
1
- import { E as A } from "./ElementBase-BeZT54Hj.mjs";
1
+ import { E as A } from "./ElementBase-D5QsC5Vw.mjs";
2
2
  import { UIPanel as y } from "./panel.esm.js";
3
3
  import { UISplitter as b } from "./splitter.esm.js";
4
4
  function f(o, e, t) {
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./panel-group-BVHJEdfx.js");exports.UIPanelGroup=e.UIPanelGroup;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./panel-group-BIzzpQ5i.js");exports.UIPanelGroup=e.UIPanelGroup;
@@ -1,4 +1,4 @@
1
- import { U as a } from "./panel-group-BxO_eNW6.mjs";
1
+ import { U as a } from "./panel-group-CFLjzRWI.mjs";
2
2
  export {
3
3
  a as UIPanelGroup
4
4
  };
package/dist/panel.cjs.js CHANGED
@@ -1,4 +1,4 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./ElementBase-DxbvhLJs.js"),s=`
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const t=require("./ElementBase-CbUsP3D6.js"),s=`
2
2
  :host {
3
3
  display: block;
4
4
  min-inline-size: 0;
package/dist/panel.esm.js CHANGED
@@ -1,4 +1,4 @@
1
- import { E as e } from "./ElementBase-BeZT54Hj.mjs";
1
+ import { E as e } from "./ElementBase-D5QsC5Vw.mjs";
2
2
  const s = `
3
3
  :host {
4
4
  display: block;