@vielzeug/buildit 2.0.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 (792) hide show
  1. package/README.md +124 -0
  2. package/dist/accordion-item.cjs +32 -0
  3. package/dist/accordion-item.cjs.map +1 -0
  4. package/dist/accordion-item.js +72 -0
  5. package/dist/accordion-item.js.map +1 -0
  6. package/dist/accordion.cjs +2 -0
  7. package/dist/accordion.cjs.map +1 -0
  8. package/dist/accordion.js +37 -0
  9. package/dist/accordion.js.map +1 -0
  10. package/dist/alert.cjs +31 -0
  11. package/dist/alert.cjs.map +1 -0
  12. package/dist/alert.js +85 -0
  13. package/dist/alert.js.map +1 -0
  14. package/dist/avatar.cjs +37 -0
  15. package/dist/avatar.cjs.map +1 -0
  16. package/dist/avatar.js +123 -0
  17. package/dist/avatar.js.map +1 -0
  18. package/dist/badge.cjs +7 -0
  19. package/dist/badge.cjs.map +1 -0
  20. package/dist/badge.js +60 -0
  21. package/dist/badge.js.map +1 -0
  22. package/dist/box.cjs +2 -0
  23. package/dist/box.cjs.map +1 -0
  24. package/dist/box.js +22 -0
  25. package/dist/box.js.map +1 -0
  26. package/dist/breadcrumb.cjs +21 -0
  27. package/dist/breadcrumb.cjs.map +1 -0
  28. package/dist/breadcrumb.js +58 -0
  29. package/dist/breadcrumb.js.map +1 -0
  30. package/dist/buildit.cjs +1892 -0
  31. package/dist/buildit.cjs.map +1 -0
  32. package/dist/buildit.js +1892 -0
  33. package/dist/buildit.js.map +1 -0
  34. package/dist/button-group.cjs +6 -0
  35. package/dist/button-group.cjs.map +1 -0
  36. package/dist/button-group.js +31 -0
  37. package/dist/button-group.js.map +1 -0
  38. package/dist/button.cjs +30 -0
  39. package/dist/button.cjs.map +1 -0
  40. package/dist/button.js +115 -0
  41. package/dist/button.js.map +1 -0
  42. package/dist/card.cjs +23 -0
  43. package/dist/card.cjs.map +1 -0
  44. package/dist/card.js +99 -0
  45. package/dist/card.js.map +1 -0
  46. package/dist/checkbox-group.cjs +20 -0
  47. package/dist/checkbox-group.cjs.map +1 -0
  48. package/dist/checkbox-group.js +88 -0
  49. package/dist/checkbox-group.js.map +1 -0
  50. package/dist/checkbox.cjs +37 -0
  51. package/dist/checkbox.cjs.map +1 -0
  52. package/dist/checkbox.js +115 -0
  53. package/dist/checkbox.js.map +1 -0
  54. package/dist/chip.cjs +56 -0
  55. package/dist/chip.cjs.map +1 -0
  56. package/dist/chip.js +140 -0
  57. package/dist/chip.js.map +1 -0
  58. package/dist/combobox.cjs +93 -0
  59. package/dist/combobox.cjs.map +1 -0
  60. package/dist/combobox.js +401 -0
  61. package/dist/combobox.js.map +1 -0
  62. package/dist/content/avatar/avatar-group.css?inline.cjs +2 -0
  63. package/dist/content/avatar/avatar-group.css?inline.cjs.map +1 -0
  64. package/dist/content/avatar/avatar-group.css?inline.js +6 -0
  65. package/dist/content/avatar/avatar-group.css?inline.js.map +1 -0
  66. package/dist/content/avatar/avatar.css?inline.cjs +2 -0
  67. package/dist/content/avatar/avatar.css?inline.cjs.map +1 -0
  68. package/dist/content/avatar/avatar.css?inline.js +6 -0
  69. package/dist/content/avatar/avatar.css?inline.js.map +1 -0
  70. package/dist/content/avatar/avatar.d.ts +78 -0
  71. package/dist/content/avatar/avatar.d.ts.map +1 -0
  72. package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs +2 -0
  73. package/dist/content/breadcrumb/breadcrumb-item.css?inline.cjs.map +1 -0
  74. package/dist/content/breadcrumb/breadcrumb-item.css?inline.js +6 -0
  75. package/dist/content/breadcrumb/breadcrumb-item.css?inline.js.map +1 -0
  76. package/dist/content/breadcrumb/breadcrumb.css?inline.cjs +2 -0
  77. package/dist/content/breadcrumb/breadcrumb.css?inline.cjs.map +1 -0
  78. package/dist/content/breadcrumb/breadcrumb.css?inline.js +6 -0
  79. package/dist/content/breadcrumb/breadcrumb.css?inline.js.map +1 -0
  80. package/dist/content/breadcrumb/breadcrumb.d.ts +36 -0
  81. package/dist/content/breadcrumb/breadcrumb.d.ts.map +1 -0
  82. package/dist/content/card/card.css?inline.cjs +2 -0
  83. package/dist/content/card/card.css?inline.cjs.map +1 -0
  84. package/dist/content/card/card.css?inline.js +6 -0
  85. package/dist/content/card/card.css?inline.js.map +1 -0
  86. package/dist/content/card/card.d.ts +66 -0
  87. package/dist/content/card/card.d.ts.map +1 -0
  88. package/dist/content/index.cjs +1 -0
  89. package/dist/content/index.d.ts +15 -0
  90. package/dist/content/index.d.ts.map +1 -0
  91. package/dist/content/index.js +7 -0
  92. package/dist/content/pagination/pagination.css?inline.cjs +2 -0
  93. package/dist/content/pagination/pagination.css?inline.cjs.map +1 -0
  94. package/dist/content/pagination/pagination.css?inline.js +6 -0
  95. package/dist/content/pagination/pagination.css?inline.js.map +1 -0
  96. package/dist/content/pagination/pagination.d.ts +56 -0
  97. package/dist/content/pagination/pagination.d.ts.map +1 -0
  98. package/dist/content/separator/separator.css?inline.cjs +2 -0
  99. package/dist/content/separator/separator.css?inline.cjs.map +1 -0
  100. package/dist/content/separator/separator.css?inline.js +6 -0
  101. package/dist/content/separator/separator.css?inline.js.map +1 -0
  102. package/dist/content/separator/separator.d.ts +35 -0
  103. package/dist/content/separator/separator.d.ts.map +1 -0
  104. package/dist/content/table/table.css?inline.cjs +2 -0
  105. package/dist/content/table/table.css?inline.cjs.map +1 -0
  106. package/dist/content/table/table.css?inline.js +6 -0
  107. package/dist/content/table/table.css?inline.js.map +1 -0
  108. package/dist/content/table/table.d.ts +69 -0
  109. package/dist/content/table/table.d.ts.map +1 -0
  110. package/dist/content/text/text.css?inline.cjs +2 -0
  111. package/dist/content/text/text.css?inline.cjs.map +1 -0
  112. package/dist/content/text/text.css?inline.js +6 -0
  113. package/dist/content/text/text.css?inline.js.map +1 -0
  114. package/dist/content/text/text.d.ts +55 -0
  115. package/dist/content/text/text.d.ts.map +1 -0
  116. package/dist/craftit/dist/core/internal.cjs +2 -0
  117. package/dist/craftit/dist/core/internal.cjs.map +1 -0
  118. package/dist/craftit/dist/core/internal.js +25 -0
  119. package/dist/craftit/dist/core/internal.js.map +1 -0
  120. package/dist/craftit/dist/core/runtime-bindings.cjs +2 -0
  121. package/dist/craftit/dist/core/runtime-bindings.cjs.map +1 -0
  122. package/dist/craftit/dist/core/runtime-bindings.js +38 -0
  123. package/dist/craftit/dist/core/runtime-bindings.js.map +1 -0
  124. package/dist/craftit/dist/core/runtime-lifecycle.cjs +2 -0
  125. package/dist/craftit/dist/core/runtime-lifecycle.cjs.map +1 -0
  126. package/dist/craftit/dist/core/runtime-lifecycle.js +68 -0
  127. package/dist/craftit/dist/core/runtime-lifecycle.js.map +1 -0
  128. package/dist/craftit/dist/core/runtime.cjs +1 -0
  129. package/dist/craftit/dist/core/runtime.js +2 -0
  130. package/dist/craftit/dist/core/utilities.cjs +2 -0
  131. package/dist/craftit/dist/core/utilities.cjs.map +1 -0
  132. package/dist/craftit/dist/core/utilities.js +12 -0
  133. package/dist/craftit/dist/core/utilities.js.map +1 -0
  134. package/dist/craftit/dist/directives/attr.cjs +2 -0
  135. package/dist/craftit/dist/directives/attr.cjs.map +1 -0
  136. package/dist/craftit/dist/directives/attr.js +13 -0
  137. package/dist/craftit/dist/directives/attr.js.map +1 -0
  138. package/dist/craftit/dist/directives/bind.cjs +1 -0
  139. package/dist/craftit/dist/directives/bind.js +3 -0
  140. package/dist/craftit/dist/directives/choose.cjs +1 -0
  141. package/dist/craftit/dist/directives/choose.js +1 -0
  142. package/dist/craftit/dist/directives/classes.cjs +2 -0
  143. package/dist/craftit/dist/directives/classes.cjs.map +1 -0
  144. package/dist/craftit/dist/directives/classes.js +12 -0
  145. package/dist/craftit/dist/directives/classes.js.map +1 -0
  146. package/dist/craftit/dist/directives/each.cjs +2 -0
  147. package/dist/craftit/dist/directives/each.cjs.map +1 -0
  148. package/dist/craftit/dist/directives/each.js +96 -0
  149. package/dist/craftit/dist/directives/each.js.map +1 -0
  150. package/dist/craftit/dist/directives/index.cjs +1 -0
  151. package/dist/craftit/dist/directives/index.js +12 -0
  152. package/dist/craftit/dist/directives/match.cjs +1 -0
  153. package/dist/craftit/dist/directives/match.js +1 -0
  154. package/dist/craftit/dist/directives/memo.cjs +1 -0
  155. package/dist/craftit/dist/directives/memo.js +1 -0
  156. package/dist/craftit/dist/directives/raw.cjs +1 -0
  157. package/dist/craftit/dist/directives/raw.js +2 -0
  158. package/dist/craftit/dist/directives/spread.cjs +2 -0
  159. package/dist/craftit/dist/directives/spread.cjs.map +1 -0
  160. package/dist/craftit/dist/directives/spread.js +30 -0
  161. package/dist/craftit/dist/directives/spread.js.map +1 -0
  162. package/dist/craftit/dist/directives/style.cjs +1 -0
  163. package/dist/craftit/dist/directives/style.js +1 -0
  164. package/dist/craftit/dist/directives/until.cjs +1 -0
  165. package/dist/craftit/dist/directives/until.js +1 -0
  166. package/dist/craftit/dist/directives/when.cjs +2 -0
  167. package/dist/craftit/dist/directives/when.cjs.map +1 -0
  168. package/dist/craftit/dist/directives/when.js +14 -0
  169. package/dist/craftit/dist/directives/when.js.map +1 -0
  170. package/dist/craftit/dist/labs/a11y.cjs +2 -0
  171. package/dist/craftit/dist/labs/a11y.cjs.map +1 -0
  172. package/dist/craftit/dist/labs/a11y.js +38 -0
  173. package/dist/craftit/dist/labs/a11y.js.map +1 -0
  174. package/dist/craftit/dist/labs/list.cjs +2 -0
  175. package/dist/craftit/dist/labs/list.cjs.map +1 -0
  176. package/dist/craftit/dist/labs/list.js +87 -0
  177. package/dist/craftit/dist/labs/list.js.map +1 -0
  178. package/dist/craftit/dist/labs/observers.cjs +2 -0
  179. package/dist/craftit/dist/labs/observers.cjs.map +1 -0
  180. package/dist/craftit/dist/labs/observers.js +28 -0
  181. package/dist/craftit/dist/labs/observers.js.map +1 -0
  182. package/dist/craftit/dist/labs/overlay.cjs +2 -0
  183. package/dist/craftit/dist/labs/overlay.cjs.map +1 -0
  184. package/dist/craftit/dist/labs/overlay.js +49 -0
  185. package/dist/craftit/dist/labs/overlay.js.map +1 -0
  186. package/dist/craftit/dist/labs/selectable.cjs +2 -0
  187. package/dist/craftit/dist/labs/selectable.cjs.map +1 -0
  188. package/dist/craftit/dist/labs/selectable.js +29 -0
  189. package/dist/craftit/dist/labs/selectable.js.map +1 -0
  190. package/dist/craftit/dist/labs/selection.cjs +2 -0
  191. package/dist/craftit/dist/labs/selection.cjs.map +1 -0
  192. package/dist/craftit/dist/labs/selection.js +42 -0
  193. package/dist/craftit/dist/labs/selection.js.map +1 -0
  194. package/dist/craftit/dist/labs.cjs +1 -0
  195. package/dist/craftit/dist/labs.js +6 -0
  196. package/dist/custom-elements.json +2321 -0
  197. package/dist/dialog.cjs +33 -0
  198. package/dist/dialog.cjs.map +1 -0
  199. package/dist/dialog.js +94 -0
  200. package/dist/dialog.js.map +1 -0
  201. package/dist/disclosure/accordion/accordion.css?inline.cjs +2 -0
  202. package/dist/disclosure/accordion/accordion.css?inline.cjs.map +1 -0
  203. package/dist/disclosure/accordion/accordion.css?inline.js +6 -0
  204. package/dist/disclosure/accordion/accordion.css?inline.js.map +1 -0
  205. package/dist/disclosure/accordion/accordion.d.ts +47 -0
  206. package/dist/disclosure/accordion/accordion.d.ts.map +1 -0
  207. package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs +2 -0
  208. package/dist/disclosure/accordion-item/accordion-item.css?inline.cjs.map +1 -0
  209. package/dist/disclosure/accordion-item/accordion-item.css?inline.js +6 -0
  210. package/dist/disclosure/accordion-item/accordion-item.css?inline.js.map +1 -0
  211. package/dist/disclosure/accordion-item/accordion-item.d.ts +62 -0
  212. package/dist/disclosure/accordion-item/accordion-item.d.ts.map +1 -0
  213. package/dist/disclosure/index.cjs +1 -0
  214. package/dist/disclosure/index.d.ts +11 -0
  215. package/dist/disclosure/index.d.ts.map +1 -0
  216. package/dist/disclosure/index.js +5 -0
  217. package/dist/disclosure/tab-item/tab-item.css?inline.cjs +2 -0
  218. package/dist/disclosure/tab-item/tab-item.css?inline.cjs.map +1 -0
  219. package/dist/disclosure/tab-item/tab-item.css?inline.js +6 -0
  220. package/dist/disclosure/tab-item/tab-item.css?inline.js.map +1 -0
  221. package/dist/disclosure/tab-item/tab-item.d.ts +39 -0
  222. package/dist/disclosure/tab-item/tab-item.d.ts.map +1 -0
  223. package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs +2 -0
  224. package/dist/disclosure/tab-panel/tab-panel.css?inline.cjs.map +1 -0
  225. package/dist/disclosure/tab-panel/tab-panel.css?inline.js +6 -0
  226. package/dist/disclosure/tab-panel/tab-panel.css?inline.js.map +1 -0
  227. package/dist/disclosure/tab-panel/tab-panel.d.ts +30 -0
  228. package/dist/disclosure/tab-panel/tab-panel.d.ts.map +1 -0
  229. package/dist/disclosure/tabs/tabs.css?inline.cjs +2 -0
  230. package/dist/disclosure/tabs/tabs.css?inline.cjs.map +1 -0
  231. package/dist/disclosure/tabs/tabs.css?inline.js +6 -0
  232. package/dist/disclosure/tabs/tabs.css?inline.js.map +1 -0
  233. package/dist/disclosure/tabs/tabs.d.ts +64 -0
  234. package/dist/disclosure/tabs/tabs.d.ts.map +1 -0
  235. package/dist/drawer.cjs +31 -0
  236. package/dist/drawer.cjs.map +1 -0
  237. package/dist/drawer.js +98 -0
  238. package/dist/drawer.js.map +1 -0
  239. package/dist/feedback/alert/alert.css?inline.cjs +2 -0
  240. package/dist/feedback/alert/alert.css?inline.cjs.map +1 -0
  241. package/dist/feedback/alert/alert.css?inline.js +6 -0
  242. package/dist/feedback/alert/alert.css?inline.js.map +1 -0
  243. package/dist/feedback/alert/alert.d.ts +63 -0
  244. package/dist/feedback/alert/alert.d.ts.map +1 -0
  245. package/dist/feedback/badge/badge.css?inline.cjs +2 -0
  246. package/dist/feedback/badge/badge.css?inline.cjs.map +1 -0
  247. package/dist/feedback/badge/badge.css?inline.js +6 -0
  248. package/dist/feedback/badge/badge.css?inline.js.map +1 -0
  249. package/dist/feedback/badge/badge.d.ts +67 -0
  250. package/dist/feedback/badge/badge.d.ts.map +1 -0
  251. package/dist/feedback/chip/chip.css?inline.cjs +2 -0
  252. package/dist/feedback/chip/chip.css?inline.cjs.map +1 -0
  253. package/dist/feedback/chip/chip.css?inline.js +6 -0
  254. package/dist/feedback/chip/chip.css?inline.js.map +1 -0
  255. package/dist/feedback/chip/chip.d.ts +124 -0
  256. package/dist/feedback/chip/chip.d.ts.map +1 -0
  257. package/dist/feedback/index.cjs +1 -0
  258. package/dist/feedback/index.d.ts +13 -0
  259. package/dist/feedback/index.d.ts.map +1 -0
  260. package/dist/feedback/index.js +6 -0
  261. package/dist/feedback/progress/progress.css?inline.cjs +2 -0
  262. package/dist/feedback/progress/progress.css?inline.cjs.map +1 -0
  263. package/dist/feedback/progress/progress.css?inline.js +6 -0
  264. package/dist/feedback/progress/progress.css?inline.js.map +1 -0
  265. package/dist/feedback/progress/progress.d.ts +64 -0
  266. package/dist/feedback/progress/progress.d.ts.map +1 -0
  267. package/dist/feedback/skeleton/skeleton.css?inline.cjs +2 -0
  268. package/dist/feedback/skeleton/skeleton.css?inline.cjs.map +1 -0
  269. package/dist/feedback/skeleton/skeleton.css?inline.js +6 -0
  270. package/dist/feedback/skeleton/skeleton.css?inline.js.map +1 -0
  271. package/dist/feedback/skeleton/skeleton.d.ts +61 -0
  272. package/dist/feedback/skeleton/skeleton.d.ts.map +1 -0
  273. package/dist/feedback/toast/index.d.ts +2 -0
  274. package/dist/feedback/toast/index.d.ts.map +1 -0
  275. package/dist/feedback/toast/toast.css?inline.cjs +2 -0
  276. package/dist/feedback/toast/toast.css?inline.cjs.map +1 -0
  277. package/dist/feedback/toast/toast.css?inline.js +6 -0
  278. package/dist/feedback/toast/toast.css?inline.js.map +1 -0
  279. package/dist/feedback/toast/toast.d.ts +95 -0
  280. package/dist/feedback/toast/toast.d.ts.map +1 -0
  281. package/dist/file-input.cjs +66 -0
  282. package/dist/file-input.cjs.map +1 -0
  283. package/dist/file-input.js +210 -0
  284. package/dist/file-input.js.map +1 -0
  285. package/dist/form.cjs +11 -0
  286. package/dist/form.cjs.map +1 -0
  287. package/dist/form.js +49 -0
  288. package/dist/form.js.map +1 -0
  289. package/dist/grid-item.cjs +2 -0
  290. package/dist/grid-item.cjs.map +1 -0
  291. package/dist/grid-item.js +28 -0
  292. package/dist/grid-item.js.map +1 -0
  293. package/dist/grid.cjs +2 -0
  294. package/dist/grid.cjs.map +1 -0
  295. package/dist/grid.js +90 -0
  296. package/dist/grid.js.map +1 -0
  297. package/dist/icons.cjs +176 -0
  298. package/dist/icons.cjs.map +1 -0
  299. package/dist/icons.d.ts +15 -0
  300. package/dist/icons.d.ts.map +1 -0
  301. package/dist/icons.js +181 -0
  302. package/dist/icons.js.map +1 -0
  303. package/dist/index.cjs +1 -0
  304. package/dist/index.d.ts +9 -0
  305. package/dist/index.d.ts.map +1 -0
  306. package/dist/index.js +53 -0
  307. package/dist/input.cjs +48 -0
  308. package/dist/input.cjs.map +1 -0
  309. package/dist/input.js +182 -0
  310. package/dist/input.js.map +1 -0
  311. package/dist/inputs/button/button.css?inline.cjs +2 -0
  312. package/dist/inputs/button/button.css?inline.cjs.map +1 -0
  313. package/dist/inputs/button/button.css?inline.js +6 -0
  314. package/dist/inputs/button/button.css?inline.js.map +1 -0
  315. package/dist/inputs/button/button.d.ts +73 -0
  316. package/dist/inputs/button/button.d.ts.map +1 -0
  317. package/dist/inputs/button-group/button-group.css?inline.cjs +2 -0
  318. package/dist/inputs/button-group/button-group.css?inline.cjs.map +1 -0
  319. package/dist/inputs/button-group/button-group.css?inline.js +6 -0
  320. package/dist/inputs/button-group/button-group.css?inline.js.map +1 -0
  321. package/dist/inputs/button-group/button-group.d.ts +52 -0
  322. package/dist/inputs/button-group/button-group.d.ts.map +1 -0
  323. package/dist/inputs/checkbox/checkbox.css?inline.cjs +2 -0
  324. package/dist/inputs/checkbox/checkbox.css?inline.cjs.map +1 -0
  325. package/dist/inputs/checkbox/checkbox.css?inline.js +6 -0
  326. package/dist/inputs/checkbox/checkbox.css?inline.js.map +1 -0
  327. package/dist/inputs/checkbox/checkbox.d.ts +43 -0
  328. package/dist/inputs/checkbox/checkbox.d.ts.map +1 -0
  329. package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs +2 -0
  330. package/dist/inputs/checkbox-group/checkbox-group.css?inline.cjs.map +1 -0
  331. package/dist/inputs/checkbox-group/checkbox-group.css?inline.js +6 -0
  332. package/dist/inputs/checkbox-group/checkbox-group.css?inline.js.map +1 -0
  333. package/dist/inputs/checkbox-group/checkbox-group.d.ts +56 -0
  334. package/dist/inputs/checkbox-group/checkbox-group.d.ts.map +1 -0
  335. package/dist/inputs/combobox/combobox-options.cjs +2 -0
  336. package/dist/inputs/combobox/combobox-options.cjs.map +1 -0
  337. package/dist/inputs/combobox/combobox-options.d.ts +7 -0
  338. package/dist/inputs/combobox/combobox-options.d.ts.map +1 -0
  339. package/dist/inputs/combobox/combobox-options.js +36 -0
  340. package/dist/inputs/combobox/combobox-options.js.map +1 -0
  341. package/dist/inputs/combobox/combobox-virtualizer.cjs +2 -0
  342. package/dist/inputs/combobox/combobox-virtualizer.cjs.map +1 -0
  343. package/dist/inputs/combobox/combobox-virtualizer.d.ts +20 -0
  344. package/dist/inputs/combobox/combobox-virtualizer.d.ts.map +1 -0
  345. package/dist/inputs/combobox/combobox-virtualizer.js +71 -0
  346. package/dist/inputs/combobox/combobox-virtualizer.js.map +1 -0
  347. package/dist/inputs/combobox/combobox.css?inline.cjs +2 -0
  348. package/dist/inputs/combobox/combobox.css?inline.cjs.map +1 -0
  349. package/dist/inputs/combobox/combobox.css?inline.js +6 -0
  350. package/dist/inputs/combobox/combobox.css?inline.js.map +1 -0
  351. package/dist/inputs/combobox/combobox.d.ts +28 -0
  352. package/dist/inputs/combobox/combobox.d.ts.map +1 -0
  353. package/dist/inputs/combobox/combobox.types.d.ts +36 -0
  354. package/dist/inputs/combobox/combobox.types.d.ts.map +1 -0
  355. package/dist/inputs/file-input/file-input.css?inline.cjs +2 -0
  356. package/dist/inputs/file-input/file-input.css?inline.cjs.map +1 -0
  357. package/dist/inputs/file-input/file-input.css?inline.js +6 -0
  358. package/dist/inputs/file-input/file-input.css?inline.js.map +1 -0
  359. package/dist/inputs/file-input/file-input.d.ts +94 -0
  360. package/dist/inputs/file-input/file-input.d.ts.map +1 -0
  361. package/dist/inputs/form/form.css?inline.cjs +2 -0
  362. package/dist/inputs/form/form.css?inline.cjs.map +1 -0
  363. package/dist/inputs/form/form.css?inline.js +6 -0
  364. package/dist/inputs/form/form.css?inline.js.map +1 -0
  365. package/dist/inputs/form/form.d.ts +61 -0
  366. package/dist/inputs/form/form.d.ts.map +1 -0
  367. package/dist/inputs/index.cjs +1 -0
  368. package/dist/inputs/index.d.ts +38 -0
  369. package/dist/inputs/index.d.ts.map +1 -0
  370. package/dist/inputs/index.js +18 -0
  371. package/dist/inputs/input/input.css?inline.cjs +2 -0
  372. package/dist/inputs/input/input.css?inline.cjs.map +1 -0
  373. package/dist/inputs/input/input.css?inline.js +6 -0
  374. package/dist/inputs/input/input.css?inline.js.map +1 -0
  375. package/dist/inputs/input/input.d.ts +82 -0
  376. package/dist/inputs/input/input.d.ts.map +1 -0
  377. package/dist/inputs/number-input/number-input.css?inline.cjs +2 -0
  378. package/dist/inputs/number-input/number-input.css?inline.cjs.map +1 -0
  379. package/dist/inputs/number-input/number-input.css?inline.js +6 -0
  380. package/dist/inputs/number-input/number-input.css?inline.js.map +1 -0
  381. package/dist/inputs/number-input/number-input.d.ts +76 -0
  382. package/dist/inputs/number-input/number-input.d.ts.map +1 -0
  383. package/dist/inputs/otp-input/otp-input.css?inline.cjs +2 -0
  384. package/dist/inputs/otp-input/otp-input.css?inline.cjs.map +1 -0
  385. package/dist/inputs/otp-input/otp-input.css?inline.js +6 -0
  386. package/dist/inputs/otp-input/otp-input.css?inline.js.map +1 -0
  387. package/dist/inputs/otp-input/otp-input.d.ts +71 -0
  388. package/dist/inputs/otp-input/otp-input.d.ts.map +1 -0
  389. package/dist/inputs/radio/radio.css?inline.cjs +2 -0
  390. package/dist/inputs/radio/radio.css?inline.cjs.map +1 -0
  391. package/dist/inputs/radio/radio.css?inline.js +6 -0
  392. package/dist/inputs/radio/radio.css?inline.js.map +1 -0
  393. package/dist/inputs/radio/radio.d.ts +41 -0
  394. package/dist/inputs/radio/radio.d.ts.map +1 -0
  395. package/dist/inputs/radio-group/radio-group.css?inline.cjs +2 -0
  396. package/dist/inputs/radio-group/radio-group.css?inline.cjs.map +1 -0
  397. package/dist/inputs/radio-group/radio-group.css?inline.js +6 -0
  398. package/dist/inputs/radio-group/radio-group.css?inline.js.map +1 -0
  399. package/dist/inputs/radio-group/radio-group.d.ts +61 -0
  400. package/dist/inputs/radio-group/radio-group.d.ts.map +1 -0
  401. package/dist/inputs/rating/rating.css?inline.cjs +2 -0
  402. package/dist/inputs/rating/rating.css?inline.cjs.map +1 -0
  403. package/dist/inputs/rating/rating.css?inline.js +6 -0
  404. package/dist/inputs/rating/rating.css?inline.js.map +1 -0
  405. package/dist/inputs/rating/rating.d.ts +48 -0
  406. package/dist/inputs/rating/rating.d.ts.map +1 -0
  407. package/dist/inputs/select/select.css?inline.cjs +2 -0
  408. package/dist/inputs/select/select.css?inline.cjs.map +1 -0
  409. package/dist/inputs/select/select.css?inline.js +6 -0
  410. package/dist/inputs/select/select.css?inline.js.map +1 -0
  411. package/dist/inputs/select/select.d.ts +79 -0
  412. package/dist/inputs/select/select.d.ts.map +1 -0
  413. package/dist/inputs/shared/base-props.d.ts +39 -0
  414. package/dist/inputs/shared/base-props.d.ts.map +1 -0
  415. package/dist/inputs/shared/composables/index.cjs +1 -0
  416. package/dist/inputs/shared/composables/index.d.ts +3 -0
  417. package/dist/inputs/shared/composables/index.d.ts.map +1 -0
  418. package/dist/inputs/shared/composables/index.js +2 -0
  419. package/dist/inputs/shared/composables/use-text-field.cjs +2 -0
  420. package/dist/inputs/shared/composables/use-text-field.cjs.map +1 -0
  421. package/dist/inputs/shared/composables/use-text-field.d.ts +33 -0
  422. package/dist/inputs/shared/composables/use-text-field.d.ts.map +1 -0
  423. package/dist/inputs/shared/composables/use-text-field.js +41 -0
  424. package/dist/inputs/shared/composables/use-text-field.js.map +1 -0
  425. package/dist/inputs/shared/composables/use-toggle-field.cjs +2 -0
  426. package/dist/inputs/shared/composables/use-toggle-field.cjs.map +1 -0
  427. package/dist/inputs/shared/composables/use-toggle-field.d.ts +18 -0
  428. package/dist/inputs/shared/composables/use-toggle-field.d.ts.map +1 -0
  429. package/dist/inputs/shared/composables/use-toggle-field.js +26 -0
  430. package/dist/inputs/shared/composables/use-toggle-field.js.map +1 -0
  431. package/dist/inputs/shared/design-presets.cjs +2 -0
  432. package/dist/inputs/shared/design-presets.cjs.map +1 -0
  433. package/dist/inputs/shared/design-presets.d.ts +97 -0
  434. package/dist/inputs/shared/design-presets.d.ts.map +1 -0
  435. package/dist/inputs/shared/design-presets.js +92 -0
  436. package/dist/inputs/shared/design-presets.js.map +1 -0
  437. package/dist/inputs/shared/dom-sync/dropdown.cjs +2 -0
  438. package/dist/inputs/shared/dom-sync/dropdown.cjs.map +1 -0
  439. package/dist/inputs/shared/dom-sync/dropdown.d.ts +7 -0
  440. package/dist/inputs/shared/dom-sync/dropdown.d.ts.map +1 -0
  441. package/dist/inputs/shared/dom-sync/dropdown.js +30 -0
  442. package/dist/inputs/shared/dom-sync/dropdown.js.map +1 -0
  443. package/dist/inputs/shared/dom-sync/field-sync.cjs +2 -0
  444. package/dist/inputs/shared/dom-sync/field-sync.cjs.map +1 -0
  445. package/dist/inputs/shared/dom-sync/field-sync.d.ts +36 -0
  446. package/dist/inputs/shared/dom-sync/field-sync.d.ts.map +1 -0
  447. package/dist/inputs/shared/dom-sync/field-sync.js +37 -0
  448. package/dist/inputs/shared/dom-sync/field-sync.js.map +1 -0
  449. package/dist/inputs/shared/dom-sync/form-context.cjs +2 -0
  450. package/dist/inputs/shared/dom-sync/form-context.cjs.map +1 -0
  451. package/dist/inputs/shared/dom-sync/form-context.d.ts +18 -0
  452. package/dist/inputs/shared/dom-sync/form-context.d.ts.map +1 -0
  453. package/dist/inputs/shared/dom-sync/form-context.js +20 -0
  454. package/dist/inputs/shared/dom-sync/form-context.js.map +1 -0
  455. package/dist/inputs/shared/dom-sync/index.cjs +1 -0
  456. package/dist/inputs/shared/dom-sync/index.d.ts +5 -0
  457. package/dist/inputs/shared/dom-sync/index.d.ts.map +1 -0
  458. package/dist/inputs/shared/dom-sync/index.js +4 -0
  459. package/dist/inputs/shared/dom-sync/label-sync.cjs +2 -0
  460. package/dist/inputs/shared/dom-sync/label-sync.cjs.map +1 -0
  461. package/dist/inputs/shared/dom-sync/label-sync.d.ts +16 -0
  462. package/dist/inputs/shared/dom-sync/label-sync.d.ts.map +1 -0
  463. package/dist/inputs/shared/dom-sync/label-sync.js +12 -0
  464. package/dist/inputs/shared/dom-sync/label-sync.js.map +1 -0
  465. package/dist/inputs/shared/form-context.cjs +2 -0
  466. package/dist/inputs/shared/form-context.cjs.map +1 -0
  467. package/dist/inputs/shared/form-context.d.ts +19 -0
  468. package/dist/inputs/shared/form-context.d.ts.map +1 -0
  469. package/dist/inputs/shared/form-context.js +7 -0
  470. package/dist/inputs/shared/form-context.js.map +1 -0
  471. package/dist/inputs/shared/utils/assistive-text.cjs +2 -0
  472. package/dist/inputs/shared/utils/assistive-text.cjs.map +1 -0
  473. package/dist/inputs/shared/utils/assistive-text.d.ts +24 -0
  474. package/dist/inputs/shared/utils/assistive-text.d.ts.map +1 -0
  475. package/dist/inputs/shared/utils/assistive-text.js +37 -0
  476. package/dist/inputs/shared/utils/assistive-text.js.map +1 -0
  477. package/dist/inputs/shared/utils/choice-change.cjs +2 -0
  478. package/dist/inputs/shared/utils/choice-change.cjs.map +1 -0
  479. package/dist/inputs/shared/utils/choice-change.d.ts +8 -0
  480. package/dist/inputs/shared/utils/choice-change.d.ts.map +1 -0
  481. package/dist/inputs/shared/utils/choice-change.js +13 -0
  482. package/dist/inputs/shared/utils/choice-change.js.map +1 -0
  483. package/dist/inputs/shared/utils/controlled-csv.cjs +2 -0
  484. package/dist/inputs/shared/utils/controlled-csv.cjs.map +1 -0
  485. package/dist/inputs/shared/utils/controlled-csv.d.ts +8 -0
  486. package/dist/inputs/shared/utils/controlled-csv.d.ts.map +1 -0
  487. package/dist/inputs/shared/utils/controlled-csv.js +15 -0
  488. package/dist/inputs/shared/utils/controlled-csv.js.map +1 -0
  489. package/dist/inputs/shared/utils/field-values.cjs +2 -0
  490. package/dist/inputs/shared/utils/field-values.cjs.map +1 -0
  491. package/dist/inputs/shared/utils/field-values.d.ts +5 -0
  492. package/dist/inputs/shared/utils/field-values.d.ts.map +1 -0
  493. package/dist/inputs/shared/utils/field-values.js +13 -0
  494. package/dist/inputs/shared/utils/field-values.js.map +1 -0
  495. package/dist/inputs/shared/utils/index.d.ts +5 -0
  496. package/dist/inputs/shared/utils/index.d.ts.map +1 -0
  497. package/dist/inputs/shared/validation/index.cjs +2 -0
  498. package/dist/inputs/shared/validation/index.cjs.map +1 -0
  499. package/dist/inputs/shared/validation/index.d.ts +14 -0
  500. package/dist/inputs/shared/validation/index.d.ts.map +1 -0
  501. package/dist/inputs/shared/validation/index.js +13 -0
  502. package/dist/inputs/shared/validation/index.js.map +1 -0
  503. package/dist/inputs/slider/slider.css?inline.cjs +2 -0
  504. package/dist/inputs/slider/slider.css?inline.cjs.map +1 -0
  505. package/dist/inputs/slider/slider.css?inline.js +6 -0
  506. package/dist/inputs/slider/slider.css?inline.js.map +1 -0
  507. package/dist/inputs/slider/slider.d.ts +82 -0
  508. package/dist/inputs/slider/slider.d.ts.map +1 -0
  509. package/dist/inputs/switch/switch.css?inline.cjs +2 -0
  510. package/dist/inputs/switch/switch.css?inline.cjs.map +1 -0
  511. package/dist/inputs/switch/switch.css?inline.js +6 -0
  512. package/dist/inputs/switch/switch.css?inline.js.map +1 -0
  513. package/dist/inputs/switch/switch.d.ts +40 -0
  514. package/dist/inputs/switch/switch.d.ts.map +1 -0
  515. package/dist/inputs/textarea/textarea.css?inline.cjs +2 -0
  516. package/dist/inputs/textarea/textarea.css?inline.cjs.map +1 -0
  517. package/dist/inputs/textarea/textarea.css?inline.js +6 -0
  518. package/dist/inputs/textarea/textarea.css?inline.js.map +1 -0
  519. package/dist/inputs/textarea/textarea.d.ts +57 -0
  520. package/dist/inputs/textarea/textarea.d.ts.map +1 -0
  521. package/dist/layout/box/box.css?inline.cjs +2 -0
  522. package/dist/layout/box/box.css?inline.cjs.map +1 -0
  523. package/dist/layout/box/box.css?inline.js +6 -0
  524. package/dist/layout/box/box.css?inline.js.map +1 -0
  525. package/dist/layout/box/box.d.ts +52 -0
  526. package/dist/layout/box/box.d.ts.map +1 -0
  527. package/dist/layout/grid/grid.css?inline.cjs +2 -0
  528. package/dist/layout/grid/grid.css?inline.cjs.map +1 -0
  529. package/dist/layout/grid/grid.css?inline.js +6 -0
  530. package/dist/layout/grid/grid.css?inline.js.map +1 -0
  531. package/dist/layout/grid/grid.d.ts +105 -0
  532. package/dist/layout/grid/grid.d.ts.map +1 -0
  533. package/dist/layout/grid-item/grid-item.css?inline.cjs +2 -0
  534. package/dist/layout/grid-item/grid-item.css?inline.cjs.map +1 -0
  535. package/dist/layout/grid-item/grid-item.css?inline.js +6 -0
  536. package/dist/layout/grid-item/grid-item.css?inline.js.map +1 -0
  537. package/dist/layout/grid-item/grid-item.d.ts +47 -0
  538. package/dist/layout/grid-item/grid-item.d.ts.map +1 -0
  539. package/dist/layout/index.cjs +1 -0
  540. package/dist/layout/index.d.ts +9 -0
  541. package/dist/layout/index.d.ts.map +1 -0
  542. package/dist/layout/index.js +4 -0
  543. package/dist/layout/sidebar/sidebar-group.css?inline.cjs +2 -0
  544. package/dist/layout/sidebar/sidebar-group.css?inline.cjs.map +1 -0
  545. package/dist/layout/sidebar/sidebar-group.css?inline.js +6 -0
  546. package/dist/layout/sidebar/sidebar-group.css?inline.js.map +1 -0
  547. package/dist/layout/sidebar/sidebar-item.css?inline.cjs +2 -0
  548. package/dist/layout/sidebar/sidebar-item.css?inline.cjs.map +1 -0
  549. package/dist/layout/sidebar/sidebar-item.css?inline.js +6 -0
  550. package/dist/layout/sidebar/sidebar-item.css?inline.js.map +1 -0
  551. package/dist/layout/sidebar/sidebar.css?inline.cjs +2 -0
  552. package/dist/layout/sidebar/sidebar.css?inline.cjs.map +1 -0
  553. package/dist/layout/sidebar/sidebar.css?inline.js +6 -0
  554. package/dist/layout/sidebar/sidebar.css?inline.js.map +1 -0
  555. package/dist/layout/sidebar/sidebar.d.ts +190 -0
  556. package/dist/layout/sidebar/sidebar.d.ts.map +1 -0
  557. package/dist/menu.cjs +133 -0
  558. package/dist/menu.cjs.map +1 -0
  559. package/dist/menu.js +296 -0
  560. package/dist/menu.js.map +1 -0
  561. package/dist/number-input.cjs +55 -0
  562. package/dist/number-input.cjs.map +1 -0
  563. package/dist/number-input.js +158 -0
  564. package/dist/number-input.js.map +1 -0
  565. package/dist/otp-input.cjs +22 -0
  566. package/dist/otp-input.cjs.map +1 -0
  567. package/dist/otp-input.js +120 -0
  568. package/dist/otp-input.js.map +1 -0
  569. package/dist/overlay/dialog/dialog.css?inline.cjs +2 -0
  570. package/dist/overlay/dialog/dialog.css?inline.cjs.map +1 -0
  571. package/dist/overlay/dialog/dialog.css?inline.js +6 -0
  572. package/dist/overlay/dialog/dialog.css?inline.js.map +1 -0
  573. package/dist/overlay/dialog/dialog.d.ts +98 -0
  574. package/dist/overlay/dialog/dialog.d.ts.map +1 -0
  575. package/dist/overlay/drawer/drawer.css?inline.cjs +2 -0
  576. package/dist/overlay/drawer/drawer.css?inline.cjs.map +1 -0
  577. package/dist/overlay/drawer/drawer.css?inline.js +6 -0
  578. package/dist/overlay/drawer/drawer.css?inline.js.map +1 -0
  579. package/dist/overlay/drawer/drawer.d.ts +98 -0
  580. package/dist/overlay/drawer/drawer.d.ts.map +1 -0
  581. package/dist/overlay/index.cjs +1 -0
  582. package/dist/overlay/index.d.ts +11 -0
  583. package/dist/overlay/index.d.ts.map +1 -0
  584. package/dist/overlay/index.js +5 -0
  585. package/dist/overlay/menu/menu.css?inline.cjs +2 -0
  586. package/dist/overlay/menu/menu.css?inline.cjs.map +1 -0
  587. package/dist/overlay/menu/menu.css?inline.js +6 -0
  588. package/dist/overlay/menu/menu.css?inline.js.map +1 -0
  589. package/dist/overlay/menu/menu.d.ts +45 -0
  590. package/dist/overlay/menu/menu.d.ts.map +1 -0
  591. package/dist/overlay/popover/popover.css?inline.cjs +2 -0
  592. package/dist/overlay/popover/popover.css?inline.cjs.map +1 -0
  593. package/dist/overlay/popover/popover.css?inline.js +6 -0
  594. package/dist/overlay/popover/popover.css?inline.js.map +1 -0
  595. package/dist/overlay/popover/popover.d.ts +56 -0
  596. package/dist/overlay/popover/popover.d.ts.map +1 -0
  597. package/dist/overlay/tooltip/tooltip.css?inline.cjs +2 -0
  598. package/dist/overlay/tooltip/tooltip.css?inline.cjs.map +1 -0
  599. package/dist/overlay/tooltip/tooltip.css?inline.js +6 -0
  600. package/dist/overlay/tooltip/tooltip.css?inline.js.map +1 -0
  601. package/dist/overlay/tooltip/tooltip.d.ts +55 -0
  602. package/dist/overlay/tooltip/tooltip.d.ts.map +1 -0
  603. package/dist/pagination.cjs +102 -0
  604. package/dist/pagination.cjs.map +1 -0
  605. package/dist/pagination.js +168 -0
  606. package/dist/pagination.js.map +1 -0
  607. package/dist/popover.cjs +16 -0
  608. package/dist/popover.cjs.map +1 -0
  609. package/dist/popover.js +110 -0
  610. package/dist/popover.js.map +1 -0
  611. package/dist/progress.cjs +51 -0
  612. package/dist/progress.cjs.map +1 -0
  613. package/dist/progress.js +90 -0
  614. package/dist/progress.js.map +1 -0
  615. package/dist/radio-group.cjs +20 -0
  616. package/dist/radio-group.cjs.map +1 -0
  617. package/dist/radio-group.js +104 -0
  618. package/dist/radio-group.js.map +1 -0
  619. package/dist/radio.cjs +16 -0
  620. package/dist/radio.cjs.map +1 -0
  621. package/dist/radio.js +135 -0
  622. package/dist/radio.js.map +1 -0
  623. package/dist/rating.cjs +37 -0
  624. package/dist/rating.cjs.map +1 -0
  625. package/dist/rating.js +123 -0
  626. package/dist/rating.js.map +1 -0
  627. package/dist/select.cjs +77 -0
  628. package/dist/select.cjs.map +1 -0
  629. package/dist/select.js +317 -0
  630. package/dist/select.js.map +1 -0
  631. package/dist/separator.cjs +26 -0
  632. package/dist/separator.cjs.map +1 -0
  633. package/dist/separator.js +46 -0
  634. package/dist/separator.js.map +1 -0
  635. package/dist/sidebar.cjs +69 -0
  636. package/dist/sidebar.cjs.map +1 -0
  637. package/dist/sidebar.js +202 -0
  638. package/dist/sidebar.js.map +1 -0
  639. package/dist/skeleton.cjs +10 -0
  640. package/dist/skeleton.cjs.map +1 -0
  641. package/dist/skeleton.js +56 -0
  642. package/dist/skeleton.js.map +1 -0
  643. package/dist/slider.cjs +24 -0
  644. package/dist/slider.cjs.map +1 -0
  645. package/dist/slider.js +209 -0
  646. package/dist/slider.js.map +1 -0
  647. package/dist/stateit/dist/computed.cjs +2 -0
  648. package/dist/stateit/dist/computed.cjs.map +1 -0
  649. package/dist/stateit/dist/computed.js +65 -0
  650. package/dist/stateit/dist/computed.js.map +1 -0
  651. package/dist/stateit/dist/effect.cjs +2 -0
  652. package/dist/stateit/dist/effect.cjs.map +1 -0
  653. package/dist/stateit/dist/effect.js +53 -0
  654. package/dist/stateit/dist/effect.js.map +1 -0
  655. package/dist/stateit/dist/index.cjs +1 -0
  656. package/dist/stateit/dist/index.js +5 -0
  657. package/dist/stateit/dist/runtime.cjs +2 -0
  658. package/dist/stateit/dist/runtime.cjs.map +1 -0
  659. package/dist/stateit/dist/runtime.js +43 -0
  660. package/dist/stateit/dist/runtime.js.map +1 -0
  661. package/dist/stateit/dist/signal.cjs +2 -0
  662. package/dist/stateit/dist/signal.cjs.map +1 -0
  663. package/dist/stateit/dist/signal.js +27 -0
  664. package/dist/stateit/dist/signal.js.map +1 -0
  665. package/dist/stateit/dist/store.cjs +2 -0
  666. package/dist/stateit/dist/store.cjs.map +1 -0
  667. package/dist/stateit/dist/store.js +17 -0
  668. package/dist/stateit/dist/store.js.map +1 -0
  669. package/dist/stateit/dist/types.cjs +2 -0
  670. package/dist/stateit/dist/types.cjs.map +1 -0
  671. package/dist/stateit/dist/types.js +6 -0
  672. package/dist/stateit/dist/types.js.map +1 -0
  673. package/dist/styles/animation.css +87 -0
  674. package/dist/styles/index.cjs +2 -0
  675. package/dist/styles/index.cjs.map +1 -0
  676. package/dist/styles/index.d.ts +48 -0
  677. package/dist/styles/index.d.ts.map +1 -0
  678. package/dist/styles/index.js +26 -0
  679. package/dist/styles/index.js.map +1 -0
  680. package/dist/styles/layer.css +18 -0
  681. package/dist/styles/mixins/accessibility.css.cjs +15 -0
  682. package/dist/styles/mixins/accessibility.css.cjs.map +1 -0
  683. package/dist/styles/mixins/accessibility.css.d.ts +46 -0
  684. package/dist/styles/mixins/accessibility.css.d.ts.map +1 -0
  685. package/dist/styles/mixins/accessibility.css.js +20 -0
  686. package/dist/styles/mixins/accessibility.css.js.map +1 -0
  687. package/dist/styles/mixins/animation.css.cjs +71 -0
  688. package/dist/styles/mixins/animation.css.cjs.map +1 -0
  689. package/dist/styles/mixins/animation.css.d.ts +22 -0
  690. package/dist/styles/mixins/animation.css.d.ts.map +1 -0
  691. package/dist/styles/mixins/animation.css.js +90 -0
  692. package/dist/styles/mixins/animation.css.js.map +1 -0
  693. package/dist/styles/mixins/shape.css.cjs +72 -0
  694. package/dist/styles/mixins/shape.css.cjs.map +1 -0
  695. package/dist/styles/mixins/shape.css.d.ts +97 -0
  696. package/dist/styles/mixins/shape.css.d.ts.map +1 -0
  697. package/dist/styles/mixins/shape.css.js +104 -0
  698. package/dist/styles/mixins/shape.css.js.map +1 -0
  699. package/dist/styles/mixins/states.css.cjs +18 -0
  700. package/dist/styles/mixins/states.css.cjs.map +1 -0
  701. package/dist/styles/mixins/states.css.d.ts +61 -0
  702. package/dist/styles/mixins/states.css.d.ts.map +1 -0
  703. package/dist/styles/mixins/states.css.js +26 -0
  704. package/dist/styles/mixins/states.css.js.map +1 -0
  705. package/dist/styles/mixins/theme.css.cjs +146 -0
  706. package/dist/styles/mixins/theme.css.cjs.map +1 -0
  707. package/dist/styles/mixins/theme.css.d.ts +93 -0
  708. package/dist/styles/mixins/theme.css.d.ts.map +1 -0
  709. package/dist/styles/mixins/theme.css.js +151 -0
  710. package/dist/styles/mixins/theme.css.js.map +1 -0
  711. package/dist/styles/mixins/variants.css.cjs +84 -0
  712. package/dist/styles/mixins/variants.css.cjs.map +1 -0
  713. package/dist/styles/mixins/variants.css.d.ts +22 -0
  714. package/dist/styles/mixins/variants.css.d.ts.map +1 -0
  715. package/dist/styles/mixins/variants.css.js +89 -0
  716. package/dist/styles/mixins/variants.css.js.map +1 -0
  717. package/dist/styles/preflight.css +237 -0
  718. package/dist/styles/styles.css +5 -0
  719. package/dist/styles/theme.css +457 -0
  720. package/dist/switch.cjs +16 -0
  721. package/dist/switch.cjs.map +1 -0
  722. package/dist/switch.js +82 -0
  723. package/dist/switch.js.map +1 -0
  724. package/dist/tab-item.cjs +17 -0
  725. package/dist/tab-item.cjs.map +1 -0
  726. package/dist/tab-item.js +57 -0
  727. package/dist/tab-item.js.map +1 -0
  728. package/dist/tab-panel.cjs +14 -0
  729. package/dist/tab-panel.cjs.map +1 -0
  730. package/dist/tab-panel.js +51 -0
  731. package/dist/tab-panel.js.map +1 -0
  732. package/dist/table.cjs +2 -0
  733. package/dist/table.cjs.map +1 -0
  734. package/dist/table.js +101 -0
  735. package/dist/table.js.map +1 -0
  736. package/dist/tabs.cjs +17 -0
  737. package/dist/tabs.cjs.map +1 -0
  738. package/dist/tabs.js +98 -0
  739. package/dist/tabs.js.map +1 -0
  740. package/dist/text.cjs +2 -0
  741. package/dist/text.cjs.map +1 -0
  742. package/dist/text.js +30 -0
  743. package/dist/text.js.map +1 -0
  744. package/dist/textarea.cjs +16 -0
  745. package/dist/textarea.cjs.map +1 -0
  746. package/dist/textarea.js +122 -0
  747. package/dist/textarea.js.map +1 -0
  748. package/dist/toast.cjs +63 -0
  749. package/dist/toast.cjs.map +1 -0
  750. package/dist/toast.js +221 -0
  751. package/dist/toast.js.map +1 -0
  752. package/dist/tooltip.cjs +15 -0
  753. package/dist/tooltip.cjs.map +1 -0
  754. package/dist/tooltip.js +111 -0
  755. package/dist/tooltip.js.map +1 -0
  756. package/dist/types/index.d.ts +7 -0
  757. package/dist/types/index.d.ts.map +1 -0
  758. package/dist/types/shared.d.ts +120 -0
  759. package/dist/types/shared.d.ts.map +1 -0
  760. package/dist/utils/animation.cjs +2 -0
  761. package/dist/utils/animation.cjs.map +1 -0
  762. package/dist/utils/animation.d.ts +2 -0
  763. package/dist/utils/animation.d.ts.map +1 -0
  764. package/dist/utils/animation.js +29 -0
  765. package/dist/utils/animation.js.map +1 -0
  766. package/dist/utils/background-lock.cjs +2 -0
  767. package/dist/utils/background-lock.cjs.map +1 -0
  768. package/dist/utils/background-lock.d.ts +20 -0
  769. package/dist/utils/background-lock.d.ts.map +1 -0
  770. package/dist/utils/background-lock.js +21 -0
  771. package/dist/utils/background-lock.js.map +1 -0
  772. package/dist/utils/index.cjs +1 -0
  773. package/dist/utils/index.d.ts +4 -0
  774. package/dist/utils/index.d.ts.map +1 -0
  775. package/dist/utils/index.js +3 -0
  776. package/dist/utils/use-overlay.cjs +2 -0
  777. package/dist/utils/use-overlay.cjs.map +1 -0
  778. package/dist/utils/use-overlay.d.ts +26 -0
  779. package/dist/utils/use-overlay.d.ts.map +1 -0
  780. package/dist/utils/use-overlay.js +34 -0
  781. package/dist/utils/use-overlay.js.map +1 -0
  782. package/dist/virtualit/dist/dom/dom.cjs +2 -0
  783. package/dist/virtualit/dist/dom/dom.cjs.map +1 -0
  784. package/dist/virtualit/dist/dom/dom.js +47 -0
  785. package/dist/virtualit/dist/dom/dom.js.map +1 -0
  786. package/dist/virtualit/dist/dom.cjs +1 -0
  787. package/dist/virtualit/dist/dom.js +2 -0
  788. package/dist/virtualit/dist/virtualit.cjs +2 -0
  789. package/dist/virtualit/dist/virtualit.cjs.map +1 -0
  790. package/dist/virtualit/dist/virtualit.js +129 -0
  791. package/dist/virtualit/dist/virtualit.js.map +1 -0
  792. package/package.json +282 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.css?inline.js","names":[],"sources":["../../../src/overlay/menu/menu.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_menu-panel-bg: var(\n --menu-panel-bg,\n light-dark(\n color-mix(in srgb, var(--color-contrast-50) 85%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 85%, transparent)\n )\n );\n --_menu-panel-border-color: var(\n --menu-panel-border-color,\n light-dark(\n color-mix(in srgb, var(--color-contrast-900) 8%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 8%, transparent)\n )\n );\n --_menu-panel-blur: var(--menu-panel-blur, var(--blur-md));\n --_menu-panel-shadow: var(--menu-panel-shadow, var(--shadow-xl));\n\n position: relative;\n display: inline-block;\n }\n\n /* ========================================\n Menu Panel\n ======================================== */\n\n .menu-panel {\n position: fixed;\n inset-inline-start: 0;\n top: 0;\n z-index: calc(var(--z-popover, 1000) + 1);\n box-sizing: border-box;\n visibility: hidden;\n min-width: var(--menu-panel-min-width, 10rem);\n padding: var(--size-1);\n margin: 0;\n pointer-events: none;\n background: var(--_menu-panel-bg);\n border: var(--border) solid var(--_menu-panel-border-color);\n border-radius: var(--menu-panel-radius, var(--rounded-lg));\n box-shadow: var(--_menu-panel-shadow);\n opacity: 0;\n backdrop-filter: blur(var(--_menu-panel-blur));\n transform: translateY(-4px) scale(0.97);\n transform-origin: top;\n transition:\n opacity var(--transition-fast),\n transform var(--transition-fast),\n visibility var(--transition-fast);\n }\n\n .menu-panel[data-open] {\n visibility: visible;\n pointer-events: auto;\n opacity: 1;\n transform: translateY(0) scale(1);\n }\n\n /* ========================================\n Menu Items (slotted bit-menu-item)\n ======================================== */\n\n ::slotted(bit-menu-item) {\n display: block;\n }\n\n ::slotted(bit-menu-separator) {\n display: block;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,45 @@
1
+ import { type OverlayOpenReason, type OverlayCloseReason } from '@vielzeug/craftit/labs';
2
+ import type { AddEventListeners, ComponentSize, ThemeColor } from '../../types';
3
+ export interface MenuSelectDetail {
4
+ value: string;
5
+ checked?: boolean;
6
+ }
7
+ export type BitMenuItemType = 'checkbox' | 'radio';
8
+ export type BitMenuEvents = {
9
+ close: {
10
+ reason: OverlayCloseReason;
11
+ };
12
+ open: {
13
+ reason: OverlayOpenReason;
14
+ };
15
+ select: MenuSelectDetail;
16
+ };
17
+ export type BitMenuItemProps = {
18
+ checked?: boolean;
19
+ disabled?: boolean;
20
+ type?: BitMenuItemType;
21
+ value?: string;
22
+ };
23
+ export type BitMenuProps = {
24
+ color?: ThemeColor;
25
+ disabled?: boolean;
26
+ placement?: 'bottom' | 'bottom-start' | 'bottom-end' | 'top' | 'top-start' | 'top-end';
27
+ size?: ComponentSize;
28
+ };
29
+ export declare const MENU_ITEM_TAG: string;
30
+ export declare const SEPARATOR_TAG: string;
31
+ /**
32
+ * `bit-menu` — Action dropdown menu triggered by a slotted trigger element.
33
+ * Nest `<bit-menu-item>` elements inside for menu options.
34
+ *
35
+ * @example
36
+ * ```html
37
+ * <bit-menu>
38
+ * <button slot="trigger">Actions</button>
39
+ * <bit-menu-item value="edit">Edit</bit-menu-item>
40
+ * <bit-menu-item value="delete">Delete</bit-menu-item>
41
+ * </bit-menu>
42
+ * ```
43
+ */
44
+ export declare const MENU_TAG: AddEventListeners<BitMenuEvents>;
45
+ //# sourceMappingURL=menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.d.ts","sourceRoot":"","sources":["../../../src/overlay/menu/menu.ts"],"names":[],"mappings":"AAaA,OAAO,EAGL,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,wBAAwB,CAAC;AAGhC,OAAO,KAAK,EAAE,iBAAiB,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAQhF,MAAM,WAAW,gBAAgB;IAC/B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,eAAe,GAAG,UAAU,GAAG,OAAO,CAAC;AAEnD,MAAM,MAAM,aAAa,GAAG;IAC1B,KAAK,EAAE;QAAE,MAAM,EAAE,kBAAkB,CAAA;KAAE,CAAC;IACtC,IAAI,EAAE;QAAE,MAAM,EAAE,iBAAiB,CAAA;KAAE,CAAC;IACpC,MAAM,EAAE,gBAAgB,CAAC;CAC1B,CAAC;AAEF,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,IAAI,CAAC,EAAE,eAAe,CAAC;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,CAAC,EAAE,UAAU,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,QAAQ,GAAG,cAAc,GAAG,YAAY,GAAG,KAAK,GAAG,WAAW,GAAG,SAAS,CAAC;IACvF,IAAI,CAAC,EAAE,aAAa,CAAC;CACtB,CAAC;AAkBF,eAAO,MAAM,aAAa,QAoJxB,CAAC;AAMH,eAAO,MAAM,aAAa,QAaxB,CAAC;AAMH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,QAAQ,EAmOJ,iBAAiB,CAAC,aAAa,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ var e=`@layer buildit.base{:host{--_panel-bg:var(--popover-bg,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-50) 85%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 85%, transparent)));--_panel-blur:var(--popover-panel-blur,var(--blur-md));--_panel-border-color:var(--popover-border-color,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 8%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 8%, transparent)));--_panel-shadow:var(--popover-shadow,var(--shadow-xl));display:inline-block;position:relative}.panel{inset:unset;box-sizing:border-box;min-width:var(--popover-min-width,12rem);max-width:var(--popover-max-width,24rem);max-height:var(--popover-max-height,min(70vh, 32rem));word-break:auto-phrase;overflow-wrap:anywhere;background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);border-radius:var(--rounded-lg);box-shadow:var(--_panel-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transform:scale(.96) translateY(var(--size-2));transition:var(--_motion-transition,opacity var(--transition-fast), transform var(--transition-normal) cubic-bezier(.16, 1, .3, 1), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete);margin:0;padding:0;position:fixed;overflow:auto}.panel:popover-open{opacity:1;transform:scale(1)translateY(0)}@starting-style{.panel:popover-open{opacity:0;transform:scale(.96) translateY(var(--size-2))}}}`;exports.default=e;
2
+ //# sourceMappingURL=popover.css?inline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.css?inline.cjs","names":[],"sources":["../../../src/overlay/popover/popover.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_panel-bg: var(\n --popover-bg,\n light-dark(\n color-mix(in srgb, var(--color-contrast-50) 85%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 85%, transparent)\n )\n );\n --_panel-blur: var(--popover-panel-blur, var(--blur-md));\n --_panel-border-color: var(\n --popover-border-color,\n light-dark(\n color-mix(in srgb, var(--color-contrast-900) 8%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 8%, transparent)\n )\n );\n --_panel-shadow: var(--popover-shadow, var(--shadow-xl));\n\n position: relative;\n display: inline-block;\n }\n\n .panel {\n position: fixed;\n\n /* Popover UA resets */\n inset: unset;\n box-sizing: border-box;\n min-width: var(--popover-min-width, 12rem);\n max-width: var(--popover-max-width, 24rem);\n max-height: var(--popover-max-height, min(70vh, 32rem));\n padding: 0;\n margin: 0;\n overflow: auto;\n word-break: auto-phrase;\n overflow-wrap: anywhere;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n border-radius: var(--rounded-lg);\n box-shadow: var(--_panel-shadow);\n\n /* Hidden by default */\n opacity: 0;\n backdrop-filter: blur(var(--_panel-blur));\n transform: scale(0.96) translateY(var(--size-2));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete\n );\n }\n\n .panel:popover-open {\n opacity: 1;\n transform: scale(1) translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n }\n}\n"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ //#region src/overlay/popover/popover.css?inline
2
+ var e = "@layer buildit.base{:host{--_panel-bg:var(--popover-bg,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-50) 85%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 85%, transparent)));--_panel-blur:var(--popover-panel-blur,var(--blur-md));--_panel-border-color:var(--popover-border-color,var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 8%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 8%, transparent)));--_panel-shadow:var(--popover-shadow,var(--shadow-xl));display:inline-block;position:relative}.panel{inset:unset;box-sizing:border-box;min-width:var(--popover-min-width,12rem);max-width:var(--popover-max-width,24rem);max-height:var(--popover-max-height,min(70vh, 32rem));word-break:auto-phrase;overflow-wrap:anywhere;background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);border-radius:var(--rounded-lg);box-shadow:var(--_panel-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transform:scale(.96) translateY(var(--size-2));transition:var(--_motion-transition,opacity var(--transition-fast), transform var(--transition-normal) cubic-bezier(.16, 1, .3, 1), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete);margin:0;padding:0;position:fixed;overflow:auto}.panel:popover-open{opacity:1;transform:scale(1)translateY(0)}@starting-style{.panel:popover-open{opacity:0;transform:scale(.96) translateY(var(--size-2))}}}";
3
+ //#endregion
4
+ export { e as default };
5
+
6
+ //# sourceMappingURL=popover.css?inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.css?inline.js","names":[],"sources":["../../../src/overlay/popover/popover.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_panel-bg: var(\n --popover-bg,\n light-dark(\n color-mix(in srgb, var(--color-contrast-50) 85%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 85%, transparent)\n )\n );\n --_panel-blur: var(--popover-panel-blur, var(--blur-md));\n --_panel-border-color: var(\n --popover-border-color,\n light-dark(\n color-mix(in srgb, var(--color-contrast-900) 8%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 8%, transparent)\n )\n );\n --_panel-shadow: var(--popover-shadow, var(--shadow-xl));\n\n position: relative;\n display: inline-block;\n }\n\n .panel {\n position: fixed;\n\n /* Popover UA resets */\n inset: unset;\n box-sizing: border-box;\n min-width: var(--popover-min-width, 12rem);\n max-width: var(--popover-max-width, 24rem);\n max-height: var(--popover-max-height, min(70vh, 32rem));\n padding: 0;\n margin: 0;\n overflow: auto;\n word-break: auto-phrase;\n overflow-wrap: anywhere;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n border-radius: var(--rounded-lg);\n box-shadow: var(--_panel-shadow);\n\n /* Hidden by default */\n opacity: 0;\n backdrop-filter: blur(var(--_panel-blur));\n transform: scale(0.96) translateY(var(--size-2));\n transition: var(\n --_motion-transition,\n opacity var(--transition-fast),\n transform var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete\n );\n }\n\n .panel:popover-open {\n opacity: 1;\n transform: scale(1) translateY(0);\n\n @starting-style {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n }\n}\n"],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import type { Placement } from '@vielzeug/floatit';
2
+ export type PopoverTrigger = 'click' | 'hover' | 'focus';
3
+ export type BitPopoverEvents = {
4
+ /** Emitted when the popover closes */
5
+ close: undefined;
6
+ /** Emitted when the popover opens */
7
+ open: undefined;
8
+ };
9
+ /** Popover component properties */
10
+ export type BitPopoverProps = {
11
+ /** Disable the popover */
12
+ disabled?: boolean;
13
+ /** Accessible label for the panel */
14
+ label?: string;
15
+ /** Gap between trigger and panel in px */
16
+ offset?: number;
17
+ /** Controlled open state */
18
+ open?: boolean;
19
+ /** Preferred placement relative to the trigger */
20
+ placement?: Placement;
21
+ /** Which trigger(s) open/close the popover — comma-separated */
22
+ trigger?: string;
23
+ };
24
+ /**
25
+ * A floating informational or interactive panel anchored to a trigger element.
26
+ * Unlike tooltips, popovers support arbitrary interactive content via slots.
27
+ *
28
+ * @element bit-popover
29
+ *
30
+ * @attr {string} placement - Preferred placement (default: 'bottom')
31
+ * @attr {string} trigger - 'click' | 'hover' | 'focus' or comma-separated (default: 'click')
32
+ * @attr {boolean} open - Controlled open state
33
+ * @attr {number} offset - Gap in px between trigger and panel (default: 8)
34
+ * @attr {boolean} disabled - Disables the popover
35
+ * @attr {string} label - aria-label on the panel
36
+ *
37
+ * @slot - The trigger element
38
+ * @slot content - Panel content
39
+ *
40
+ * @fires open - When the panel opens
41
+ * @fires close - When the panel closes
42
+ *
43
+ * @cssprop --popover-min-width - Min width of the panel
44
+ * @cssprop --popover-max-width - Max width of the panel
45
+ * @cssprop --popover-max-height - Max height of the panel
46
+ *
47
+ * @example
48
+ * ```html
49
+ * <bit-popover>
50
+ * <button>Open</button>
51
+ * <div slot="content">Panel content here</div>
52
+ * </bit-popover>
53
+ * ```
54
+ */
55
+ export declare const POPOVER_TAG: string;
56
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/overlay/popover/popover.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAOnD,MAAM,MAAM,cAAc,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAC;AAiBzD,MAAM,MAAM,gBAAgB,GAAG;IAC7B,sCAAsC;IACtC,KAAK,EAAE,SAAS,CAAC;IACjB,qCAAqC;IACrC,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG;IAC5B,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,qCAAqC;IACrC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0CAA0C;IAC1C,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,kDAAkD;IAClD,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,gEAAgE;IAChE,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,WAAW,QAiNtB,CAAC"}
@@ -0,0 +1,2 @@
1
+ var e=`.tooltip{inset:unset;padding:var(--size-1-5) var(--size-3);border:var(--_tooltip-border-width,var(--border-0)) solid var(--_tooltip-border-color,transparent);transform-origin:50%;will-change:opacity, transform, filter;margin:0;overflow:visible}@layer buildit.base{:host{display:inline-block;position:relative}.tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-100))var(--lightningcss-dark,var(--color-contrast-900));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 80%, transparent));--_tooltip-border-width:var(--border);--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 12%, transparent));--_tooltip-shadow:var(--shadow-md);--_tooltip-closed-transform:translateY(var(--size-1)) scale(.98);max-width:var(--tooltip-max-width,var(--size-72));font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-snug);color:var(--_tooltip-fg);word-break:auto-phrase;white-space:pre-line;pointer-events:none;background:var(--_tooltip-bg);border-radius:var(--rounded);box-shadow:var(--_tooltip-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));transform:var(--_tooltip-closed-transform);transition:opacity var(--transition-fast), transform var(--transition-normal) var(--ease-out), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete;position:fixed}.tooltip[data-placement=top]{--_tooltip-closed-transform:translateY(var(--size-2)) scale(.96)}.tooltip[data-placement=bottom]{--_tooltip-closed-transform:translateY(calc(var(--size-2) * -1)) scale(.96)}.tooltip[data-placement=left]{--_tooltip-closed-transform:translateX(var(--size-2)) scale(.96)}.tooltip[data-placement=right]{--_tooltip-closed-transform:translateX(calc(var(--size-2) * -1)) scale(.96)}.tooltip:popover-open{opacity:1;transition:opacity var(--transition-normal), transform var(--transition-spring), display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete;transform:translate(0)scale(1)}@starting-style{.tooltip:popover-open{opacity:0;transform:var(--_tooltip-closed-transform)}}}@layer buildit.variants{:host([variant=light]) .tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-900))var(--lightningcss-dark,var(--color-contrast-100));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 80%, transparent));--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 12%, transparent));--_tooltip-shadow:var(--shadow-md)}}@layer buildit.utilities{:host([size=sm]) .tooltip{font-size:var(--text-xs)}:host([size=lg]) .tooltip{font-size:var(--text-base)}}`;exports.default=e;
2
+ //# sourceMappingURL=tooltip.css?inline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.css?inline.cjs","names":[],"sources":["../../../src/overlay/tooltip/tooltip.css?inline"],"sourcesContent":["/* ========================================\n Popover UA resets — unlayered so they unconditionally beat\n the browser's [popover] UA stylesheet (padding / inset / border / margin).\n Must NOT be inside @layer; unlayered author rules win over every layer and\n every UA default.\n ======================================== */\n.tooltip {\n inset: unset;\n padding: var(--size-1-5) var(--size-3);\n margin: 0;\n overflow: visible;\n border: var(--_tooltip-border-width, var(--border-0)) solid var(--_tooltip-border-color, transparent);\n transform-origin: center;\n will-change: opacity, transform, filter;\n}\n\n@layer buildit.base {\n :host {\n position: relative;\n display: inline-block;\n }\n\n .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-100), var(--color-contrast-900));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent)\n );\n --_tooltip-border-width: var(--border);\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n --_tooltip-closed-transform: translateY(var(--size-1)) scale(0.98);\n\n /* Positioning — JS sets top/left inline */\n position: fixed;\n max-width: var(--tooltip-max-width, var(--size-72));\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n line-height: var(--leading-snug);\n color: var(--_tooltip-fg);\n word-break: auto-phrase;\n white-space: pre-line;\n pointer-events: none;\n background: var(--_tooltip-bg);\n border-radius: var(--rounded);\n box-shadow: var(--_tooltip-shadow);\n\n /* Hidden by default (also serves as exit state) */\n opacity: 0;\n backdrop-filter: blur(var(--blur-sm));\n transform: var(--_tooltip-closed-transform);\n transition:\n opacity var(--transition-fast),\n transform var(--transition-normal) var(--ease-out),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete;\n }\n\n .tooltip[data-placement='top'] {\n --_tooltip-closed-transform: translateY(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='bottom'] {\n --_tooltip-closed-transform: translateY(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n .tooltip[data-placement='left'] {\n --_tooltip-closed-transform: translateX(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='right'] {\n --_tooltip-closed-transform: translateX(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n /* Entry animation via @starting-style */\n .tooltip:popover-open {\n opacity: 1;\n transform: translate(0, 0) scale(1);\n transition:\n opacity var(--transition-normal),\n transform var(--transition-spring),\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete;\n\n @starting-style {\n opacity: 0;\n transform: var(--_tooltip-closed-transform);\n }\n }\n}\n\n@layer buildit.variants {\n /* Light tooltip */\n :host([variant='light']) .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-900), var(--color-contrast-100));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent)\n );\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) .tooltip {\n font-size: var(--text-xs);\n }\n\n :host([size='lg']) .tooltip {\n font-size: var(--text-base);\n }\n}\n"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ //#region src/overlay/tooltip/tooltip.css?inline
2
+ var e = ".tooltip{inset:unset;padding:var(--size-1-5) var(--size-3);border:var(--_tooltip-border-width,var(--border-0)) solid var(--_tooltip-border-color,transparent);transform-origin:50%;will-change:opacity, transform, filter;margin:0;overflow:visible}@layer buildit.base{:host{display:inline-block;position:relative}.tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-100))var(--lightningcss-dark,var(--color-contrast-900));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 80%, transparent));--_tooltip-border-width:var(--border);--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 12%, transparent));--_tooltip-shadow:var(--shadow-md);--_tooltip-closed-transform:translateY(var(--size-1)) scale(.98);max-width:var(--tooltip-max-width,var(--size-72));font-size:var(--text-xs);font-weight:var(--font-medium);line-height:var(--leading-snug);color:var(--_tooltip-fg);word-break:auto-phrase;white-space:pre-line;pointer-events:none;background:var(--_tooltip-bg);border-radius:var(--rounded);box-shadow:var(--_tooltip-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--blur-sm));backdrop-filter:blur(var(--blur-sm));transform:var(--_tooltip-closed-transform);transition:opacity var(--transition-fast), transform var(--transition-normal) var(--ease-out), display var(--transition-fast) allow-discrete, overlay var(--transition-fast) allow-discrete;position:fixed}.tooltip[data-placement=top]{--_tooltip-closed-transform:translateY(var(--size-2)) scale(.96)}.tooltip[data-placement=bottom]{--_tooltip-closed-transform:translateY(calc(var(--size-2) * -1)) scale(.96)}.tooltip[data-placement=left]{--_tooltip-closed-transform:translateX(var(--size-2)) scale(.96)}.tooltip[data-placement=right]{--_tooltip-closed-transform:translateX(calc(var(--size-2) * -1)) scale(.96)}.tooltip:popover-open{opacity:1;transition:opacity var(--transition-normal), transform var(--transition-spring), display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete;transform:translate(0)scale(1)}@starting-style{.tooltip:popover-open{opacity:0;transform:var(--_tooltip-closed-transform)}}}@layer buildit.variants{:host([variant=light]) .tooltip{--_tooltip-fg:var(--lightningcss-light,var(--color-contrast-900))var(--lightningcss-dark,var(--color-contrast-100));--_tooltip-bg:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-100) 80%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-900) 80%, transparent));--_tooltip-border-color:var(--lightningcss-light,color-mix(in srgb, var(--color-contrast-900) 12%, transparent))var(--lightningcss-dark,color-mix(in srgb, var(--color-contrast-100) 12%, transparent));--_tooltip-shadow:var(--shadow-md)}}@layer buildit.utilities{:host([size=sm]) .tooltip{font-size:var(--text-xs)}:host([size=lg]) .tooltip{font-size:var(--text-base)}}";
3
+ //#endregion
4
+ export { e as default };
5
+
6
+ //# sourceMappingURL=tooltip.css?inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.css?inline.js","names":[],"sources":["../../../src/overlay/tooltip/tooltip.css?inline"],"sourcesContent":["/* ========================================\n Popover UA resets — unlayered so they unconditionally beat\n the browser's [popover] UA stylesheet (padding / inset / border / margin).\n Must NOT be inside @layer; unlayered author rules win over every layer and\n every UA default.\n ======================================== */\n.tooltip {\n inset: unset;\n padding: var(--size-1-5) var(--size-3);\n margin: 0;\n overflow: visible;\n border: var(--_tooltip-border-width, var(--border-0)) solid var(--_tooltip-border-color, transparent);\n transform-origin: center;\n will-change: opacity, transform, filter;\n}\n\n@layer buildit.base {\n :host {\n position: relative;\n display: inline-block;\n }\n\n .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-100), var(--color-contrast-900));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent)\n );\n --_tooltip-border-width: var(--border);\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n --_tooltip-closed-transform: translateY(var(--size-1)) scale(0.98);\n\n /* Positioning — JS sets top/left inline */\n position: fixed;\n max-width: var(--tooltip-max-width, var(--size-72));\n font-size: var(--text-xs);\n font-weight: var(--font-medium);\n line-height: var(--leading-snug);\n color: var(--_tooltip-fg);\n word-break: auto-phrase;\n white-space: pre-line;\n pointer-events: none;\n background: var(--_tooltip-bg);\n border-radius: var(--rounded);\n box-shadow: var(--_tooltip-shadow);\n\n /* Hidden by default (also serves as exit state) */\n opacity: 0;\n backdrop-filter: blur(var(--blur-sm));\n transform: var(--_tooltip-closed-transform);\n transition:\n opacity var(--transition-fast),\n transform var(--transition-normal) var(--ease-out),\n display var(--transition-fast) allow-discrete,\n overlay var(--transition-fast) allow-discrete;\n }\n\n .tooltip[data-placement='top'] {\n --_tooltip-closed-transform: translateY(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='bottom'] {\n --_tooltip-closed-transform: translateY(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n .tooltip[data-placement='left'] {\n --_tooltip-closed-transform: translateX(var(--size-2)) scale(0.96);\n }\n\n .tooltip[data-placement='right'] {\n --_tooltip-closed-transform: translateX(calc(var(--size-2) * -1)) scale(0.96);\n }\n\n /* Entry animation via @starting-style */\n .tooltip:popover-open {\n opacity: 1;\n transform: translate(0, 0) scale(1);\n transition:\n opacity var(--transition-normal),\n transform var(--transition-spring),\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete;\n\n @starting-style {\n opacity: 0;\n transform: var(--_tooltip-closed-transform);\n }\n }\n}\n\n@layer buildit.variants {\n /* Light tooltip */\n :host([variant='light']) .tooltip {\n --_tooltip-fg: light-dark(var(--color-contrast-900), var(--color-contrast-100));\n --_tooltip-bg: light-dark(\n color-mix(in srgb, var(--color-contrast-100) 80%, transparent),\n color-mix(in srgb, var(--color-contrast-900) 80%, transparent)\n );\n --_tooltip-border-color: light-dark(\n color-mix(in srgb, var(--color-contrast-900) 12%, transparent),\n color-mix(in srgb, var(--color-contrast-100) 12%, transparent)\n );\n --_tooltip-shadow: var(--shadow-md);\n }\n}\n\n@layer buildit.utilities {\n :host([size='sm']) .tooltip {\n font-size: var(--text-xs);\n }\n\n :host([size='lg']) .tooltip {\n font-size: var(--text-base);\n }\n}\n"],"mappings":""}
@@ -0,0 +1,55 @@
1
+ import type { ComponentSize } from '../../types';
2
+ type TooltipPlacement = 'top' | 'bottom' | 'left' | 'right';
3
+ /** Tooltip component properties */
4
+ export type BitTooltipProps = {
5
+ /** Hide delay in ms (useful to keep tooltip open when moving focus between trigger and tooltip) */
6
+ 'close-delay'?: number;
7
+ /** Tooltip text content */
8
+ content?: string;
9
+ /** Show delay in ms */
10
+ delay?: number;
11
+ /** Disable the tooltip */
12
+ disabled?: boolean;
13
+ /** Controlled open state. When provided, the tooltip acts as a controlled component and ignores trigger events for open/close. */
14
+ open?: boolean;
15
+ /** Preferred placement relative to trigger */
16
+ placement?: TooltipPlacement;
17
+ /** Tooltip size */
18
+ size?: ComponentSize;
19
+ /** Which trigger(s) show/hide the tooltip — comma-separated if multiple, e.g. "hover,focus" */
20
+ trigger?: string;
21
+ /** Visual variant: 'dark' (default) or 'light' */
22
+ variant?: 'dark' | 'light';
23
+ };
24
+ /**
25
+ * A lightweight tooltip shown on hover/focus/click relative to the slotted trigger.
26
+ *
27
+ * @element bit-tooltip
28
+ *
29
+ * @attr {string} content - Tooltip text content
30
+ * @attr {string} placement - 'top' | 'bottom' | 'left' | 'right' (default: 'top')
31
+ * @attr {string} trigger - 'hover' | 'focus' | 'click' or comma-separated combination
32
+ * @attr {number} delay - Show delay in milliseconds (default: 0)
33
+ * @attr {string} size - Size: 'sm' | 'md' | 'lg'
34
+ * @attr {string} variant - 'dark' (default) | 'light'
35
+ * @attr {boolean} disabled - Disable the tooltip
36
+ *
37
+ * @slot - Trigger element that the tooltip is anchored to
38
+ * @slot content - Complex tooltip content (overrides the `content` attribute)
39
+ *
40
+ * @cssprop --tooltip-max-width - Max width of the tooltip bubble
41
+ *
42
+ * @example
43
+ * ```html
44
+ * <bit-tooltip content="Copy to clipboard">
45
+ * <button>Copy</button>
46
+ * </bit-tooltip>
47
+ *
48
+ * <bit-tooltip placement="right" trigger="focus,hover" content="Required field">
49
+ * <input type="text" />
50
+ * </bit-tooltip>
51
+ * ```
52
+ */
53
+ export declare const TOOLTIP_TAG: string;
54
+ export {};
55
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/overlay/tooltip/tooltip.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAIjD,KAAK,gBAAgB,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAQ5D,mCAAmC;AACnC,MAAM,MAAM,eAAe,GAAG;IAC5B,mGAAmG;IACnG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,2BAA2B;IAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,uBAAuB;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,0BAA0B;IAC1B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,kIAAkI;IAClI,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,8CAA8C;IAC9C,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,mBAAmB;IACnB,IAAI,CAAC,EAAE,aAAa,CAAC;IACrB,+FAA+F;IAC/F,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kDAAkD;IAClD,OAAO,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;CAC5B,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,WAAW,QA6OtB,CAAC"}
@@ -0,0 +1,102 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./styles/mixins/accessibility.css.cjs`),t=require(`./styles/mixins/shape.css.cjs`),n=require(`./styles/mixins/theme.css.cjs`);require(`./styles/index.cjs`);const r=require(`./craftit/dist/directives/each.cjs`);require(`./craftit/dist/directives/index.cjs`),require(`./button.cjs`);const i=require(`./content/pagination/pagination.css?inline.cjs`);let a=require(`@vielzeug/craftit`);function o(e,t,n){let r=t,i=[];if(r<=2+2*n+3)return Array.from({length:r},(e,t)=>t+1);let a=Math.max(e-n,2),o=Math.min(e+n,r-1);i.push(1),a>3?i.push(`ellipsis-start`):a===3&&i.push(2);for(let e=a;e<=o;e++)i.push(e);return o<r-1-1?i.push(`ellipsis-end`):o===r-1-1&&i.push(r-1),i.push(r),i}var s=(0,a.defineComponent)({props:{color:{default:void 0},label:{default:`Pagination`},page:{default:1},"show-first-last":{default:!1,type:Boolean},"show-prev-next":{default:!1,type:Boolean},siblings:{default:1},size:{default:void 0},"total-pages":{default:1},variant:{default:void 0}},setup({emit:e,host:t,props:n}){function i(r){let i=Number(n[`total-pages`].value)||1,a=Math.min(Math.max(1,r),i);a!==Number(n.page.value)&&(t.setAttribute(`page`,String(a)),e(`change`,{page:a}))}function s(e){let t=e.target?.closest(`[part="page-btn"]`);if(!t)return;let n=t.getAttribute(`aria-label`);if(!n)return;let r=n.match(/\d+/);r&&i(Number(r[0]))}let c=(0,a.computed)(()=>o(Number(n.page.value)||1,Number(n[`total-pages`].value)||1,Number(n.siblings.value)??1)),l=(0,a.computed)(()=>(Number(n.page.value)||1)<=1),u=(0,a.computed)(()=>(Number(n.page.value)||1)>=(Number(n[`total-pages`].value)||1));return a.html`
2
+ <nav :aria-label="${()=>n.label.value}" part="nav" @click=${s}>
3
+ <ol class="pagination" part="list">
4
+ ${()=>n[`show-first-last`].value?a.html`<li>
5
+ <button
6
+ type="button"
7
+ class="nav-btn"
8
+ part="first-btn"
9
+ aria-label="First page"
10
+ ?disabled=${()=>l.value}
11
+ @click=${()=>i(1)}>
12
+ <svg
13
+ width="16"
14
+ height="16"
15
+ viewBox="0 0 24 24"
16
+ fill="none"
17
+ stroke="currentColor"
18
+ stroke-width="2"
19
+ stroke-linecap="round"
20
+ stroke-linejoin="round"
21
+ aria-hidden="true">
22
+ <polyline points="11 17 6 12 11 7" />
23
+ <polyline points="18 17 13 12 18 7" />
24
+ </svg>
25
+ </button>
26
+ </li>`:``}
27
+ ${()=>n[`show-prev-next`].value?a.html`<li>
28
+ <button
29
+ type="button"
30
+ class="nav-btn"
31
+ part="prev-btn"
32
+ aria-label="Previous page"
33
+ ?disabled=${()=>l.value}
34
+ @click=${()=>i((Number(n.page.value)||1)-1)}>
35
+ <svg
36
+ width="16"
37
+ height="16"
38
+ viewBox="0 0 24 24"
39
+ fill="none"
40
+ stroke="currentColor"
41
+ stroke-width="2"
42
+ stroke-linecap="round"
43
+ stroke-linejoin="round"
44
+ aria-hidden="true">
45
+ <polyline points="15 18 9 12 15 6" />
46
+ </svg>
47
+ </button>
48
+ </li>`:``}
49
+ <li style="display: contents;">
50
+ ${r.d(c,e=>{if(e===`ellipsis-start`||e===`ellipsis-end`)return a.html`<span class="ellipsis" aria-hidden="true">&hellip;</span>`;let t=e;return t===(Number(n.page.value)||1)?a.html`<button type="button" part="page-btn" aria-label="Page ${t}" aria-current="page">
51
+ ${t}
52
+ </button>`:a.html`<button type="button" part="page-btn" aria-label="Page ${t}">${t}</button>`},void 0,{key:e=>`${e}`})}
53
+ </li>
54
+ ${()=>n[`show-prev-next`].value?a.html`<li>
55
+ <button
56
+ type="button"
57
+ class="nav-btn"
58
+ part="next-btn"
59
+ aria-label="Next page"
60
+ ?disabled=${()=>u.value}
61
+ @click=${()=>i((Number(n.page.value)||1)+1)}>
62
+ <svg
63
+ width="16"
64
+ height="16"
65
+ viewBox="0 0 24 24"
66
+ fill="none"
67
+ stroke="currentColor"
68
+ stroke-width="2"
69
+ stroke-linecap="round"
70
+ stroke-linejoin="round"
71
+ aria-hidden="true">
72
+ <polyline points="9 18 15 12 9 6" />
73
+ </svg>
74
+ </button>
75
+ </li>`:``}
76
+ ${()=>n[`show-first-last`].value?a.html`<li>
77
+ <button
78
+ type="button"
79
+ class="nav-btn"
80
+ part="last-btn"
81
+ aria-label="Last page"
82
+ ?disabled=${()=>u.value}
83
+ @click=${()=>i(Number(n[`total-pages`].value)||1)}>
84
+ <svg
85
+ width="16"
86
+ height="16"
87
+ viewBox="0 0 24 24"
88
+ fill="none"
89
+ stroke="currentColor"
90
+ stroke-width="2"
91
+ stroke-linecap="round"
92
+ stroke-linejoin="round"
93
+ aria-hidden="true">
94
+ <polyline points="13 17 18 12 13 7" />
95
+ <polyline points="6 17 11 12 6 7" />
96
+ </svg>
97
+ </button>
98
+ </li>`:``}
99
+ </ol>
100
+ </nav>
101
+ `},styles:[n.colorThemeMixin,t.sizeVariantMixin({}),e.coarsePointerMixin,i.default],tag:`bit-pagination`});exports.PAGINATION_TAG=s;
102
+ //# sourceMappingURL=pagination.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.cjs","names":[],"sources":["../src/content/pagination/pagination.ts"],"sourcesContent":["import { computed, defineComponent, html } from '@vielzeug/craftit';\nimport { each } from '@vielzeug/craftit/directives';\n\nimport '../../inputs/button/button';\nimport type { ComponentSize, ThemeColor, VisualVariant } from '../../types';\n\nimport { coarsePointerMixin, colorThemeMixin, sizeVariantMixin } from '../../styles';\nimport styles from './pagination.css?inline';\n\nexport type BitPaginationEvents = {\n change: { page: number };\n};\n\n/** Pagination props */\nexport type BitPaginationProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Accessible label for the nav landmark */\n label?: string;\n /** Current page (1-indexed) */\n page?: number;\n /** Show first/last page navigation buttons */\n 'show-first-last'?: boolean;\n /** Show prev/next navigation buttons */\n 'show-prev-next'?: boolean;\n /** Number of sibling pages shown around the current page */\n siblings?: number;\n /** Size */\n size?: ComponentSize;\n /** Total number of pages */\n 'total-pages'?: number;\n /** Visual variant for nav buttons */\n variant?: VisualVariant;\n};\n\nfunction buildPageRange(\n currentPage: number,\n totalPages: number,\n siblings: number,\n): Array<number | 'ellipsis-start' | 'ellipsis-end'> {\n const BOUNDARY = 1; // always show first and last page\n const total = totalPages;\n const pages: Array<number | 'ellipsis-start' | 'ellipsis-end'> = [];\n\n // If total is small enough, show all pages\n if (total <= 2 * BOUNDARY + 2 * siblings + 3) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n const leftSibling = Math.max(currentPage - siblings, BOUNDARY + 1);\n const rightSibling = Math.min(currentPage + siblings, total - BOUNDARY);\n\n pages.push(1);\n\n if (leftSibling > BOUNDARY + 2) pages.push('ellipsis-start');\n else if (leftSibling === BOUNDARY + 2) pages.push(BOUNDARY + 1);\n\n for (let i = leftSibling; i <= rightSibling; i++) pages.push(i);\n\n if (rightSibling < total - BOUNDARY - 1) pages.push('ellipsis-end');\n else if (rightSibling === total - BOUNDARY - 1) pages.push(total - BOUNDARY);\n\n pages.push(total);\n\n return pages;\n}\n\n/**\n * Page-based navigation control.\n *\n * @element bit-pagination\n *\n * @attr {number} page - Current page (1-indexed, default: 1)\n * @attr {number} total-pages - Total number of pages (required)\n * @attr {number} siblings - Sibling pages around current (default: 1)\n * @attr {boolean} show-first-last - Show first/last page buttons (default: false)\n * @attr {boolean} show-prev-next - Show prev/next buttons (default: false)\n * @attr {string} color - Theme color\n * @attr {string} variant - Visual variant for nav buttons: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost' | 'glass' (default: 'ghost')\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} label - Accessible nav label (default: 'Pagination')\n *\n * @fires change - Emitted when the page changes, with { page: number }\n *\n * @cssprop --pagination-item-size - Width/height of each item\n * @cssprop --pagination-gap - Gap between items\n * @cssprop --pagination-radius - Border radius of items\n *\n * @example\n * ```html\n * <bit-pagination page=\"3\" total-pages=\"10\" color=\"primary\"></bit-pagination>\n * ```\n */\nexport const PAGINATION_TAG = defineComponent<BitPaginationProps, BitPaginationEvents>({\n props: {\n color: { default: undefined },\n label: { default: 'Pagination' },\n page: { default: 1 },\n 'show-first-last': { default: false, type: Boolean },\n 'show-prev-next': { default: false, type: Boolean },\n siblings: { default: 1 },\n size: { default: undefined },\n 'total-pages': { default: 1 },\n variant: { default: undefined },\n },\n setup({ emit, host, props }) {\n function goTo(page: number) {\n const total = Number(props['total-pages'].value) || 1;\n const next = Math.min(Math.max(1, page), total);\n\n if (next === Number(props.page.value)) return;\n\n host.setAttribute('page', String(next));\n emit('change', { page: next });\n }\n\n function handlePageClick(event: Event) {\n const btn = (event.target as HTMLElement)?.closest('[part=\"page-btn\"]') as HTMLButtonElement | null;\n\n if (!btn) return;\n\n const ariaLabel = btn.getAttribute('aria-label');\n\n if (!ariaLabel) return;\n\n const pageMatch = ariaLabel.match(/\\d+/);\n\n if (!pageMatch) return;\n\n const page = Number(pageMatch[0]);\n\n goTo(page);\n }\n\n const pageItems = computed(() =>\n buildPageRange(\n Number(props.page.value) || 1,\n Number(props['total-pages'].value) || 1,\n // eslint-disable-next-line no-constant-binary-expression\n Number(props.siblings.value) ?? 1,\n ),\n );\n const isFirst = computed(() => (Number(props.page.value) || 1) <= 1);\n const isLast = computed(() => (Number(props.page.value) || 1) >= (Number(props['total-pages'].value) || 1));\n\n return html`\n <nav :aria-label=\"${() => props.label.value}\" part=\"nav\" @click=${handlePageClick}>\n <ol class=\"pagination\" part=\"list\">\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"first-btn\"\n aria-label=\"First page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo(1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"11 17 6 12 11 7\" />\n <polyline points=\"18 17 13 12 18 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"prev-btn\"\n aria-label=\"Previous page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo((Number(props.page.value) || 1) - 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n <li style=\"display: contents;\">\n ${each(\n pageItems,\n (item) => {\n if (item === 'ellipsis-start' || item === 'ellipsis-end') {\n return html`<span class=\"ellipsis\" aria-hidden=\"true\">&hellip;</span>`;\n }\n\n const pg = item as number;\n const isCurrent = pg === (Number(props.page.value) || 1);\n\n return isCurrent\n ? html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\" aria-current=\"page\">\n ${pg}\n </button>`\n : html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\">${pg}</button>`;\n },\n undefined,\n { key: (item) => `${item}` },\n )}\n </li>\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"next-btn\"\n aria-label=\"Next page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo((Number(props.page.value) || 1) + 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"last-btn\"\n aria-label=\"Last page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo(Number(props['total-pages'].value) || 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"13 17 18 12 13 7\" />\n <polyline points=\"6 17 11 12 6 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n </ol>\n </nav>\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), coarsePointerMixin, styles],\n tag: 'bit-pagination',\n});\n"],"mappings":"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"}
@@ -0,0 +1,168 @@
1
+ import { coarsePointerMixin as e } from "./styles/mixins/accessibility.css.js";
2
+ import { sizeVariantMixin as t } from "./styles/mixins/shape.css.js";
3
+ import { colorThemeMixin as n } from "./styles/mixins/theme.css.js";
4
+ import "./styles/index.js";
5
+ import { d as r } from "./craftit/dist/directives/each.js";
6
+ import "./craftit/dist/directives/index.js";
7
+ import "./button.js";
8
+ import i from "./content/pagination/pagination.css?inline.js";
9
+ import { computed as a, defineComponent as o, html as s } from "@vielzeug/craftit";
10
+ //#region src/content/pagination/pagination.ts
11
+ function c(e, t, n) {
12
+ let r = t, i = [];
13
+ if (r <= 2 + 2 * n + 3) return Array.from({ length: r }, (e, t) => t + 1);
14
+ let a = Math.max(e - n, 2), o = Math.min(e + n, r - 1);
15
+ i.push(1), a > 3 ? i.push("ellipsis-start") : a === 3 && i.push(2);
16
+ for (let e = a; e <= o; e++) i.push(e);
17
+ return o < r - 1 - 1 ? i.push("ellipsis-end") : o === r - 1 - 1 && i.push(r - 1), i.push(r), i;
18
+ }
19
+ var l = o({
20
+ props: {
21
+ color: { default: void 0 },
22
+ label: { default: "Pagination" },
23
+ page: { default: 1 },
24
+ "show-first-last": {
25
+ default: !1,
26
+ type: Boolean
27
+ },
28
+ "show-prev-next": {
29
+ default: !1,
30
+ type: Boolean
31
+ },
32
+ siblings: { default: 1 },
33
+ size: { default: void 0 },
34
+ "total-pages": { default: 1 },
35
+ variant: { default: void 0 }
36
+ },
37
+ setup({ emit: e, host: t, props: n }) {
38
+ function i(r) {
39
+ let i = Number(n["total-pages"].value) || 1, a = Math.min(Math.max(1, r), i);
40
+ a !== Number(n.page.value) && (t.setAttribute("page", String(a)), e("change", { page: a }));
41
+ }
42
+ function o(e) {
43
+ let t = e.target?.closest("[part=\"page-btn\"]");
44
+ if (!t) return;
45
+ let n = t.getAttribute("aria-label");
46
+ if (!n) return;
47
+ let r = n.match(/\d+/);
48
+ r && i(Number(r[0]));
49
+ }
50
+ let l = a(() => c(Number(n.page.value) || 1, Number(n["total-pages"].value) || 1, Number(n.siblings.value) ?? 1)), u = a(() => (Number(n.page.value) || 1) <= 1), d = a(() => (Number(n.page.value) || 1) >= (Number(n["total-pages"].value) || 1));
51
+ return s`
52
+ <nav :aria-label="${() => n.label.value}" part="nav" @click=${o}>
53
+ <ol class="pagination" part="list">
54
+ ${() => n["show-first-last"].value ? s`<li>
55
+ <button
56
+ type="button"
57
+ class="nav-btn"
58
+ part="first-btn"
59
+ aria-label="First page"
60
+ ?disabled=${() => u.value}
61
+ @click=${() => i(1)}>
62
+ <svg
63
+ width="16"
64
+ height="16"
65
+ viewBox="0 0 24 24"
66
+ fill="none"
67
+ stroke="currentColor"
68
+ stroke-width="2"
69
+ stroke-linecap="round"
70
+ stroke-linejoin="round"
71
+ aria-hidden="true">
72
+ <polyline points="11 17 6 12 11 7" />
73
+ <polyline points="18 17 13 12 18 7" />
74
+ </svg>
75
+ </button>
76
+ </li>` : ""}
77
+ ${() => n["show-prev-next"].value ? s`<li>
78
+ <button
79
+ type="button"
80
+ class="nav-btn"
81
+ part="prev-btn"
82
+ aria-label="Previous page"
83
+ ?disabled=${() => u.value}
84
+ @click=${() => i((Number(n.page.value) || 1) - 1)}>
85
+ <svg
86
+ width="16"
87
+ height="16"
88
+ viewBox="0 0 24 24"
89
+ fill="none"
90
+ stroke="currentColor"
91
+ stroke-width="2"
92
+ stroke-linecap="round"
93
+ stroke-linejoin="round"
94
+ aria-hidden="true">
95
+ <polyline points="15 18 9 12 15 6" />
96
+ </svg>
97
+ </button>
98
+ </li>` : ""}
99
+ <li style="display: contents;">
100
+ ${r(l, (e) => {
101
+ if (e === "ellipsis-start" || e === "ellipsis-end") return s`<span class="ellipsis" aria-hidden="true">&hellip;</span>`;
102
+ let t = e;
103
+ return t === (Number(n.page.value) || 1) ? s`<button type="button" part="page-btn" aria-label="Page ${t}" aria-current="page">
104
+ ${t}
105
+ </button>` : s`<button type="button" part="page-btn" aria-label="Page ${t}">${t}</button>`;
106
+ }, void 0, { key: (e) => `${e}` })}
107
+ </li>
108
+ ${() => n["show-prev-next"].value ? s`<li>
109
+ <button
110
+ type="button"
111
+ class="nav-btn"
112
+ part="next-btn"
113
+ aria-label="Next page"
114
+ ?disabled=${() => d.value}
115
+ @click=${() => i((Number(n.page.value) || 1) + 1)}>
116
+ <svg
117
+ width="16"
118
+ height="16"
119
+ viewBox="0 0 24 24"
120
+ fill="none"
121
+ stroke="currentColor"
122
+ stroke-width="2"
123
+ stroke-linecap="round"
124
+ stroke-linejoin="round"
125
+ aria-hidden="true">
126
+ <polyline points="9 18 15 12 9 6" />
127
+ </svg>
128
+ </button>
129
+ </li>` : ""}
130
+ ${() => n["show-first-last"].value ? s`<li>
131
+ <button
132
+ type="button"
133
+ class="nav-btn"
134
+ part="last-btn"
135
+ aria-label="Last page"
136
+ ?disabled=${() => d.value}
137
+ @click=${() => i(Number(n["total-pages"].value) || 1)}>
138
+ <svg
139
+ width="16"
140
+ height="16"
141
+ viewBox="0 0 24 24"
142
+ fill="none"
143
+ stroke="currentColor"
144
+ stroke-width="2"
145
+ stroke-linecap="round"
146
+ stroke-linejoin="round"
147
+ aria-hidden="true">
148
+ <polyline points="13 17 18 12 13 7" />
149
+ <polyline points="6 17 11 12 6 7" />
150
+ </svg>
151
+ </button>
152
+ </li>` : ""}
153
+ </ol>
154
+ </nav>
155
+ `;
156
+ },
157
+ styles: [
158
+ n,
159
+ t({}),
160
+ e,
161
+ i
162
+ ],
163
+ tag: "bit-pagination"
164
+ });
165
+ //#endregion
166
+ export { l as PAGINATION_TAG };
167
+
168
+ //# sourceMappingURL=pagination.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pagination.js","names":[],"sources":["../src/content/pagination/pagination.ts"],"sourcesContent":["import { computed, defineComponent, html } from '@vielzeug/craftit';\nimport { each } from '@vielzeug/craftit/directives';\n\nimport '../../inputs/button/button';\nimport type { ComponentSize, ThemeColor, VisualVariant } from '../../types';\n\nimport { coarsePointerMixin, colorThemeMixin, sizeVariantMixin } from '../../styles';\nimport styles from './pagination.css?inline';\n\nexport type BitPaginationEvents = {\n change: { page: number };\n};\n\n/** Pagination props */\nexport type BitPaginationProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Accessible label for the nav landmark */\n label?: string;\n /** Current page (1-indexed) */\n page?: number;\n /** Show first/last page navigation buttons */\n 'show-first-last'?: boolean;\n /** Show prev/next navigation buttons */\n 'show-prev-next'?: boolean;\n /** Number of sibling pages shown around the current page */\n siblings?: number;\n /** Size */\n size?: ComponentSize;\n /** Total number of pages */\n 'total-pages'?: number;\n /** Visual variant for nav buttons */\n variant?: VisualVariant;\n};\n\nfunction buildPageRange(\n currentPage: number,\n totalPages: number,\n siblings: number,\n): Array<number | 'ellipsis-start' | 'ellipsis-end'> {\n const BOUNDARY = 1; // always show first and last page\n const total = totalPages;\n const pages: Array<number | 'ellipsis-start' | 'ellipsis-end'> = [];\n\n // If total is small enough, show all pages\n if (total <= 2 * BOUNDARY + 2 * siblings + 3) {\n return Array.from({ length: total }, (_, i) => i + 1);\n }\n\n const leftSibling = Math.max(currentPage - siblings, BOUNDARY + 1);\n const rightSibling = Math.min(currentPage + siblings, total - BOUNDARY);\n\n pages.push(1);\n\n if (leftSibling > BOUNDARY + 2) pages.push('ellipsis-start');\n else if (leftSibling === BOUNDARY + 2) pages.push(BOUNDARY + 1);\n\n for (let i = leftSibling; i <= rightSibling; i++) pages.push(i);\n\n if (rightSibling < total - BOUNDARY - 1) pages.push('ellipsis-end');\n else if (rightSibling === total - BOUNDARY - 1) pages.push(total - BOUNDARY);\n\n pages.push(total);\n\n return pages;\n}\n\n/**\n * Page-based navigation control.\n *\n * @element bit-pagination\n *\n * @attr {number} page - Current page (1-indexed, default: 1)\n * @attr {number} total-pages - Total number of pages (required)\n * @attr {number} siblings - Sibling pages around current (default: 1)\n * @attr {boolean} show-first-last - Show first/last page buttons (default: false)\n * @attr {boolean} show-prev-next - Show prev/next buttons (default: false)\n * @attr {string} color - Theme color\n * @attr {string} variant - Visual variant for nav buttons: 'solid' | 'flat' | 'bordered' | 'outline' | 'ghost' | 'text' | 'frost' | 'glass' (default: 'ghost')\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} label - Accessible nav label (default: 'Pagination')\n *\n * @fires change - Emitted when the page changes, with { page: number }\n *\n * @cssprop --pagination-item-size - Width/height of each item\n * @cssprop --pagination-gap - Gap between items\n * @cssprop --pagination-radius - Border radius of items\n *\n * @example\n * ```html\n * <bit-pagination page=\"3\" total-pages=\"10\" color=\"primary\"></bit-pagination>\n * ```\n */\nexport const PAGINATION_TAG = defineComponent<BitPaginationProps, BitPaginationEvents>({\n props: {\n color: { default: undefined },\n label: { default: 'Pagination' },\n page: { default: 1 },\n 'show-first-last': { default: false, type: Boolean },\n 'show-prev-next': { default: false, type: Boolean },\n siblings: { default: 1 },\n size: { default: undefined },\n 'total-pages': { default: 1 },\n variant: { default: undefined },\n },\n setup({ emit, host, props }) {\n function goTo(page: number) {\n const total = Number(props['total-pages'].value) || 1;\n const next = Math.min(Math.max(1, page), total);\n\n if (next === Number(props.page.value)) return;\n\n host.setAttribute('page', String(next));\n emit('change', { page: next });\n }\n\n function handlePageClick(event: Event) {\n const btn = (event.target as HTMLElement)?.closest('[part=\"page-btn\"]') as HTMLButtonElement | null;\n\n if (!btn) return;\n\n const ariaLabel = btn.getAttribute('aria-label');\n\n if (!ariaLabel) return;\n\n const pageMatch = ariaLabel.match(/\\d+/);\n\n if (!pageMatch) return;\n\n const page = Number(pageMatch[0]);\n\n goTo(page);\n }\n\n const pageItems = computed(() =>\n buildPageRange(\n Number(props.page.value) || 1,\n Number(props['total-pages'].value) || 1,\n // eslint-disable-next-line no-constant-binary-expression\n Number(props.siblings.value) ?? 1,\n ),\n );\n const isFirst = computed(() => (Number(props.page.value) || 1) <= 1);\n const isLast = computed(() => (Number(props.page.value) || 1) >= (Number(props['total-pages'].value) || 1));\n\n return html`\n <nav :aria-label=\"${() => props.label.value}\" part=\"nav\" @click=${handlePageClick}>\n <ol class=\"pagination\" part=\"list\">\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"first-btn\"\n aria-label=\"First page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo(1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"11 17 6 12 11 7\" />\n <polyline points=\"18 17 13 12 18 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"prev-btn\"\n aria-label=\"Previous page\"\n ?disabled=${() => isFirst.value}\n @click=${() => goTo((Number(props.page.value) || 1) - 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"15 18 9 12 15 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n <li style=\"display: contents;\">\n ${each(\n pageItems,\n (item) => {\n if (item === 'ellipsis-start' || item === 'ellipsis-end') {\n return html`<span class=\"ellipsis\" aria-hidden=\"true\">&hellip;</span>`;\n }\n\n const pg = item as number;\n const isCurrent = pg === (Number(props.page.value) || 1);\n\n return isCurrent\n ? html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\" aria-current=\"page\">\n ${pg}\n </button>`\n : html`<button type=\"button\" part=\"page-btn\" aria-label=\"Page ${pg}\">${pg}</button>`;\n },\n undefined,\n { key: (item) => `${item}` },\n )}\n </li>\n ${() =>\n props['show-prev-next'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"next-btn\"\n aria-label=\"Next page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo((Number(props.page.value) || 1) + 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"9 18 15 12 9 6\" />\n </svg>\n </button>\n </li>`\n : ''}\n ${() =>\n props['show-first-last'].value\n ? html`<li>\n <button\n type=\"button\"\n class=\"nav-btn\"\n part=\"last-btn\"\n aria-label=\"Last page\"\n ?disabled=${() => isLast.value}\n @click=${() => goTo(Number(props['total-pages'].value) || 1)}>\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n stroke-width=\"2\"\n stroke-linecap=\"round\"\n stroke-linejoin=\"round\"\n aria-hidden=\"true\">\n <polyline points=\"13 17 18 12 13 7\" />\n <polyline points=\"6 17 11 12 6 7\" />\n </svg>\n </button>\n </li>`\n : ''}\n </ol>\n </nav>\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), coarsePointerMixin, styles],\n tag: 'bit-pagination',\n});\n"],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});const e=require(`./styles/mixins/accessibility.css.cjs`);require(`./styles/index.cjs`);const t=require(`./overlay/popover/popover.css?inline.cjs`);let n=require(`@vielzeug/craftit`),r=require(`@vielzeug/floatit`);var i=8,a=new Set([`click`,`hover`,`focus`]);function o(e){let t=String(e).split(`,`).map(e=>e.trim()).filter(e=>a.has(e));return t.length>0?t:[`click`]}var s=(0,n.defineComponent)({props:{disabled:{default:!1},label:{default:void 0},offset:{default:i},open:{default:void 0},placement:{default:`bottom`},trigger:{default:`click`}},setup({emit:e,host:t,props:a}){let s=(0,n.signal)(!1),c=(0,n.createId)(`popover`),l=null,u=null,d=null,f=(0,n.computed)(()=>o(a.trigger.value));function p(){!l||!u||(0,r.positionFloat)(u,l,{middleware:[(0,r.offset)(a.offset.value??i),(0,r.flip)(),(0,r.shift)({padding:8})],placement:a.placement.value}).then(e=>{l&&(l.dataset.placement=e)})}function m(){s.value=!0,u?.setAttribute(`aria-expanded`,`true`),l&&!l.matches(`:popover-open`)&&l.showPopover(),u&&l&&(d?.(),d=(0,r.autoUpdate)(u,l,p)),p()}function h(){d?.(),d=null,u?.setAttribute(`aria-expanded`,`false`),s.value=!1,l?.matches(`:popover-open`)&&l.hidePopover()}function g(){a.open.value===void 0&&(a.disabled.value||s.value||(m(),e(`open`)))}function _(){a.open.value===void 0&&s.value&&(h(),e(`close`))}function v(){s.value?_():g()}function y(e){e.key===`Escape`&&_()}function b(e){if(!s.value)return;let n=e.composedPath();n.includes(t)||l&&n.includes(l)||u&&n.includes(u)||_()}function x(e){let t=e.relatedTarget;t&&l?.contains(t)||t&&u?.contains(t)||_()}return(0,n.onMount)(()=>{let r=t.shadowRoot?.querySelector(`slot:not([name])`);if(!r)return;let i=()=>{o();let e=r.assignedElements({flatten:!0})[0];if(!e)return;u=e,e.setAttribute(`aria-controls`,c),e.setAttribute(`aria-haspopup`,`dialog`),e.setAttribute(`aria-expanded`,String(s.value)),e.setAttribute(`aria-disabled`,String(!!a.disabled.value));let t=f.value;t.includes(`click`)&&(e.addEventListener(`click`,v),document.addEventListener(`click`,b,{capture:!0})),t.includes(`hover`)&&(e.addEventListener(`pointerenter`,g),e.addEventListener(`pointerleave`,_),l?.addEventListener(`pointerenter`,g),l?.addEventListener(`pointerleave`,_)),t.includes(`focus`)&&(e.addEventListener(`focusin`,g),e.addEventListener(`focusout`,x),l?.addEventListener(`focusout`,x)),document.addEventListener(`keydown`,y)},o=()=>{u&&=(u.removeAttribute(`aria-controls`),u.removeAttribute(`aria-haspopup`),u.removeAttribute(`aria-expanded`),u.removeAttribute(`aria-disabled`),u.removeEventListener(`click`,v),u.removeEventListener(`pointerenter`,g),u.removeEventListener(`pointerleave`,_),u.removeEventListener(`focusin`,g),u.removeEventListener(`focusout`,x),l?.removeEventListener(`pointerenter`,g),l?.removeEventListener(`pointerleave`,_),l?.removeEventListener(`focusout`,x),document.removeEventListener(`click`,b,{capture:!0}),document.removeEventListener(`keydown`,y),null)};return(0,n.onSlotChange)(`default`,i),(0,n.watch)(a.open,t=>{t!=null&&(t?(m(),e(`open`)):(h(),e(`close`)))}),(0,n.watch)(a.trigger,i),(0,n.watch)(a.disabled,e=>{u?.setAttribute(`aria-disabled`,String(!!e)),e&&_()}),()=>{o(),d?.(),d=null,l?.matches(`:popover-open`)&&l.hidePopover()}}),n.html`
2
+ <slot></slot>
3
+ <div
4
+ class="panel"
5
+ part="panel"
6
+ id="${c}"
7
+ role="dialog"
8
+ aria-modal="false"
9
+ popover="manual"
10
+ :aria-label="${()=>a.label.value??null}"
11
+ :aria-hidden="${()=>String(!s.value)}"
12
+ ref=${e=>{l=e}}>
13
+ <slot name="content"></slot>
14
+ </div>
15
+ `},styles:[e.reducedMotionMixin,t.default],tag:`bit-popover`});exports.POPOVER_TAG=s;
16
+ //# sourceMappingURL=popover.cjs.map