@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":"otp-input.cjs","names":[],"sources":["../src/inputs/otp-input/otp-input.ts"],"sourcesContent":["import { computed, defineComponent, html, onMount, typed } from '@vielzeug/craftit';\n\nimport type { ComponentSize, ThemeColor, VisualVariant } from '../../types';\n\nimport { colorThemeMixin, forcedColorsFocusMixin, sizeVariantMixin } from '../../styles';\nimport styles from './otp-input.css?inline';\n\nexport type BitOtpInputEvents = {\n change: { complete: boolean; originalEvent?: Event; value: string };\n complete: { originalEvent?: Event; value: string };\n};\n\n/** OTP Input props */\nexport type BitOtpInputProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Make inputs disabled */\n disabled?: boolean;\n /** Accessible label */\n label?: string;\n /** Number of input cells */\n length?: number;\n /** Mask input (show dots instead of characters) */\n masked?: boolean;\n /** Form field name */\n name?: string;\n /** Show a separator in the middle (e.g. \"–\") */\n separator?: string;\n /** Component size */\n size?: ComponentSize;\n /** Input type: 'numeric' (digits only) or 'alphanumeric' */\n type?: 'numeric' | 'alphanumeric';\n /** Current value */\n value?: string;\n /** Visual variant */\n variant?: Exclude<VisualVariant, 'text' | 'frost' | 'glass'>;\n};\n\n/**\n * A segmented OTP (One-Time Password) input with N individual cells.\n * Auto-advances focus on input, auto-backs on Backspace, handles paste.\n *\n * @element bit-otp-input\n *\n * @attr {number} length - Number of cells (default: 6)\n * @attr {string} type - 'numeric' (default) | 'alphanumeric'\n * @attr {string} value - Current code value\n * @attr {boolean} disabled - Disable all cells\n * @attr {boolean} masked - Show as password\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} color - Theme color\n * @attr {string} name - Form field name\n * @attr {string} label - Group aria-label\n * @attr {string} separator - Optional separator character shown in the middle\n *\n * @fires change - Emitted whenever a cell changes. detail: { value: string, complete: boolean, originalEvent?: Event }\n * @fires complete - Emitted when all cells are filled. detail: { value: string, originalEvent?: Event }\n *\n * @cssprop --otp-cell-size - Width and height of each cell\n * @cssprop --otp-cell-gap - Gap between cells\n * @cssprop --otp-cell-font-size - Font size inside cells\n * @cssprop --otp-cell-radius - Border radius of cells\n * @cssprop --otp-cell-border-color - Default border color\n * @cssprop --otp-cell-focus-border - Focused border color\n *\n * @example\n * ```html\n * <bit-otp-input length=\"6\" color=\"primary\"></bit-otp-input>\n * ```\n */\nexport const OTP_INPUT_TAG = defineComponent<BitOtpInputProps, BitOtpInputEvents>({\n props: {\n color: typed<BitOtpInputProps['color']>(undefined),\n disabled: typed<boolean>(false),\n label: typed<string>('One-time password'),\n length: typed<number>(6),\n masked: typed<boolean>(false),\n name: typed<string | undefined>(undefined),\n separator: typed<string | undefined>(undefined),\n size: typed<BitOtpInputProps['size']>(undefined),\n type: typed<BitOtpInputProps['type']>('numeric'),\n value: typed<string>(''),\n variant: typed<BitOtpInputProps['variant']>(undefined),\n },\n setup({ emit, host, props }) {\n const cells = computed(() => Array.from({ length: Number(props.length.value) || 6 }, (_, i) => i));\n\n function getInputs(): HTMLInputElement[] {\n return [...(host.shadowRoot?.querySelectorAll<HTMLInputElement>('input.cell') ?? [])];\n }\n function getValue(): string {\n return getInputs()\n .map((i) => i.value)\n .join('');\n }\n function isAllowed(char: string): boolean {\n if (props.type.value === 'numeric') return /^\\d$/.test(char);\n\n return /^[a-z\\d]$/i.test(char);\n }\n function handleInput(e: Event, index: number) {\n const input = e.target as HTMLInputElement;\n let val = input.value;\n\n // Keep only last character if multiple were typed somehow\n if (val.length > 1) val = val.slice(-1);\n\n // Validate character\n if (val && !isAllowed(val)) {\n input.value = '';\n\n return;\n }\n\n input.value = val;\n\n const allInputs = getInputs();\n const full = getValue();\n const complete = full.length === allInputs.length && full.split('').every(Boolean);\n\n host.setAttribute('value', full);\n emit('change', { complete, originalEvent: e, value: full });\n\n if (complete) emit('complete', { originalEvent: e, value: full });\n\n // Auto-advance\n if (val && index < allInputs.length - 1) {\n allInputs[index + 1].focus();\n allInputs[index + 1].select();\n }\n }\n function handleKeydown(e: KeyboardEvent, index: number) {\n const input = e.target as HTMLInputElement;\n const allInputs = getInputs();\n\n if (e.key === 'Backspace') {\n if (input.value) {\n input.value = '';\n } else if (index > 0) {\n allInputs[index - 1].focus();\n allInputs[index - 1].select();\n allInputs[index - 1].value = '';\n }\n\n const full = getValue();\n\n host.setAttribute('value', full);\n emit('change', { complete: false, originalEvent: e, value: full });\n e.preventDefault();\n } else if (e.key === 'ArrowLeft' && index > 0) {\n allInputs[index - 1].focus();\n e.preventDefault();\n } else if (e.key === 'ArrowRight' && index < allInputs.length - 1) {\n allInputs[index + 1].focus();\n e.preventDefault();\n } else if (e.key === 'Home') {\n allInputs[0].focus();\n e.preventDefault();\n } else if (e.key === 'End') {\n allInputs[allInputs.length - 1].focus();\n e.preventDefault();\n }\n }\n function handlePaste(e: ClipboardEvent) {\n e.preventDefault();\n\n const pasted = e.clipboardData?.getData('text') ?? '';\n const chars = pasted\n .split('')\n .filter((c) => isAllowed(c))\n .slice(0, Number(props.length.value) || 6);\n const allInputs = getInputs();\n\n chars.forEach((char, i) => {\n if (allInputs[i]) allInputs[i].value = char;\n });\n\n const full = getValue();\n const complete = full.length === allInputs.length && full.split('').every(Boolean);\n\n host.setAttribute('value', full);\n emit('change', { complete, originalEvent: e, value: full });\n\n if (complete) emit('complete', { originalEvent: e, value: full });\n\n // Focus the cell after last pasted char\n const focusIdx = Math.min(chars.length, allInputs.length - 1);\n\n allInputs[focusIdx]?.focus();\n }\n onMount(() => {\n // Populate cells from value prop on mount\n const initialVal = String(props.value.value || '');\n const allInputs = getInputs();\n\n initialVal.split('').forEach((c, i) => {\n if (allInputs[i]) allInputs[i].value = c;\n });\n });\n\n const separatorIdx = computed(() => {\n const len = Number(props.length.value) || 6;\n\n return props.separator.value != null ? Math.floor(len / 2) : -1;\n });\n\n return html`\n <div class=\"otp-group\" part=\"group\" role=\"group\" :aria-label=\"${() => props.label.value}\">\n ${() =>\n cells.value.map(\n (i) => html`\n ${() =>\n separatorIdx.value > 0 && i === separatorIdx.value\n ? html`<span class=\"separator\" aria-hidden=\"true\">${() => props.separator.value || '-'}</span>`\n : ''}\n <input\n class=\"cell\"\n part=\"cell\"\n :type=\"${() => (props.masked.value ? 'password' : 'text')}\"\n :inputmode=\"${() => (props.type.value === 'numeric' ? 'numeric' : 'text')}\"\n maxlength=\"1\"\n :autocomplete=\"${() => (i === 0 ? 'one-time-code' : 'off')}\"\n :aria-label=\"${() => `Digit ${i + 1} of ${props.length.value}`}\"\n :disabled=\"${() => props.disabled.value || null}\"\n :name=\"${() => (props.name.value ? `${props.name.value}[${i}]` : null)}\"\n @input=\"${(e: Event) => handleInput(e, i)}\"\n @keydown=\"${(e: KeyboardEvent) => handleKeydown(e, i)}\"\n @paste=\"${(e: ClipboardEvent) => (i === 0 ? handlePaste(e) : e.preventDefault())}\"\n @focus=\"${(e: FocusEvent) => (e.target as HTMLInputElement).select()}\" />\n `,\n )}\n </div>\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), forcedColorsFocusMixin('.cell'), styles],\n tag: 'bit-otp-input',\n});\n"],"mappings":"+RAsEA,IAAa,GAAA,EAAA,EAAA,iBAAqE,CAChF,MAAO,CACL,OAAA,EAAA,EAAA,OAAwC,IAAA,GAAU,CAClD,UAAA,EAAA,EAAA,OAAyB,GAAM,CAC/B,OAAA,EAAA,EAAA,OAAqB,oBAAoB,CACzC,QAAA,EAAA,EAAA,OAAsB,EAAE,CACxB,QAAA,EAAA,EAAA,OAAuB,GAAM,CAC7B,MAAA,EAAA,EAAA,OAAgC,IAAA,GAAU,CAC1C,WAAA,EAAA,EAAA,OAAqC,IAAA,GAAU,CAC/C,MAAA,EAAA,EAAA,OAAsC,IAAA,GAAU,CAChD,MAAA,EAAA,EAAA,OAAsC,UAAU,CAChD,OAAA,EAAA,EAAA,OAAqB,GAAG,CACxB,SAAA,EAAA,EAAA,OAA4C,IAAA,GAAU,CACvD,CACD,MAAM,CAAE,OAAM,OAAM,SAAS,CAC3B,IAAM,GAAA,EAAA,EAAA,cAAuB,MAAM,KAAK,CAAE,OAAQ,OAAO,EAAM,OAAO,MAAM,EAAI,EAAG,EAAG,EAAG,IAAM,EAAE,CAAC,CAElG,SAAS,GAAgC,CACvC,MAAO,CAAC,GAAI,EAAK,YAAY,iBAAmC,aAAa,EAAI,EAAE,CAAE,CAEvF,SAAS,GAAmB,CAC1B,OAAO,GAAW,CACf,IAAK,GAAM,EAAE,MAAM,CACnB,KAAK,GAAG,CAEb,SAAS,EAAU,EAAuB,CAGxC,OAFI,EAAM,KAAK,QAAU,UAAkB,OAAO,KAAK,EAAK,CAErD,aAAa,KAAK,EAAK,CAEhC,SAAS,EAAY,EAAU,EAAe,CAC5C,IAAM,EAAQ,EAAE,OACZ,EAAM,EAAM,MAMhB,GAHI,EAAI,OAAS,IAAG,EAAM,EAAI,MAAM,GAAG,EAGnC,GAAO,CAAC,EAAU,EAAI,CAAE,CAC1B,EAAM,MAAQ,GAEd,OAGF,EAAM,MAAQ,EAEd,IAAM,EAAY,GAAW,CACvB,EAAO,GAAU,CACjB,EAAW,EAAK,SAAW,EAAU,QAAU,EAAK,MAAM,GAAG,CAAC,MAAM,QAAQ,CAElF,EAAK,aAAa,QAAS,EAAK,CAChC,EAAK,SAAU,CAAE,WAAU,cAAe,EAAG,MAAO,EAAM,CAAC,CAEvD,GAAU,EAAK,WAAY,CAAE,cAAe,EAAG,MAAO,EAAM,CAAC,CAG7D,GAAO,EAAQ,EAAU,OAAS,IACpC,EAAU,EAAQ,GAAG,OAAO,CAC5B,EAAU,EAAQ,GAAG,QAAQ,EAGjC,SAAS,EAAc,EAAkB,EAAe,CACtD,IAAM,EAAQ,EAAE,OACV,EAAY,GAAW,CAE7B,GAAI,EAAE,MAAQ,YAAa,CACrB,EAAM,MACR,EAAM,MAAQ,GACL,EAAQ,IACjB,EAAU,EAAQ,GAAG,OAAO,CAC5B,EAAU,EAAQ,GAAG,QAAQ,CAC7B,EAAU,EAAQ,GAAG,MAAQ,IAG/B,IAAM,EAAO,GAAU,CAEvB,EAAK,aAAa,QAAS,EAAK,CAChC,EAAK,SAAU,CAAE,SAAU,GAAO,cAAe,EAAG,MAAO,EAAM,CAAC,CAClE,EAAE,gBAAgB,MACT,EAAE,MAAQ,aAAe,EAAQ,GAC1C,EAAU,EAAQ,GAAG,OAAO,CAC5B,EAAE,gBAAgB,EACT,EAAE,MAAQ,cAAgB,EAAQ,EAAU,OAAS,GAC9D,EAAU,EAAQ,GAAG,OAAO,CAC5B,EAAE,gBAAgB,EACT,EAAE,MAAQ,QACnB,EAAU,GAAG,OAAO,CACpB,EAAE,gBAAgB,EACT,EAAE,MAAQ,QACnB,EAAU,EAAU,OAAS,GAAG,OAAO,CACvC,EAAE,gBAAgB,EAGtB,SAAS,EAAY,EAAmB,CACtC,EAAE,gBAAgB,CAGlB,IAAM,GADS,EAAE,eAAe,QAAQ,OAAO,EAAI,IAEhD,MAAM,GAAG,CACT,OAAQ,GAAM,EAAU,EAAE,CAAC,CAC3B,MAAM,EAAG,OAAO,EAAM,OAAO,MAAM,EAAI,EAAE,CACtC,EAAY,GAAW,CAE7B,EAAM,SAAS,EAAM,IAAM,CACrB,EAAU,KAAI,EAAU,GAAG,MAAQ,IACvC,CAEF,IAAM,EAAO,GAAU,CACjB,EAAW,EAAK,SAAW,EAAU,QAAU,EAAK,MAAM,GAAG,CAAC,MAAM,QAAQ,CAElF,EAAK,aAAa,QAAS,EAAK,CAChC,EAAK,SAAU,CAAE,WAAU,cAAe,EAAG,MAAO,EAAM,CAAC,CAEvD,GAAU,EAAK,WAAY,CAAE,cAAe,EAAG,MAAO,EAAM,CAAC,CAKjE,EAFiB,KAAK,IAAI,EAAM,OAAQ,EAAU,OAAS,EAAE,GAExC,OAAO,EAE9B,EAAA,EAAA,aAAc,CAEZ,IAAM,EAAa,OAAO,EAAM,MAAM,OAAS,GAAG,CAC5C,EAAY,GAAW,CAE7B,EAAW,MAAM,GAAG,CAAC,SAAS,EAAG,IAAM,CACjC,EAAU,KAAI,EAAU,GAAG,MAAQ,IACvC,EACF,CAEF,IAAM,GAAA,EAAA,EAAA,cAA8B,CAClC,IAAM,EAAM,OAAO,EAAM,OAAO,MAAM,EAAI,EAE1C,OAAO,EAAM,UAAU,OAAS,KAA6B,GAAtB,KAAK,MAAM,EAAM,EAAE,EAC1D,CAEF,MAAO,GAAA,IAAI;0EAC6D,EAAM,MAAM,MAAM;cAEpF,EAAM,MAAM,IACT,GAAM,EAAA,IAAI;oBAEP,EAAa,MAAQ,GAAK,IAAM,EAAa,MACzC,EAAA,IAAI,kDAAoD,EAAM,UAAU,OAAS,IAAI,SACrF,GAAG;;;;6BAIS,EAAM,OAAO,MAAQ,WAAa,OAAQ;kCACrC,EAAM,KAAK,QAAU,UAAY,UAAY,OAAQ;;qCAElD,IAAM,EAAI,gBAAkB,MAAO;mCACtC,SAAS,EAAI,EAAE,MAAM,EAAM,OAAO,QAAQ;iCAC5C,EAAM,SAAS,OAAS,KAAK;6BAChC,EAAM,KAAK,MAAQ,GAAG,EAAM,KAAK,MAAM,GAAG,EAAE,GAAK,KAAM;0BAC5D,GAAa,EAAY,EAAG,EAAE,CAAC;4BAC7B,GAAqB,EAAc,EAAG,EAAE,CAAC;0BAC3C,GAAuB,IAAM,EAAI,EAAY,EAAE,CAAG,EAAE,gBAAgB,CAAE;0BACtE,GAAmB,EAAE,OAA4B,QAAQ,CAAC;cAE1E,CAAC;;OAIV,OAAQ,CAAC,EAAA,gBAAiB,EAAA,iBAAiB,EAAE,CAAC,CAAE,EAAA,uBAAuB,QAAQ,CAAE,EAAA,QAAO,CACxF,IAAK,gBACN,CAAC"}
@@ -0,0 +1,120 @@
1
+ import { sizeVariantMixin as e } from "./styles/mixins/shape.css.js";
2
+ import { colorThemeMixin as t, forcedColorsFocusMixin as n } from "./styles/mixins/theme.css.js";
3
+ import "./styles/index.js";
4
+ import r from "./inputs/otp-input/otp-input.css?inline.js";
5
+ import { computed as i, defineComponent as a, html as o, onMount as s, typed as c } from "@vielzeug/craftit";
6
+ //#region src/inputs/otp-input/otp-input.ts
7
+ var l = a({
8
+ props: {
9
+ color: c(void 0),
10
+ disabled: c(!1),
11
+ label: c("One-time password"),
12
+ length: c(6),
13
+ masked: c(!1),
14
+ name: c(void 0),
15
+ separator: c(void 0),
16
+ size: c(void 0),
17
+ type: c("numeric"),
18
+ value: c(""),
19
+ variant: c(void 0)
20
+ },
21
+ setup({ emit: e, host: t, props: n }) {
22
+ let r = i(() => Array.from({ length: Number(n.length.value) || 6 }, (e, t) => t));
23
+ function a() {
24
+ return [...t.shadowRoot?.querySelectorAll("input.cell") ?? []];
25
+ }
26
+ function c() {
27
+ return a().map((e) => e.value).join("");
28
+ }
29
+ function l(e) {
30
+ return n.type.value === "numeric" ? /^\d$/.test(e) : /^[a-z\d]$/i.test(e);
31
+ }
32
+ function u(n, r) {
33
+ let i = n.target, o = i.value;
34
+ if (o.length > 1 && (o = o.slice(-1)), o && !l(o)) {
35
+ i.value = "";
36
+ return;
37
+ }
38
+ i.value = o;
39
+ let s = a(), u = c(), d = u.length === s.length && u.split("").every(Boolean);
40
+ t.setAttribute("value", u), e("change", {
41
+ complete: d,
42
+ originalEvent: n,
43
+ value: u
44
+ }), d && e("complete", {
45
+ originalEvent: n,
46
+ value: u
47
+ }), o && r < s.length - 1 && (s[r + 1].focus(), s[r + 1].select());
48
+ }
49
+ function d(n, r) {
50
+ let i = n.target, o = a();
51
+ if (n.key === "Backspace") {
52
+ i.value ? i.value = "" : r > 0 && (o[r - 1].focus(), o[r - 1].select(), o[r - 1].value = "");
53
+ let a = c();
54
+ t.setAttribute("value", a), e("change", {
55
+ complete: !1,
56
+ originalEvent: n,
57
+ value: a
58
+ }), n.preventDefault();
59
+ } else n.key === "ArrowLeft" && r > 0 ? (o[r - 1].focus(), n.preventDefault()) : n.key === "ArrowRight" && r < o.length - 1 ? (o[r + 1].focus(), n.preventDefault()) : n.key === "Home" ? (o[0].focus(), n.preventDefault()) : n.key === "End" && (o[o.length - 1].focus(), n.preventDefault());
60
+ }
61
+ function f(r) {
62
+ r.preventDefault();
63
+ let i = (r.clipboardData?.getData("text") ?? "").split("").filter((e) => l(e)).slice(0, Number(n.length.value) || 6), o = a();
64
+ i.forEach((e, t) => {
65
+ o[t] && (o[t].value = e);
66
+ });
67
+ let s = c(), u = s.length === o.length && s.split("").every(Boolean);
68
+ t.setAttribute("value", s), e("change", {
69
+ complete: u,
70
+ originalEvent: r,
71
+ value: s
72
+ }), u && e("complete", {
73
+ originalEvent: r,
74
+ value: s
75
+ }), o[Math.min(i.length, o.length - 1)]?.focus();
76
+ }
77
+ s(() => {
78
+ let e = String(n.value.value || ""), t = a();
79
+ e.split("").forEach((e, n) => {
80
+ t[n] && (t[n].value = e);
81
+ });
82
+ });
83
+ let p = i(() => {
84
+ let e = Number(n.length.value) || 6;
85
+ return n.separator.value == null ? -1 : Math.floor(e / 2);
86
+ });
87
+ return o`
88
+ <div class="otp-group" part="group" role="group" :aria-label="${() => n.label.value}">
89
+ ${() => r.value.map((e) => o`
90
+ ${() => p.value > 0 && e === p.value ? o`<span class="separator" aria-hidden="true">${() => n.separator.value || "-"}</span>` : ""}
91
+ <input
92
+ class="cell"
93
+ part="cell"
94
+ :type="${() => n.masked.value ? "password" : "text"}"
95
+ :inputmode="${() => n.type.value === "numeric" ? "numeric" : "text"}"
96
+ maxlength="1"
97
+ :autocomplete="${() => e === 0 ? "one-time-code" : "off"}"
98
+ :aria-label="${() => `Digit ${e + 1} of ${n.length.value}`}"
99
+ :disabled="${() => n.disabled.value || null}"
100
+ :name="${() => n.name.value ? `${n.name.value}[${e}]` : null}"
101
+ @input="${(t) => u(t, e)}"
102
+ @keydown="${(t) => d(t, e)}"
103
+ @paste="${(t) => e === 0 ? f(t) : t.preventDefault()}"
104
+ @focus="${(e) => e.target.select()}" />
105
+ `)}
106
+ </div>
107
+ `;
108
+ },
109
+ styles: [
110
+ t,
111
+ e({}),
112
+ n(".cell"),
113
+ r
114
+ ],
115
+ tag: "bit-otp-input"
116
+ });
117
+ //#endregion
118
+ export { l as OTP_INPUT_TAG };
119
+
120
+ //# sourceMappingURL=otp-input.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"otp-input.js","names":[],"sources":["../src/inputs/otp-input/otp-input.ts"],"sourcesContent":["import { computed, defineComponent, html, onMount, typed } from '@vielzeug/craftit';\n\nimport type { ComponentSize, ThemeColor, VisualVariant } from '../../types';\n\nimport { colorThemeMixin, forcedColorsFocusMixin, sizeVariantMixin } from '../../styles';\nimport styles from './otp-input.css?inline';\n\nexport type BitOtpInputEvents = {\n change: { complete: boolean; originalEvent?: Event; value: string };\n complete: { originalEvent?: Event; value: string };\n};\n\n/** OTP Input props */\nexport type BitOtpInputProps = {\n /** Theme color */\n color?: ThemeColor;\n /** Make inputs disabled */\n disabled?: boolean;\n /** Accessible label */\n label?: string;\n /** Number of input cells */\n length?: number;\n /** Mask input (show dots instead of characters) */\n masked?: boolean;\n /** Form field name */\n name?: string;\n /** Show a separator in the middle (e.g. \"–\") */\n separator?: string;\n /** Component size */\n size?: ComponentSize;\n /** Input type: 'numeric' (digits only) or 'alphanumeric' */\n type?: 'numeric' | 'alphanumeric';\n /** Current value */\n value?: string;\n /** Visual variant */\n variant?: Exclude<VisualVariant, 'text' | 'frost' | 'glass'>;\n};\n\n/**\n * A segmented OTP (One-Time Password) input with N individual cells.\n * Auto-advances focus on input, auto-backs on Backspace, handles paste.\n *\n * @element bit-otp-input\n *\n * @attr {number} length - Number of cells (default: 6)\n * @attr {string} type - 'numeric' (default) | 'alphanumeric'\n * @attr {string} value - Current code value\n * @attr {boolean} disabled - Disable all cells\n * @attr {boolean} masked - Show as password\n * @attr {string} size - 'sm' | 'md' | 'lg'\n * @attr {string} color - Theme color\n * @attr {string} name - Form field name\n * @attr {string} label - Group aria-label\n * @attr {string} separator - Optional separator character shown in the middle\n *\n * @fires change - Emitted whenever a cell changes. detail: { value: string, complete: boolean, originalEvent?: Event }\n * @fires complete - Emitted when all cells are filled. detail: { value: string, originalEvent?: Event }\n *\n * @cssprop --otp-cell-size - Width and height of each cell\n * @cssprop --otp-cell-gap - Gap between cells\n * @cssprop --otp-cell-font-size - Font size inside cells\n * @cssprop --otp-cell-radius - Border radius of cells\n * @cssprop --otp-cell-border-color - Default border color\n * @cssprop --otp-cell-focus-border - Focused border color\n *\n * @example\n * ```html\n * <bit-otp-input length=\"6\" color=\"primary\"></bit-otp-input>\n * ```\n */\nexport const OTP_INPUT_TAG = defineComponent<BitOtpInputProps, BitOtpInputEvents>({\n props: {\n color: typed<BitOtpInputProps['color']>(undefined),\n disabled: typed<boolean>(false),\n label: typed<string>('One-time password'),\n length: typed<number>(6),\n masked: typed<boolean>(false),\n name: typed<string | undefined>(undefined),\n separator: typed<string | undefined>(undefined),\n size: typed<BitOtpInputProps['size']>(undefined),\n type: typed<BitOtpInputProps['type']>('numeric'),\n value: typed<string>(''),\n variant: typed<BitOtpInputProps['variant']>(undefined),\n },\n setup({ emit, host, props }) {\n const cells = computed(() => Array.from({ length: Number(props.length.value) || 6 }, (_, i) => i));\n\n function getInputs(): HTMLInputElement[] {\n return [...(host.shadowRoot?.querySelectorAll<HTMLInputElement>('input.cell') ?? [])];\n }\n function getValue(): string {\n return getInputs()\n .map((i) => i.value)\n .join('');\n }\n function isAllowed(char: string): boolean {\n if (props.type.value === 'numeric') return /^\\d$/.test(char);\n\n return /^[a-z\\d]$/i.test(char);\n }\n function handleInput(e: Event, index: number) {\n const input = e.target as HTMLInputElement;\n let val = input.value;\n\n // Keep only last character if multiple were typed somehow\n if (val.length > 1) val = val.slice(-1);\n\n // Validate character\n if (val && !isAllowed(val)) {\n input.value = '';\n\n return;\n }\n\n input.value = val;\n\n const allInputs = getInputs();\n const full = getValue();\n const complete = full.length === allInputs.length && full.split('').every(Boolean);\n\n host.setAttribute('value', full);\n emit('change', { complete, originalEvent: e, value: full });\n\n if (complete) emit('complete', { originalEvent: e, value: full });\n\n // Auto-advance\n if (val && index < allInputs.length - 1) {\n allInputs[index + 1].focus();\n allInputs[index + 1].select();\n }\n }\n function handleKeydown(e: KeyboardEvent, index: number) {\n const input = e.target as HTMLInputElement;\n const allInputs = getInputs();\n\n if (e.key === 'Backspace') {\n if (input.value) {\n input.value = '';\n } else if (index > 0) {\n allInputs[index - 1].focus();\n allInputs[index - 1].select();\n allInputs[index - 1].value = '';\n }\n\n const full = getValue();\n\n host.setAttribute('value', full);\n emit('change', { complete: false, originalEvent: e, value: full });\n e.preventDefault();\n } else if (e.key === 'ArrowLeft' && index > 0) {\n allInputs[index - 1].focus();\n e.preventDefault();\n } else if (e.key === 'ArrowRight' && index < allInputs.length - 1) {\n allInputs[index + 1].focus();\n e.preventDefault();\n } else if (e.key === 'Home') {\n allInputs[0].focus();\n e.preventDefault();\n } else if (e.key === 'End') {\n allInputs[allInputs.length - 1].focus();\n e.preventDefault();\n }\n }\n function handlePaste(e: ClipboardEvent) {\n e.preventDefault();\n\n const pasted = e.clipboardData?.getData('text') ?? '';\n const chars = pasted\n .split('')\n .filter((c) => isAllowed(c))\n .slice(0, Number(props.length.value) || 6);\n const allInputs = getInputs();\n\n chars.forEach((char, i) => {\n if (allInputs[i]) allInputs[i].value = char;\n });\n\n const full = getValue();\n const complete = full.length === allInputs.length && full.split('').every(Boolean);\n\n host.setAttribute('value', full);\n emit('change', { complete, originalEvent: e, value: full });\n\n if (complete) emit('complete', { originalEvent: e, value: full });\n\n // Focus the cell after last pasted char\n const focusIdx = Math.min(chars.length, allInputs.length - 1);\n\n allInputs[focusIdx]?.focus();\n }\n onMount(() => {\n // Populate cells from value prop on mount\n const initialVal = String(props.value.value || '');\n const allInputs = getInputs();\n\n initialVal.split('').forEach((c, i) => {\n if (allInputs[i]) allInputs[i].value = c;\n });\n });\n\n const separatorIdx = computed(() => {\n const len = Number(props.length.value) || 6;\n\n return props.separator.value != null ? Math.floor(len / 2) : -1;\n });\n\n return html`\n <div class=\"otp-group\" part=\"group\" role=\"group\" :aria-label=\"${() => props.label.value}\">\n ${() =>\n cells.value.map(\n (i) => html`\n ${() =>\n separatorIdx.value > 0 && i === separatorIdx.value\n ? html`<span class=\"separator\" aria-hidden=\"true\">${() => props.separator.value || '-'}</span>`\n : ''}\n <input\n class=\"cell\"\n part=\"cell\"\n :type=\"${() => (props.masked.value ? 'password' : 'text')}\"\n :inputmode=\"${() => (props.type.value === 'numeric' ? 'numeric' : 'text')}\"\n maxlength=\"1\"\n :autocomplete=\"${() => (i === 0 ? 'one-time-code' : 'off')}\"\n :aria-label=\"${() => `Digit ${i + 1} of ${props.length.value}`}\"\n :disabled=\"${() => props.disabled.value || null}\"\n :name=\"${() => (props.name.value ? `${props.name.value}[${i}]` : null)}\"\n @input=\"${(e: Event) => handleInput(e, i)}\"\n @keydown=\"${(e: KeyboardEvent) => handleKeydown(e, i)}\"\n @paste=\"${(e: ClipboardEvent) => (i === 0 ? handlePaste(e) : e.preventDefault())}\"\n @focus=\"${(e: FocusEvent) => (e.target as HTMLInputElement).select()}\" />\n `,\n )}\n </div>\n `;\n },\n styles: [colorThemeMixin, sizeVariantMixin({}), forcedColorsFocusMixin('.cell'), styles],\n tag: 'bit-otp-input',\n});\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ var e=`@layer buildit.base{:host{--_radius:var(--dialog-radius,var(--rounded-lg));--_padding:var(--dialog-padding,var(--size-4));--_gap:var(--dialog-gap,var(--size-4));--_max-width:var(--dialog-max-width,32rem);--_elevation:var(--shadow-xl);--_backdrop-filter:none;--_backdrop-bg:var(--dialog-backdrop,color-mix(in srgb, var(--color-canvas) 40%, transparent));--_panel-bg:var(--dialog-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(--dialog-panel-blur,var(--blur-md));--_panel-border-color:var(--dialog-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)));display:contents}dialog{all:unset;box-sizing:border-box;pointer-events:none;background:0 0;border:none;justify-content:center;align-items:center;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}dialog:not([open]){display:none}dialog[open]{pointer-events:auto}dialog::-ms-backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:var(--_motion-transition,opacity var(--transition-normal) ease, overlay var(--transition-normal) ease allow-discrete, display var(--transition-normal) ease allow-discrete)}@starting-style{dialog::-ms-backdrop{opacity:0}}dialog::backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:var(--_motion-transition,opacity var(--transition-normal) ease, overlay var(--transition-normal) ease allow-discrete, display var(--transition-normal) ease allow-discrete)}@starting-style{dialog::backdrop{opacity:0}}dialog.closing::-ms-backdrop{opacity:0}dialog.closing::backdrop{opacity:0}.panel{box-sizing:border-box;width:var(--_max-width);max-width:calc(100vw - var(--size-8));max-height:calc(100dvh - var(--size-8));background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);border-radius:var(--_radius);box-shadow:var(--dialog-shadow,var(--_elevation));opacity:1;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transition:var(--_motion-transition,opacity var(--transition-normal) cubic-bezier(.16, 1, .3, 1), transform var(--transition-normal) cubic-bezier(.16, 1, .3, 1));flex-direction:column;display:flex;position:relative;overflow:hidden;transform:scale(1)translateY(0)}@starting-style{.panel{opacity:0;transform:scale(.96) translateY(var(--size-2))}}dialog.closing .panel{opacity:0;transform:scale(.96) translateY(var(--size-2))}.panel[data-size=sm]{--_max-width:var(--dialog-max-width,22rem)}.panel[data-size=md]{--_max-width:var(--dialog-max-width,32rem)}.panel[data-size=lg]{--_max-width:var(--dialog-max-width,48rem)}.panel[data-size=xl]{--_max-width:var(--dialog-max-width,64rem)}.panel[data-size=full]{width:calc(100vw - var(--size-8));max-width:calc(100vw - var(--size-8));max-height:calc(100dvh - var(--size-8))}.header{gap:var(--size-2);padding:var(--_padding);flex-shrink:0;align-items:center;padding-bottom:0;display:flex}.header[hidden]{display:none}.title{font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-contrast-900);flex:1}.close{width:var(--size-8);min-width:var(--_touch-target);height:var(--size-8);min-height:var(--_touch-target);color:var(--color-contrast-500);cursor:pointer;border-radius:var(--rounded-md);transition:var(--_motion-transition,background var(--transition-fast), color var(--transition-fast));background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.close:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:auto}.close:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.close:hover{color:var(--color-contrast-900);background:var(--color-contrast-200)}.close:focus-visible{outline:var(--border-2) solid var(--color-focus);outline-offset:var(--border-2)}.close[hidden]{display:none}.body{padding:var(--_padding);overscroll-behavior:contain;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-contrast-700);flex:1;overflow-y:auto}.footer{gap:var(--_gap);padding:var(--_padding);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;padding-top:0;display:flex}.footer[hidden]{display:none}.header:not([hidden])+.body{padding-top:var(--size-4)}.body+.footer:not([hidden]){padding-top:var(--size-4);border-top:var(--border) solid var(--color-contrast-100)}@media (width<=640px){.panel,.panel[data-size=sm],.panel[data-size=md],.panel[data-size=lg],.panel[data-size=xl]{width:calc(100vw - var(--size-4));max-width:calc(100vw - var(--size-4));max-height:calc(100dvh - var(--size-4))}.header,.body,.footer{padding-inline:var(--size-3)}}}@layer buildit.config{:host([backdrop=blur]){--_backdrop-filter:blur(var(--blur-xs))}:host([backdrop=transparent]){--_backdrop-bg:transparent}:host([elevation=none]){--_elevation:var(--shadow-none)}:host([elevation=sm]){--_elevation:var(--shadow-sm)}:host([elevation=md]){--_elevation:var(--shadow-md)}:host([elevation=lg]){--_elevation:var(--shadow-lg)}:host([elevation=xl]){--_elevation:var(--shadow-xl)}:host([elevation="2xl"]){--_elevation:var(--shadow-2xl)}:host([padding=none]){--_padding:var(--size-0)}:host([padding=sm]){--_padding:var(--size-3)}:host([padding=md]){--_padding:var(--size-4)}:host([padding=lg]){--_padding:var(--size-6)}:host([padding=xl]){--_padding:var(--size-8)}}`;exports.default=e;
2
+ //# sourceMappingURL=dialog.css?inline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.css?inline.cjs","names":[],"sources":["../../../src/overlay/dialog/dialog.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_radius: var(--dialog-radius, var(--rounded-lg));\n --_padding: var(--dialog-padding, var(--size-4));\n --_gap: var(--dialog-gap, var(--size-4));\n --_max-width: var(--dialog-max-width, 32rem);\n --_elevation: var(--shadow-xl);\n --_backdrop-filter: none;\n --_backdrop-bg: var(--dialog-backdrop, color-mix(in srgb, var(--color-canvas) 40%, transparent));\n --_panel-bg: var(\n --dialog-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(--dialog-panel-blur, var(--blur-md));\n --_panel-border-color: var(\n --dialog-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\n display: contents;\n }\n\n /* =====================\n Native <dialog> resets\n ===================== */\n\n dialog {\n all: unset;\n position: fixed;\n inset: 0;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n padding: 0;\n margin: 0;\n overflow: hidden;\n pointer-events: none;\n background: transparent;\n border: none;\n }\n\n /* all:unset removes the UA stylesheet's dialog:not([open]){display:none} — restore it */\n dialog:not([open]) {\n display: none;\n }\n\n dialog[open] {\n pointer-events: auto;\n }\n\n dialog::backdrop {\n background: var(--_backdrop-bg);\n opacity: 1;\n backdrop-filter: var(--_backdrop-filter);\n transition: var(\n --_motion-transition,\n opacity var(--transition-normal) ease,\n overlay var(--transition-normal) ease allow-discrete,\n display var(--transition-normal) ease allow-discrete\n );\n\n @starting-style {\n opacity: 0;\n }\n }\n\n dialog.closing::backdrop {\n opacity: 0;\n }\n\n /* =====================\n Panel (the visible dialog box)\n ===================== */\n\n .panel {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: var(--_max-width);\n max-width: calc(100vw - var(--size-8));\n max-height: calc(100dvh - var(--size-8));\n overflow: hidden;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n border-radius: var(--_radius);\n box-shadow: var(--dialog-shadow, var(--_elevation));\n opacity: 1;\n backdrop-filter: blur(var(--_panel-blur));\n transform: scale(1) translateY(0);\n transition: var(\n --_motion-transition,\n opacity var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1),\n transform var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1)\n );\n\n @starting-style {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n }\n\n dialog.closing .panel {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n\n /* =====================\n Sizes\n ===================== */\n\n .panel[data-size='sm'] {\n --_max-width: var(--dialog-max-width, 22rem);\n }\n\n .panel[data-size='md'] {\n --_max-width: var(--dialog-max-width, 32rem);\n }\n\n .panel[data-size='lg'] {\n --_max-width: var(--dialog-max-width, 48rem);\n }\n\n .panel[data-size='xl'] {\n --_max-width: var(--dialog-max-width, 64rem);\n }\n\n .panel[data-size='full'] {\n width: calc(100vw - var(--size-8));\n max-width: calc(100vw - var(--size-8));\n max-height: calc(100dvh - var(--size-8));\n }\n\n /* =====================\n Header\n ===================== */\n\n .header {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-2);\n align-items: center;\n padding: var(--_padding);\n padding-bottom: 0;\n }\n\n .header[hidden] {\n display: none;\n }\n\n .title {\n flex: 1;\n font-size: var(--text-lg);\n font-weight: var(--font-semibold);\n line-height: var(--leading-tight);\n color: var(--color-contrast-900);\n }\n\n .close {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n min-width: var(--_touch-target);\n height: var(--size-8);\n min-height: var(--_touch-target);\n padding: 0;\n margin-inline-start: auto;\n color: var(--color-contrast-500);\n cursor: pointer;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition: var(--_motion-transition, background var(--transition-fast), color var(--transition-fast));\n }\n\n .close:hover {\n color: var(--color-contrast-900);\n background: var(--color-contrast-200);\n }\n\n .close:focus-visible {\n outline: var(--border-2) solid var(--color-focus);\n outline-offset: var(--border-2);\n }\n\n .close[hidden] {\n display: none;\n }\n\n /* =====================\n Body\n ===================== */\n\n .body {\n flex: 1;\n padding: var(--_padding);\n overflow-y: auto;\n overscroll-behavior: contain;\n font-size: var(--text-sm);\n line-height: var(--leading-relaxed);\n color: var(--color-contrast-700);\n }\n\n /* =====================\n Footer\n ===================== */\n\n .footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: var(--_gap);\n align-items: center;\n justify-content: flex-end;\n padding: var(--_padding);\n padding-top: 0;\n }\n\n .footer[hidden] {\n display: none;\n }\n\n /* =====================\n Dividers when header/footer present\n ===================== */\n\n .header:not([hidden]) + .body {\n padding-top: var(--size-4);\n }\n\n .body + .footer:not([hidden]) {\n padding-top: var(--size-4);\n border-top: var(--border) solid var(--color-contrast-100);\n }\n\n @media (width <= 640px) {\n .panel,\n .panel[data-size='sm'],\n .panel[data-size='md'],\n .panel[data-size='lg'],\n .panel[data-size='xl'] {\n width: calc(100vw - var(--size-4));\n max-width: calc(100vw - var(--size-4));\n max-height: calc(100dvh - var(--size-4));\n }\n\n .header,\n .body,\n .footer {\n padding-inline: var(--size-3);\n }\n }\n}\n\n@layer buildit.config {\n :host([backdrop='blur']) {\n --_backdrop-filter: blur(var(--blur-xs));\n }\n\n :host([backdrop='transparent']) {\n --_backdrop-bg: transparent;\n }\n\n /* Panel elevation / shadow scale */\n :host([elevation='none']) {\n --_elevation: var(--shadow-none);\n }\n\n :host([elevation='sm']) {\n --_elevation: var(--shadow-sm);\n }\n\n :host([elevation='md']) {\n --_elevation: var(--shadow-md);\n }\n\n :host([elevation='lg']) {\n --_elevation: var(--shadow-lg);\n }\n\n :host([elevation='xl']) {\n --_elevation: var(--shadow-xl);\n }\n\n :host([elevation='2xl']) {\n --_elevation: var(--shadow-2xl);\n }\n\n /* Padding scale */\n :host([padding='none']) {\n --_padding: var(--size-0);\n }\n\n :host([padding='sm']) {\n --_padding: var(--size-3);\n }\n\n :host([padding='md']) {\n --_padding: var(--size-4);\n }\n\n :host([padding='lg']) {\n --_padding: var(--size-6);\n }\n\n :host([padding='xl']) {\n --_padding: var(--size-8);\n }\n}\n"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ //#region src/overlay/dialog/dialog.css?inline
2
+ var e = "@layer buildit.base{:host{--_radius:var(--dialog-radius,var(--rounded-lg));--_padding:var(--dialog-padding,var(--size-4));--_gap:var(--dialog-gap,var(--size-4));--_max-width:var(--dialog-max-width,32rem);--_elevation:var(--shadow-xl);--_backdrop-filter:none;--_backdrop-bg:var(--dialog-backdrop,color-mix(in srgb, var(--color-canvas) 40%, transparent));--_panel-bg:var(--dialog-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(--dialog-panel-blur,var(--blur-md));--_panel-border-color:var(--dialog-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)));display:contents}dialog{all:unset;box-sizing:border-box;pointer-events:none;background:0 0;border:none;justify-content:center;align-items:center;width:100%;max-width:100%;height:100%;max-height:100%;margin:0;padding:0;display:flex;position:fixed;inset:0;overflow:hidden}dialog:not([open]){display:none}dialog[open]{pointer-events:auto}dialog::-ms-backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:var(--_motion-transition,opacity var(--transition-normal) ease, overlay var(--transition-normal) ease allow-discrete, display var(--transition-normal) ease allow-discrete)}@starting-style{dialog::-ms-backdrop{opacity:0}}dialog::backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:var(--_motion-transition,opacity var(--transition-normal) ease, overlay var(--transition-normal) ease allow-discrete, display var(--transition-normal) ease allow-discrete)}@starting-style{dialog::backdrop{opacity:0}}dialog.closing::-ms-backdrop{opacity:0}dialog.closing::backdrop{opacity:0}.panel{box-sizing:border-box;width:var(--_max-width);max-width:calc(100vw - var(--size-8));max-height:calc(100dvh - var(--size-8));background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);border-radius:var(--_radius);box-shadow:var(--dialog-shadow,var(--_elevation));opacity:1;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transition:var(--_motion-transition,opacity var(--transition-normal) cubic-bezier(.16, 1, .3, 1), transform var(--transition-normal) cubic-bezier(.16, 1, .3, 1));flex-direction:column;display:flex;position:relative;overflow:hidden;transform:scale(1)translateY(0)}@starting-style{.panel{opacity:0;transform:scale(.96) translateY(var(--size-2))}}dialog.closing .panel{opacity:0;transform:scale(.96) translateY(var(--size-2))}.panel[data-size=sm]{--_max-width:var(--dialog-max-width,22rem)}.panel[data-size=md]{--_max-width:var(--dialog-max-width,32rem)}.panel[data-size=lg]{--_max-width:var(--dialog-max-width,48rem)}.panel[data-size=xl]{--_max-width:var(--dialog-max-width,64rem)}.panel[data-size=full]{width:calc(100vw - var(--size-8));max-width:calc(100vw - var(--size-8));max-height:calc(100dvh - var(--size-8))}.header{gap:var(--size-2);padding:var(--_padding);flex-shrink:0;align-items:center;padding-bottom:0;display:flex}.header[hidden]{display:none}.title{font-size:var(--text-lg);font-weight:var(--font-semibold);line-height:var(--leading-tight);color:var(--color-contrast-900);flex:1}.close{width:var(--size-8);min-width:var(--_touch-target);height:var(--size-8);min-height:var(--_touch-target);color:var(--color-contrast-500);cursor:pointer;border-radius:var(--rounded-md);transition:var(--_motion-transition,background var(--transition-fast), color var(--transition-fast));background:0 0;border:none;flex-shrink:0;justify-content:center;align-items:center;padding:0;display:inline-flex}.close:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:auto}.close:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.close:hover{color:var(--color-contrast-900);background:var(--color-contrast-200)}.close:focus-visible{outline:var(--border-2) solid var(--color-focus);outline-offset:var(--border-2)}.close[hidden]{display:none}.body{padding:var(--_padding);overscroll-behavior:contain;font-size:var(--text-sm);line-height:var(--leading-relaxed);color:var(--color-contrast-700);flex:1;overflow-y:auto}.footer{gap:var(--_gap);padding:var(--_padding);flex-wrap:wrap;flex-shrink:0;justify-content:flex-end;align-items:center;padding-top:0;display:flex}.footer[hidden]{display:none}.header:not([hidden])+.body{padding-top:var(--size-4)}.body+.footer:not([hidden]){padding-top:var(--size-4);border-top:var(--border) solid var(--color-contrast-100)}@media (width<=640px){.panel,.panel[data-size=sm],.panel[data-size=md],.panel[data-size=lg],.panel[data-size=xl]{width:calc(100vw - var(--size-4));max-width:calc(100vw - var(--size-4));max-height:calc(100dvh - var(--size-4))}.header,.body,.footer{padding-inline:var(--size-3)}}}@layer buildit.config{:host([backdrop=blur]){--_backdrop-filter:blur(var(--blur-xs))}:host([backdrop=transparent]){--_backdrop-bg:transparent}:host([elevation=none]){--_elevation:var(--shadow-none)}:host([elevation=sm]){--_elevation:var(--shadow-sm)}:host([elevation=md]){--_elevation:var(--shadow-md)}:host([elevation=lg]){--_elevation:var(--shadow-lg)}:host([elevation=xl]){--_elevation:var(--shadow-xl)}:host([elevation=\"2xl\"]){--_elevation:var(--shadow-2xl)}:host([padding=none]){--_padding:var(--size-0)}:host([padding=sm]){--_padding:var(--size-3)}:host([padding=md]){--_padding:var(--size-4)}:host([padding=lg]){--_padding:var(--size-6)}:host([padding=xl]){--_padding:var(--size-8)}}";
3
+ //#endregion
4
+ export { e as default };
5
+
6
+ //# sourceMappingURL=dialog.css?inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.css?inline.js","names":[],"sources":["../../../src/overlay/dialog/dialog.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_radius: var(--dialog-radius, var(--rounded-lg));\n --_padding: var(--dialog-padding, var(--size-4));\n --_gap: var(--dialog-gap, var(--size-4));\n --_max-width: var(--dialog-max-width, 32rem);\n --_elevation: var(--shadow-xl);\n --_backdrop-filter: none;\n --_backdrop-bg: var(--dialog-backdrop, color-mix(in srgb, var(--color-canvas) 40%, transparent));\n --_panel-bg: var(\n --dialog-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(--dialog-panel-blur, var(--blur-md));\n --_panel-border-color: var(\n --dialog-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\n display: contents;\n }\n\n /* =====================\n Native <dialog> resets\n ===================== */\n\n dialog {\n all: unset;\n position: fixed;\n inset: 0;\n box-sizing: border-box;\n display: flex;\n align-items: center;\n justify-content: center;\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n padding: 0;\n margin: 0;\n overflow: hidden;\n pointer-events: none;\n background: transparent;\n border: none;\n }\n\n /* all:unset removes the UA stylesheet's dialog:not([open]){display:none} — restore it */\n dialog:not([open]) {\n display: none;\n }\n\n dialog[open] {\n pointer-events: auto;\n }\n\n dialog::backdrop {\n background: var(--_backdrop-bg);\n opacity: 1;\n backdrop-filter: var(--_backdrop-filter);\n transition: var(\n --_motion-transition,\n opacity var(--transition-normal) ease,\n overlay var(--transition-normal) ease allow-discrete,\n display var(--transition-normal) ease allow-discrete\n );\n\n @starting-style {\n opacity: 0;\n }\n }\n\n dialog.closing::backdrop {\n opacity: 0;\n }\n\n /* =====================\n Panel (the visible dialog box)\n ===================== */\n\n .panel {\n position: relative;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n width: var(--_max-width);\n max-width: calc(100vw - var(--size-8));\n max-height: calc(100dvh - var(--size-8));\n overflow: hidden;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n border-radius: var(--_radius);\n box-shadow: var(--dialog-shadow, var(--_elevation));\n opacity: 1;\n backdrop-filter: blur(var(--_panel-blur));\n transform: scale(1) translateY(0);\n transition: var(\n --_motion-transition,\n opacity var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1),\n transform var(--transition-normal) cubic-bezier(0.16, 1, 0.3, 1)\n );\n\n @starting-style {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n }\n\n dialog.closing .panel {\n opacity: 0;\n transform: scale(0.96) translateY(var(--size-2));\n }\n\n /* =====================\n Sizes\n ===================== */\n\n .panel[data-size='sm'] {\n --_max-width: var(--dialog-max-width, 22rem);\n }\n\n .panel[data-size='md'] {\n --_max-width: var(--dialog-max-width, 32rem);\n }\n\n .panel[data-size='lg'] {\n --_max-width: var(--dialog-max-width, 48rem);\n }\n\n .panel[data-size='xl'] {\n --_max-width: var(--dialog-max-width, 64rem);\n }\n\n .panel[data-size='full'] {\n width: calc(100vw - var(--size-8));\n max-width: calc(100vw - var(--size-8));\n max-height: calc(100dvh - var(--size-8));\n }\n\n /* =====================\n Header\n ===================== */\n\n .header {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-2);\n align-items: center;\n padding: var(--_padding);\n padding-bottom: 0;\n }\n\n .header[hidden] {\n display: none;\n }\n\n .title {\n flex: 1;\n font-size: var(--text-lg);\n font-weight: var(--font-semibold);\n line-height: var(--leading-tight);\n color: var(--color-contrast-900);\n }\n\n .close {\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n min-width: var(--_touch-target);\n height: var(--size-8);\n min-height: var(--_touch-target);\n padding: 0;\n margin-inline-start: auto;\n color: var(--color-contrast-500);\n cursor: pointer;\n background: transparent;\n border: none;\n border-radius: var(--rounded-md);\n transition: var(--_motion-transition, background var(--transition-fast), color var(--transition-fast));\n }\n\n .close:hover {\n color: var(--color-contrast-900);\n background: var(--color-contrast-200);\n }\n\n .close:focus-visible {\n outline: var(--border-2) solid var(--color-focus);\n outline-offset: var(--border-2);\n }\n\n .close[hidden] {\n display: none;\n }\n\n /* =====================\n Body\n ===================== */\n\n .body {\n flex: 1;\n padding: var(--_padding);\n overflow-y: auto;\n overscroll-behavior: contain;\n font-size: var(--text-sm);\n line-height: var(--leading-relaxed);\n color: var(--color-contrast-700);\n }\n\n /* =====================\n Footer\n ===================== */\n\n .footer {\n display: flex;\n flex-shrink: 0;\n flex-wrap: wrap;\n gap: var(--_gap);\n align-items: center;\n justify-content: flex-end;\n padding: var(--_padding);\n padding-top: 0;\n }\n\n .footer[hidden] {\n display: none;\n }\n\n /* =====================\n Dividers when header/footer present\n ===================== */\n\n .header:not([hidden]) + .body {\n padding-top: var(--size-4);\n }\n\n .body + .footer:not([hidden]) {\n padding-top: var(--size-4);\n border-top: var(--border) solid var(--color-contrast-100);\n }\n\n @media (width <= 640px) {\n .panel,\n .panel[data-size='sm'],\n .panel[data-size='md'],\n .panel[data-size='lg'],\n .panel[data-size='xl'] {\n width: calc(100vw - var(--size-4));\n max-width: calc(100vw - var(--size-4));\n max-height: calc(100dvh - var(--size-4));\n }\n\n .header,\n .body,\n .footer {\n padding-inline: var(--size-3);\n }\n }\n}\n\n@layer buildit.config {\n :host([backdrop='blur']) {\n --_backdrop-filter: blur(var(--blur-xs));\n }\n\n :host([backdrop='transparent']) {\n --_backdrop-bg: transparent;\n }\n\n /* Panel elevation / shadow scale */\n :host([elevation='none']) {\n --_elevation: var(--shadow-none);\n }\n\n :host([elevation='sm']) {\n --_elevation: var(--shadow-sm);\n }\n\n :host([elevation='md']) {\n --_elevation: var(--shadow-md);\n }\n\n :host([elevation='lg']) {\n --_elevation: var(--shadow-lg);\n }\n\n :host([elevation='xl']) {\n --_elevation: var(--shadow-xl);\n }\n\n :host([elevation='2xl']) {\n --_elevation: var(--shadow-2xl);\n }\n\n /* Padding scale */\n :host([padding='none']) {\n --_padding: var(--size-0);\n }\n\n :host([padding='sm']) {\n --_padding: var(--size-3);\n }\n\n :host([padding='md']) {\n --_padding: var(--size-4);\n }\n\n :host([padding='lg']) {\n --_padding: var(--size-6);\n }\n\n :host([padding='xl']) {\n --_padding: var(--size-8);\n }\n}\n"],"mappings":""}
@@ -0,0 +1,98 @@
1
+ import type { PaddingSize, RoundedSize } from '../../types';
2
+ type DialogSize = 'sm' | 'md' | 'lg' | 'xl' | 'full';
3
+ type DialogBackdrop = 'opaque' | 'blur' | 'transparent';
4
+ type DialogElevation = 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
5
+ /** Dialog component properties */
6
+ export type BitDialogEvents = {
7
+ close: undefined;
8
+ open: undefined;
9
+ };
10
+ export type BitDialogProps = {
11
+ /** Backdrop style — 'blur' (default): dark overlay + blur; 'opaque': dark overlay only; 'transparent': no overlay */
12
+ backdrop?: DialogBackdrop;
13
+ /** Show a close (×) button in the header */
14
+ dismissible?: boolean;
15
+ /** Panel shadow elevation — defaults to 'xl' */
16
+ elevation?: DialogElevation;
17
+ /**
18
+ * CSS selector for the element inside the dialog that should receive focus when the dialog opens.
19
+ * Defaults to the first focusable element (browser default).
20
+ * @example 'input[name="email"]' | '#confirm-btn'
21
+ */
22
+ 'initial-focus'?: string;
23
+ /** Dialog title shown in the header (used as aria-label when no header slot) */
24
+ label?: string;
25
+ /** Controls the open state of the dialog */
26
+ open?: boolean;
27
+ /** Internal padding size */
28
+ padding?: PaddingSize;
29
+ /** When true, clicking the backdrop does not close the dialog */
30
+ persistent?: boolean;
31
+ /**
32
+ * When true (default), focus returns to the element that triggered the dialog after it closes.
33
+ * Set to false if you want to manage focus manually.
34
+ */
35
+ 'return-focus'?: boolean;
36
+ /** Border radius */
37
+ rounded?: RoundedSize | '';
38
+ /** Dialog size */
39
+ size?: DialogSize;
40
+ };
41
+ /**
42
+ * A modal dialog that traps focus, blocks page interaction, and dismisses on
43
+ * `Escape`. Built on the native `<dialog>` element for correct top-layer stacking
44
+ * and browser-managed accessibility.
45
+ *
46
+ * @element bit-dialog
47
+ *
48
+ * @attr {boolean} open - Open/close the dialog
49
+ * @attr {string} label - Dialog title (also used as aria-label)
50
+ * @attr {string} size - Size: 'sm' | 'md' | 'lg' | 'xl' | 'full'
51
+ * @attr {boolean} dismissible - Show a close (×) button in the header
52
+ * @attr {boolean} persistent - Prevent backdrop-click from closing
53
+ * @attr {string} rounded - Border radius size
54
+ * @attr {string} backdrop - Backdrop style: 'opaque' (default) | 'blur' | 'transparent'
55
+ * @attr {string} elevation - Panel shadow: 'none' | 'sm' | 'md' | 'lg' | 'xl' | '2xl'
56
+ * @attr {string} padding - Padding: 'none' | 'sm' | 'md' | 'lg' | 'xl'
57
+ *
58
+ * @fires open - Fired when the dialog opens
59
+ * @fires close - Fired when the dialog closes (any trigger)
60
+ *
61
+ * @slot - Dialog body content
62
+ * @slot header - Custom header content (replaces the default title + close layout)
63
+ * @slot footer - Action buttons or additional content at the bottom
64
+ *
65
+ * @cssprop --dialog-bg - Panel background color
66
+ * @cssprop --dialog-border-color - Panel border color
67
+ * @cssprop --dialog-radius - Panel border radius
68
+ * @cssprop --dialog-shadow - Panel drop shadow
69
+ * @cssprop --dialog-padding - Padding for header, body, and footer sections
70
+ * @cssprop --dialog-gap - Gap between footer action buttons
71
+ * @cssprop --dialog-backdrop - Backdrop overlay color
72
+ * @cssprop --dialog-max-width - Maximum panel width (overridden by size prop)
73
+ *
74
+ * @example
75
+ * ```html
76
+ * <bit-dialog label="Confirm action" dismissible>
77
+ * <p>Are you sure you want to delete this item?</p>
78
+ * <div slot="footer">
79
+ * <bit-button variant="ghost" id="cancel">Cancel</bit-button>
80
+ * <bit-button color="error" id="confirm">Delete</bit-button>
81
+ * </div>
82
+ * </bit-dialog>
83
+ *
84
+ * <script type="module">
85
+ * import '@vielzeug/buildit/dialog';
86
+ * const dialog = document.querySelector('bit-dialog');
87
+ * document.querySelector('#open-btn').addEventListener('click', () => {
88
+ * dialog.setAttribute('open', '');
89
+ * });
90
+ * document.querySelector('#cancel').addEventListener('click', () => {
91
+ * dialog.removeAttribute('open');
92
+ * });
93
+ * </script>
94
+ * ```
95
+ */
96
+ export declare const DIALOG_TAG: string;
97
+ export {};
98
+ //# sourceMappingURL=dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dialog.d.ts","sourceRoot":"","sources":["../../../src/overlay/dialog/dialog.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAS5D,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AACrD,KAAK,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;AACxD,KAAK,eAAe,GAAG,MAAM,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,KAAK,CAAC;AAElE,kCAAkC;AAElC,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE,SAAS,CAAC;IACjB,IAAI,EAAE,SAAS,CAAC;CACjB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,qHAAqH;IACrH,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,4CAA4C;IAC5C,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,gDAAgD;IAChD,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,gFAAgF;IAChF,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4CAA4C;IAC5C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4BAA4B;IAC5B,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,iEAAiE;IACjE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,oBAAoB;IACpB,OAAO,CAAC,EAAE,WAAW,GAAG,EAAE,CAAC;IAC3B,kBAAkB;IAClB,IAAI,CAAC,EAAE,UAAU,CAAC;CACnB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAsDG;AACH,eAAO,MAAM,UAAU,QAmJrB,CAAC"}
@@ -0,0 +1,2 @@
1
+ var e=`@layer buildit.base{:host{--_backdrop-bg:var(--drawer-backdrop,color-mix(in srgb, var(--color-canvas) 40%, transparent));--_backdrop-filter:none;--_panel-bg:var(--drawer-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(--drawer-panel-blur,var(--blur-md));--_panel-shadow:var(--drawer-shadow,var(--shadow-xl));--_panel-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-bleed:var(--size-8);display:contents}dialog{all:unset;box-sizing:border-box;pointer-events:none;width:100%;max-width:100%;height:100%;max-height:100%;transition:display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete;display:flex;position:fixed;inset:0}dialog:not([open]){display:none}dialog[open]{pointer-events:auto;display:flex}dialog::-ms-backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete, opacity var(--transition-normal), backdrop-filter var(--transition-normal)}dialog::backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete, opacity var(--transition-normal), backdrop-filter var(--transition-normal)}@starting-style{dialog[open]::-ms-backdrop{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}dialog[open]::backdrop{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}}.panel{box-sizing:border-box;background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);box-shadow:var(--_panel-shadow);opacity:1;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transition:opacity var(--transition-normal), transform var(--transition-normal), display var(--transition-normal) allow-discrete;flex-direction:column;display:flex;position:absolute;overflow:hidden;transform:translate(0)}@starting-style{dialog[open] .panel{opacity:0;transform:var(--_panel-exit-transform,translate3d(0, 0, 0))}}:host([placement=left]) .panel{--_panel-exit-transform:translateX(calc(-100% - var(--_panel-bleed)));width:calc(var(--drawer-size,20rem) + var(--_panel-bleed));max-width:calc(100dvw + var(--_panel-bleed));border-top:none;border-bottom:none;top:0;bottom:0}:host([placement=left]) .panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:calc(var(--_panel-bleed) * -1);padding-left:var(--_panel-bleed);border-left:none;left:0}:host([placement=left]) .panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:calc(var(--_panel-bleed) * -1);padding-right:var(--_panel-bleed);border-right:none;right:0}:host(:not([placement])) .panel{--_panel-exit-transform:translateX(calc(100% + var(--_panel-bleed)));width:calc(var(--drawer-size,20rem) + var(--_panel-bleed));max-width:calc(100dvw + var(--_panel-bleed));border-top:none;border-bottom:none;top:0;bottom:0}:host(:not([placement])) .panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:calc(var(--_panel-bleed) * -1);padding-right:var(--_panel-bleed);border-right:none;right:0}:host(:not([placement])) .panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:calc(var(--_panel-bleed) * -1);padding-left:var(--_panel-bleed);border-left:none;left:0}:host([placement=right]) .panel{--_panel-exit-transform:translateX(calc(100% + var(--_panel-bleed)));width:calc(var(--drawer-size,20rem) + var(--_panel-bleed));max-width:calc(100dvw + var(--_panel-bleed));border-top:none;border-bottom:none;top:0;bottom:0}:host([placement=right]) .panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:calc(var(--_panel-bleed) * -1);padding-right:var(--_panel-bleed);border-right:none;right:0}:host([placement=right]) .panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:calc(var(--_panel-bleed) * -1);padding-left:var(--_panel-bleed);border-left:none;left:0}:host([placement=top]) .panel{--_panel-exit-transform:translateY(calc(-100% - var(--_panel-bleed)));height:calc(var(--drawer-size,16rem) + var(--_panel-bleed));max-height:calc(100dvh + var(--_panel-bleed));margin-top:calc(var(--_panel-bleed) * -1);padding-top:var(--_panel-bleed);border-top:none;border-left:none;border-right:none;top:0;left:0;right:0}:host([placement=bottom]) .panel{--_panel-exit-transform:translateY(calc(100% + var(--_panel-bleed)));height:calc(var(--drawer-size,16rem) + var(--_panel-bleed));max-height:calc(100dvh + var(--_panel-bleed));margin-bottom:calc(var(--_panel-bleed) * -1);padding-bottom:var(--_panel-bleed);border-bottom:none;border-left:none;border-right:none;bottom:0;left:0;right:0}:host(:dir(rtl)[placement=left]) .panel{--_panel-exit-transform:translateX(calc(100% + var(--_panel-bleed)))}:host(:dir(rtl)[placement=right]) .panel,:host(:dir(rtl):not([placement])) .panel{--_panel-exit-transform:translateX(calc(-100% - var(--_panel-bleed)))}:host([size=sm]){--drawer-size:14rem}:host([size=lg]){--drawer-size:32rem}:host([size=full]){--drawer-size:100%}:host([size=full]) .panel{width:calc(100% + var(--_panel-bleed));max-width:none;height:calc(100% + var(--_panel-bleed));border:none;max-height:none}.header{gap:var(--size-2);padding:var(--size-4);border-bottom:var(--border) solid var(--color-contrast-200);flex-shrink:0;align-items:center;display:flex}.header-title{text-overflow:ellipsis;min-width:0;font-size:var(--text-lg);font-weight:var(--font-semibold);white-space:nowrap;flex:1;overflow:hidden}.body{padding:var(--size-4);flex:1;overflow-y:auto}.footer{gap:var(--size-2);padding:var(--size-4);border-top:var(--border) solid var(--color-contrast-200);flex-shrink:0;justify-content:flex-end;display:flex}.header[hidden],.footer[hidden],.close-btn[hidden]{display:none}.close-btn{all:unset;box-sizing:border-box;width:var(--size-8);height:var(--size-8);color:var(--color-contrast-500);cursor:pointer;border-radius:var(--rounded-sm);transition:var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.close-btn:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:auto}.close-btn:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.close-btn:hover{color:var(--color-contrast-800);background:var(--color-contrast-200)}.close-btn:focus-visible{outline:var(--focus-ring)}@media (width<=640px){:host([placement=left]) .panel,:host(:not([placement])) .panel,:host([placement=right]) .panel{width:calc(min(var(--drawer-size,20rem), calc(100vw - var(--size-2))) + var(--_panel-bleed));max-width:calc(100vw - var(--size-2) + var(--_panel-bleed))}:host([placement=top]) .panel,:host([placement=bottom]) .panel{height:calc(min(var(--drawer-size,16rem), calc(100dvh - var(--size-2))) + var(--_panel-bleed));max-height:calc(100dvh - var(--size-2) + var(--_panel-bleed))}.header,.body,.footer{padding:var(--size-3)}}}@layer buildit.config{:host([backdrop=blur]){--_backdrop-filter:blur(var(--blur-xs))}:host([backdrop=transparent]){--_backdrop-bg:transparent}}`;exports.default=e;
2
+ //# sourceMappingURL=drawer.css?inline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.css?inline.cjs","names":[],"sources":["../../../src/overlay/drawer/drawer.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_backdrop-bg: var(--drawer-backdrop, color-mix(in srgb, var(--color-canvas) 40%, transparent));\n --_backdrop-filter: none;\n --_panel-bg: var(\n --drawer-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(--drawer-panel-blur, var(--blur-md));\n --_panel-shadow: var(--drawer-shadow, var(--shadow-xl));\n --_panel-border-color: 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 --_panel-bleed: var(--size-8);\n\n display: contents;\n }\n\n dialog {\n all: unset;\n position: fixed;\n inset: 0;\n box-sizing: border-box;\n display: flex;\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n pointer-events: none;\n transition:\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete;\n }\n\n dialog:not([open]) {\n display: none;\n }\n\n dialog[open] {\n display: flex;\n pointer-events: auto;\n }\n\n dialog::backdrop {\n background: var(--_backdrop-bg);\n opacity: 1;\n backdrop-filter: var(--_backdrop-filter);\n transition:\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete,\n opacity var(--transition-normal),\n backdrop-filter var(--transition-normal);\n }\n\n @starting-style {\n dialog[open]::backdrop {\n opacity: 0;\n backdrop-filter: blur(0);\n }\n }\n\n .panel {\n position: absolute;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n box-shadow: var(--_panel-shadow);\n opacity: 1;\n backdrop-filter: blur(var(--_panel-blur));\n transform: translate3d(0, 0, 0);\n transition:\n opacity var(--transition-normal),\n transform var(--transition-normal),\n display var(--transition-normal) allow-discrete;\n }\n\n @starting-style {\n dialog[open] .panel {\n opacity: 0;\n transform: var(--_panel-exit-transform, translate3d(0, 0, 0));\n }\n }\n\n /* left */\n :host([placement='left']) .panel {\n --_panel-exit-transform: translateX(calc(-100% - var(--_panel-bleed)));\n\n inset-block: 0;\n inset-inline-start: 0;\n width: calc(var(--drawer-size, 20rem) + var(--_panel-bleed));\n max-width: calc(100dvw + var(--_panel-bleed));\n padding-inline-start: var(--_panel-bleed);\n margin-inline-start: calc(var(--_panel-bleed) * -1);\n border-block: none;\n border-inline-start: none;\n }\n\n /* right (default) */\n :host(:not([placement])) .panel,\n :host([placement='right']) .panel {\n --_panel-exit-transform: translateX(calc(100% + var(--_panel-bleed)));\n\n inset-block: 0;\n inset-inline-end: 0;\n width: calc(var(--drawer-size, 20rem) + var(--_panel-bleed));\n max-width: calc(100dvw + var(--_panel-bleed));\n padding-inline-end: var(--_panel-bleed);\n margin-inline-end: calc(var(--_panel-bleed) * -1);\n border-block: none;\n border-inline-end: none;\n }\n\n /* top */\n :host([placement='top']) .panel {\n --_panel-exit-transform: translateY(calc(-100% - var(--_panel-bleed)));\n\n inset-block-start: 0;\n inset-inline: 0;\n height: calc(var(--drawer-size, 16rem) + var(--_panel-bleed));\n max-height: calc(100dvh + var(--_panel-bleed));\n padding-block-start: var(--_panel-bleed);\n margin-block-start: calc(var(--_panel-bleed) * -1);\n border-block-start: none;\n border-inline: none;\n }\n\n /* bottom */\n :host([placement='bottom']) .panel {\n --_panel-exit-transform: translateY(calc(100% + var(--_panel-bleed)));\n\n inset-block-end: 0;\n inset-inline: 0;\n height: calc(var(--drawer-size, 16rem) + var(--_panel-bleed));\n max-height: calc(100dvh + var(--_panel-bleed));\n padding-block-end: var(--_panel-bleed);\n margin-block-end: calc(var(--_panel-bleed) * -1);\n border-block-end: none;\n border-inline: none;\n }\n\n /* RTL overrides */\n :host(:dir(rtl)[placement='left']) .panel {\n --_panel-exit-transform: translateX(calc(100% + var(--_panel-bleed)));\n }\n\n :host(:dir(rtl)[placement='right']) .panel,\n :host(:dir(rtl):not([placement])) .panel {\n --_panel-exit-transform: translateX(calc(-100% - var(--_panel-bleed)));\n }\n\n /* Size utilities */\n :host([size='sm']) {\n --drawer-size: 14rem;\n }\n\n :host([size='lg']) {\n --drawer-size: 32rem;\n }\n\n :host([size='full']) {\n --drawer-size: 100%;\n }\n\n :host([size='full']) .panel {\n width: calc(100% + var(--_panel-bleed));\n max-width: none;\n height: calc(100% + var(--_panel-bleed));\n max-height: none;\n border: none;\n }\n\n /* Header / Body / Footer */\n .header {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-4);\n border-bottom: var(--border) solid var(--color-contrast-200);\n }\n\n .header-title {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--text-lg);\n font-weight: var(--font-semibold);\n white-space: nowrap;\n }\n\n .body {\n flex: 1;\n padding: var(--size-4);\n overflow-y: auto;\n }\n\n .footer {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-2);\n justify-content: flex-end;\n padding: var(--size-4);\n border-top: var(--border) solid var(--color-contrast-200);\n }\n\n .header[hidden],\n .footer[hidden],\n .close-btn[hidden] {\n display: none;\n }\n\n .close-btn {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n height: var(--size-8);\n margin-inline-start: auto;\n color: var(--color-contrast-500);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition: var(--transition-fast);\n }\n\n .close-btn:hover {\n color: var(--color-contrast-800);\n background: var(--color-contrast-200);\n }\n\n .close-btn:focus-visible {\n outline: var(--focus-ring);\n }\n\n @media (width <= 640px) {\n :host([placement='left']) .panel,\n :host(:not([placement])) .panel,\n :host([placement='right']) .panel {\n width: calc(min(var(--drawer-size, 20rem), calc(100vw - var(--size-2))) + var(--_panel-bleed));\n max-width: calc(100vw - var(--size-2) + var(--_panel-bleed));\n }\n\n :host([placement='top']) .panel,\n :host([placement='bottom']) .panel {\n height: calc(min(var(--drawer-size, 16rem), calc(100dvh - var(--size-2))) + var(--_panel-bleed));\n max-height: calc(100dvh - var(--size-2) + var(--_panel-bleed));\n }\n\n .header,\n .body,\n .footer {\n padding: var(--size-3);\n }\n }\n}\n\n@layer buildit.config {\n :host([backdrop='blur']) {\n --_backdrop-filter: blur(var(--blur-xs));\n }\n\n :host([backdrop='transparent']) {\n --_backdrop-bg: transparent;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,6 @@
1
+ //#region src/overlay/drawer/drawer.css?inline
2
+ var e = "@layer buildit.base{:host{--_backdrop-bg:var(--drawer-backdrop,color-mix(in srgb, var(--color-canvas) 40%, transparent));--_backdrop-filter:none;--_panel-bg:var(--drawer-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(--drawer-panel-blur,var(--blur-md));--_panel-shadow:var(--drawer-shadow,var(--shadow-xl));--_panel-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-bleed:var(--size-8);display:contents}dialog{all:unset;box-sizing:border-box;pointer-events:none;width:100%;max-width:100%;height:100%;max-height:100%;transition:display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete;display:flex;position:fixed;inset:0}dialog:not([open]){display:none}dialog[open]{pointer-events:auto;display:flex}dialog::-ms-backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete, opacity var(--transition-normal), backdrop-filter var(--transition-normal)}dialog::backdrop{background:var(--_backdrop-bg);opacity:1;-webkit-backdrop-filter:var(--_backdrop-filter);backdrop-filter:var(--_backdrop-filter);transition:display var(--transition-normal) allow-discrete, overlay var(--transition-normal) allow-discrete, opacity var(--transition-normal), backdrop-filter var(--transition-normal)}@starting-style{dialog[open]::-ms-backdrop{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}dialog[open]::backdrop{opacity:0;-webkit-backdrop-filter:blur();backdrop-filter:blur()}}.panel{box-sizing:border-box;background:var(--_panel-bg);border:var(--border) solid var(--_panel-border-color);box-shadow:var(--_panel-shadow);opacity:1;-webkit-backdrop-filter:blur(var(--_panel-blur));backdrop-filter:blur(var(--_panel-blur));transition:opacity var(--transition-normal), transform var(--transition-normal), display var(--transition-normal) allow-discrete;flex-direction:column;display:flex;position:absolute;overflow:hidden;transform:translate(0)}@starting-style{dialog[open] .panel{opacity:0;transform:var(--_panel-exit-transform,translate3d(0, 0, 0))}}:host([placement=left]) .panel{--_panel-exit-transform:translateX(calc(-100% - var(--_panel-bleed)));width:calc(var(--drawer-size,20rem) + var(--_panel-bleed));max-width:calc(100dvw + var(--_panel-bleed));border-top:none;border-bottom:none;top:0;bottom:0}:host([placement=left]) .panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:calc(var(--_panel-bleed) * -1);padding-left:var(--_panel-bleed);border-left:none;left:0}:host([placement=left]) .panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:calc(var(--_panel-bleed) * -1);padding-right:var(--_panel-bleed);border-right:none;right:0}:host(:not([placement])) .panel{--_panel-exit-transform:translateX(calc(100% + var(--_panel-bleed)));width:calc(var(--drawer-size,20rem) + var(--_panel-bleed));max-width:calc(100dvw + var(--_panel-bleed));border-top:none;border-bottom:none;top:0;bottom:0}:host(:not([placement])) .panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:calc(var(--_panel-bleed) * -1);padding-right:var(--_panel-bleed);border-right:none;right:0}:host(:not([placement])) .panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:calc(var(--_panel-bleed) * -1);padding-left:var(--_panel-bleed);border-left:none;left:0}:host([placement=right]) .panel{--_panel-exit-transform:translateX(calc(100% + var(--_panel-bleed)));width:calc(var(--drawer-size,20rem) + var(--_panel-bleed));max-width:calc(100dvw + var(--_panel-bleed));border-top:none;border-bottom:none;top:0;bottom:0}:host([placement=right]) .panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-right:calc(var(--_panel-bleed) * -1);padding-right:var(--_panel-bleed);border-right:none;right:0}:host([placement=right]) .panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-left:calc(var(--_panel-bleed) * -1);padding-left:var(--_panel-bleed);border-left:none;left:0}:host([placement=top]) .panel{--_panel-exit-transform:translateY(calc(-100% - var(--_panel-bleed)));height:calc(var(--drawer-size,16rem) + var(--_panel-bleed));max-height:calc(100dvh + var(--_panel-bleed));margin-top:calc(var(--_panel-bleed) * -1);padding-top:var(--_panel-bleed);border-top:none;border-left:none;border-right:none;top:0;left:0;right:0}:host([placement=bottom]) .panel{--_panel-exit-transform:translateY(calc(100% + var(--_panel-bleed)));height:calc(var(--drawer-size,16rem) + var(--_panel-bleed));max-height:calc(100dvh + var(--_panel-bleed));margin-bottom:calc(var(--_panel-bleed) * -1);padding-bottom:var(--_panel-bleed);border-bottom:none;border-left:none;border-right:none;bottom:0;left:0;right:0}:host(:dir(rtl)[placement=left]) .panel{--_panel-exit-transform:translateX(calc(100% + var(--_panel-bleed)))}:host(:dir(rtl)[placement=right]) .panel,:host(:dir(rtl):not([placement])) .panel{--_panel-exit-transform:translateX(calc(-100% - var(--_panel-bleed)))}:host([size=sm]){--drawer-size:14rem}:host([size=lg]){--drawer-size:32rem}:host([size=full]){--drawer-size:100%}:host([size=full]) .panel{width:calc(100% + var(--_panel-bleed));max-width:none;height:calc(100% + var(--_panel-bleed));border:none;max-height:none}.header{gap:var(--size-2);padding:var(--size-4);border-bottom:var(--border) solid var(--color-contrast-200);flex-shrink:0;align-items:center;display:flex}.header-title{text-overflow:ellipsis;min-width:0;font-size:var(--text-lg);font-weight:var(--font-semibold);white-space:nowrap;flex:1;overflow:hidden}.body{padding:var(--size-4);flex:1;overflow-y:auto}.footer{gap:var(--size-2);padding:var(--size-4);border-top:var(--border) solid var(--color-contrast-200);flex-shrink:0;justify-content:flex-end;display:flex}.header[hidden],.footer[hidden],.close-btn[hidden]{display:none}.close-btn{all:unset;box-sizing:border-box;width:var(--size-8);height:var(--size-8);color:var(--color-contrast-500);cursor:pointer;border-radius:var(--rounded-sm);transition:var(--transition-fast);flex-shrink:0;justify-content:center;align-items:center;display:inline-flex}.close-btn:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){margin-left:auto}.close-btn:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){margin-right:auto}.close-btn:hover{color:var(--color-contrast-800);background:var(--color-contrast-200)}.close-btn:focus-visible{outline:var(--focus-ring)}@media (width<=640px){:host([placement=left]) .panel,:host(:not([placement])) .panel,:host([placement=right]) .panel{width:calc(min(var(--drawer-size,20rem), calc(100vw - var(--size-2))) + var(--_panel-bleed));max-width:calc(100vw - var(--size-2) + var(--_panel-bleed))}:host([placement=top]) .panel,:host([placement=bottom]) .panel{height:calc(min(var(--drawer-size,16rem), calc(100dvh - var(--size-2))) + var(--_panel-bleed));max-height:calc(100dvh - var(--size-2) + var(--_panel-bleed))}.header,.body,.footer{padding:var(--size-3)}}}@layer buildit.config{:host([backdrop=blur]){--_backdrop-filter:blur(var(--blur-xs))}:host([backdrop=transparent]){--_backdrop-bg:transparent}}";
3
+ //#endregion
4
+ export { e as default };
5
+
6
+ //# sourceMappingURL=drawer.css?inline.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.css?inline.js","names":[],"sources":["../../../src/overlay/drawer/drawer.css?inline"],"sourcesContent":["@layer buildit.base {\n :host {\n --_backdrop-bg: var(--drawer-backdrop, color-mix(in srgb, var(--color-canvas) 40%, transparent));\n --_backdrop-filter: none;\n --_panel-bg: var(\n --drawer-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(--drawer-panel-blur, var(--blur-md));\n --_panel-shadow: var(--drawer-shadow, var(--shadow-xl));\n --_panel-border-color: 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 --_panel-bleed: var(--size-8);\n\n display: contents;\n }\n\n dialog {\n all: unset;\n position: fixed;\n inset: 0;\n box-sizing: border-box;\n display: flex;\n width: 100%;\n max-width: 100%;\n height: 100%;\n max-height: 100%;\n pointer-events: none;\n transition:\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete;\n }\n\n dialog:not([open]) {\n display: none;\n }\n\n dialog[open] {\n display: flex;\n pointer-events: auto;\n }\n\n dialog::backdrop {\n background: var(--_backdrop-bg);\n opacity: 1;\n backdrop-filter: var(--_backdrop-filter);\n transition:\n display var(--transition-normal) allow-discrete,\n overlay var(--transition-normal) allow-discrete,\n opacity var(--transition-normal),\n backdrop-filter var(--transition-normal);\n }\n\n @starting-style {\n dialog[open]::backdrop {\n opacity: 0;\n backdrop-filter: blur(0);\n }\n }\n\n .panel {\n position: absolute;\n box-sizing: border-box;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n background: var(--_panel-bg);\n border: var(--border) solid var(--_panel-border-color);\n box-shadow: var(--_panel-shadow);\n opacity: 1;\n backdrop-filter: blur(var(--_panel-blur));\n transform: translate3d(0, 0, 0);\n transition:\n opacity var(--transition-normal),\n transform var(--transition-normal),\n display var(--transition-normal) allow-discrete;\n }\n\n @starting-style {\n dialog[open] .panel {\n opacity: 0;\n transform: var(--_panel-exit-transform, translate3d(0, 0, 0));\n }\n }\n\n /* left */\n :host([placement='left']) .panel {\n --_panel-exit-transform: translateX(calc(-100% - var(--_panel-bleed)));\n\n inset-block: 0;\n inset-inline-start: 0;\n width: calc(var(--drawer-size, 20rem) + var(--_panel-bleed));\n max-width: calc(100dvw + var(--_panel-bleed));\n padding-inline-start: var(--_panel-bleed);\n margin-inline-start: calc(var(--_panel-bleed) * -1);\n border-block: none;\n border-inline-start: none;\n }\n\n /* right (default) */\n :host(:not([placement])) .panel,\n :host([placement='right']) .panel {\n --_panel-exit-transform: translateX(calc(100% + var(--_panel-bleed)));\n\n inset-block: 0;\n inset-inline-end: 0;\n width: calc(var(--drawer-size, 20rem) + var(--_panel-bleed));\n max-width: calc(100dvw + var(--_panel-bleed));\n padding-inline-end: var(--_panel-bleed);\n margin-inline-end: calc(var(--_panel-bleed) * -1);\n border-block: none;\n border-inline-end: none;\n }\n\n /* top */\n :host([placement='top']) .panel {\n --_panel-exit-transform: translateY(calc(-100% - var(--_panel-bleed)));\n\n inset-block-start: 0;\n inset-inline: 0;\n height: calc(var(--drawer-size, 16rem) + var(--_panel-bleed));\n max-height: calc(100dvh + var(--_panel-bleed));\n padding-block-start: var(--_panel-bleed);\n margin-block-start: calc(var(--_panel-bleed) * -1);\n border-block-start: none;\n border-inline: none;\n }\n\n /* bottom */\n :host([placement='bottom']) .panel {\n --_panel-exit-transform: translateY(calc(100% + var(--_panel-bleed)));\n\n inset-block-end: 0;\n inset-inline: 0;\n height: calc(var(--drawer-size, 16rem) + var(--_panel-bleed));\n max-height: calc(100dvh + var(--_panel-bleed));\n padding-block-end: var(--_panel-bleed);\n margin-block-end: calc(var(--_panel-bleed) * -1);\n border-block-end: none;\n border-inline: none;\n }\n\n /* RTL overrides */\n :host(:dir(rtl)[placement='left']) .panel {\n --_panel-exit-transform: translateX(calc(100% + var(--_panel-bleed)));\n }\n\n :host(:dir(rtl)[placement='right']) .panel,\n :host(:dir(rtl):not([placement])) .panel {\n --_panel-exit-transform: translateX(calc(-100% - var(--_panel-bleed)));\n }\n\n /* Size utilities */\n :host([size='sm']) {\n --drawer-size: 14rem;\n }\n\n :host([size='lg']) {\n --drawer-size: 32rem;\n }\n\n :host([size='full']) {\n --drawer-size: 100%;\n }\n\n :host([size='full']) .panel {\n width: calc(100% + var(--_panel-bleed));\n max-width: none;\n height: calc(100% + var(--_panel-bleed));\n max-height: none;\n border: none;\n }\n\n /* Header / Body / Footer */\n .header {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-2);\n align-items: center;\n padding: var(--size-4);\n border-bottom: var(--border) solid var(--color-contrast-200);\n }\n\n .header-title {\n flex: 1;\n min-width: 0;\n overflow: hidden;\n text-overflow: ellipsis;\n font-size: var(--text-lg);\n font-weight: var(--font-semibold);\n white-space: nowrap;\n }\n\n .body {\n flex: 1;\n padding: var(--size-4);\n overflow-y: auto;\n }\n\n .footer {\n display: flex;\n flex-shrink: 0;\n gap: var(--size-2);\n justify-content: flex-end;\n padding: var(--size-4);\n border-top: var(--border) solid var(--color-contrast-200);\n }\n\n .header[hidden],\n .footer[hidden],\n .close-btn[hidden] {\n display: none;\n }\n\n .close-btn {\n all: unset;\n box-sizing: border-box;\n display: inline-flex;\n flex-shrink: 0;\n align-items: center;\n justify-content: center;\n width: var(--size-8);\n height: var(--size-8);\n margin-inline-start: auto;\n color: var(--color-contrast-500);\n cursor: pointer;\n border-radius: var(--rounded-sm);\n transition: var(--transition-fast);\n }\n\n .close-btn:hover {\n color: var(--color-contrast-800);\n background: var(--color-contrast-200);\n }\n\n .close-btn:focus-visible {\n outline: var(--focus-ring);\n }\n\n @media (width <= 640px) {\n :host([placement='left']) .panel,\n :host(:not([placement])) .panel,\n :host([placement='right']) .panel {\n width: calc(min(var(--drawer-size, 20rem), calc(100vw - var(--size-2))) + var(--_panel-bleed));\n max-width: calc(100vw - var(--size-2) + var(--_panel-bleed));\n }\n\n :host([placement='top']) .panel,\n :host([placement='bottom']) .panel {\n height: calc(min(var(--drawer-size, 16rem), calc(100dvh - var(--size-2))) + var(--_panel-bleed));\n max-height: calc(100dvh - var(--size-2) + var(--_panel-bleed));\n }\n\n .header,\n .body,\n .footer {\n padding: var(--size-3);\n }\n }\n}\n\n@layer buildit.config {\n :host([backdrop='blur']) {\n --_backdrop-filter: blur(var(--blur-xs));\n }\n\n :host([backdrop='transparent']) {\n --_backdrop-bg: transparent;\n }\n}\n"],"mappings":""}
@@ -0,0 +1,98 @@
1
+ type DrawerPlacement = 'left' | 'right' | 'top' | 'bottom';
2
+ type DrawerSize = 'sm' | 'lg' | 'full';
3
+ type DrawerBackdrop = 'opaque' | 'blur' | 'transparent';
4
+ /** Element interface exposing the imperative API for `bit-drawer`. */
5
+ export interface DrawerElement extends HTMLElement, Omit<BitDrawerProps, 'title'> {
6
+ /** Programmatically open the drawer. Equivalent to setting `open`. */
7
+ show(): void;
8
+ /** Programmatically close the drawer with the exit animation. */
9
+ hide(): void;
10
+ }
11
+ /** Drawer component properties */
12
+ export type BitDrawerEvents = {
13
+ close: {
14
+ placement: DrawerPlacement;
15
+ };
16
+ open: {
17
+ placement: DrawerPlacement;
18
+ };
19
+ };
20
+ export type BitDrawerProps = {
21
+ /** Backdrop style — 'opaque' (default), 'blur', or 'transparent' */
22
+ backdrop?: DrawerBackdrop;
23
+ /** Show the close (×) button in the header (default: true) */
24
+ dismissable?: boolean;
25
+ /**
26
+ * CSS selector for the element inside the drawer that should receive focus on open.
27
+ * Defaults to native dialog focus management (first focusable element).
28
+ * @example '#submit-btn' | 'input[name="email"]'
29
+ */
30
+ 'initial-focus'?: string;
31
+ /**
32
+ * Invisible accessible label for the dialog (`aria-label`).
33
+ * Use when the drawer has no visible title (e.g. image-only content).
34
+ * When omitted, `aria-labelledby` points to the visible header title instead.
35
+ */
36
+ label?: string;
37
+ /** Controlled open state */
38
+ open?: boolean;
39
+ /** When true, backdrop clicks do not close the drawer (default: false) */
40
+ persistent?: boolean;
41
+ /** Side from which the drawer slides in */
42
+ placement?: DrawerPlacement;
43
+ /**
44
+ * When true (default), focus returns to the triggering element after the drawer closes.
45
+ * Set to false to manage focus manually.
46
+ */
47
+ 'return-focus'?: boolean;
48
+ /** Drawer width/height preset */
49
+ size?: DrawerSize;
50
+ /**
51
+ * Visible title text rendered inside the header.
52
+ * Used as the dialog's accessible label via `aria-labelledby` when `label` is not set.
53
+ */
54
+ title?: string;
55
+ };
56
+ /**
57
+ * A panel that slides in from any edge of the screen, built on the native `<dialog>` element.
58
+ *
59
+ * @element bit-drawer
60
+ *
61
+ * @attr {boolean} open - Controlled open/close state
62
+ * @attr {string} placement - 'left' | 'right' (default) | 'top' | 'bottom'
63
+ * @attr {string} size - 'sm' | 'lg' | 'full'
64
+ * @attr {string} title - Visible header title text
65
+ * @attr {string} label - Invisible aria-label (for drawers without a visible title)
66
+ * @attr {boolean} dismissable - Show the close (×) button (default: true)
67
+ * @attr {string} backdrop - Backdrop style: 'opaque' (default) | 'blur' | 'transparent'
68
+ * @attr {boolean} persistent - Prevent backdrop-click from closing (default: false)
69
+ *
70
+ * @slot header - Drawer header content
71
+ * @slot - Main body content
72
+ * @slot footer - Drawer footer content
73
+ *
74
+ * @fires open - When the drawer opens
75
+ * @fires close - When the drawer closes
76
+ *
77
+ * @cssprop --drawer-backdrop - Backdrop background
78
+ * @cssprop --drawer-bg - Panel background color
79
+ * @cssprop --drawer-size - Panel width (horizontal) or height (vertical)
80
+ * @cssprop --drawer-shadow - Panel box-shadow
81
+ *
82
+ * @example
83
+ * ```html
84
+ * <!-- With visible title -->
85
+ * <bit-drawer open title="Settings" placement="right">
86
+ * <p>Settings content here.</p>
87
+ * </bit-drawer>
88
+ *
89
+ * <!-- With custom header slot -->
90
+ * <bit-drawer open placement="right">
91
+ * <span slot="header">Settings</span>
92
+ * <p>Settings content here.</p>
93
+ * </bit-drawer>
94
+ * ```
95
+ */
96
+ export declare const DRAWER_TAG: string;
97
+ export {};
98
+ //# sourceMappingURL=drawer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"drawer.d.ts","sourceRoot":"","sources":["../../../src/overlay/drawer/drawer.ts"],"names":[],"mappings":"AAOA,KAAK,eAAe,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,GAAG,QAAQ,CAAC;AAC3D,KAAK,UAAU,GAAG,IAAI,GAAG,IAAI,GAAG,MAAM,CAAC;AACvC,KAAK,cAAc,GAAG,QAAQ,GAAG,MAAM,GAAG,aAAa,CAAC;AAExD,sEAAsE;AACtE,MAAM,WAAW,aAAc,SAAQ,WAAW,EAAE,IAAI,CAAC,cAAc,EAAE,OAAO,CAAC;IAC/E,sEAAsE;IACtE,IAAI,IAAI,IAAI,CAAC;IACb,iEAAiE;IACjE,IAAI,IAAI,IAAI,CAAC;CACd;AAED,kCAAkC;AAElC,MAAM,MAAM,eAAe,GAAG;IAC5B,KAAK,EAAE;QAAE,SAAS,EAAE,eAAe,CAAA;KAAE,CAAC;IACtC,IAAI,EAAE;QAAE,SAAS,EAAE,eAAe,CAAA;KAAE,CAAC;CACtC,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,oEAAoE;IACpE,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,8DAA8D;IAC9D,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB;;;;OAIG;IACH,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;;OAIG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,4BAA4B;IAC5B,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,0EAA0E;IAC1E,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,eAAe,CAAC;IAC5B;;;OAGG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,iCAAiC;IACjC,IAAI,CAAC,EAAE,UAAU,CAAC;IAClB;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,eAAO,MAAM,UAAU,QA6IrB,CAAC"}
@@ -0,0 +1 @@
1
+ require(`../dialog.cjs`),require(`../drawer.cjs`),require(`../menu.cjs`),require(`../popover.cjs`),require(`../tooltip.cjs`);
@@ -0,0 +1,11 @@
1
+ export { DIALOG_TAG } from './dialog/dialog';
2
+ export type { BitDialogEvents, BitDialogProps } from './dialog/dialog';
3
+ export { DRAWER_TAG } from './drawer/drawer';
4
+ export type { BitDrawerEvents, BitDrawerProps } from './drawer/drawer';
5
+ export { MENU_ITEM_TAG, MENU_TAG } from './menu/menu';
6
+ export type { BitMenuEvents, BitMenuItemProps, BitMenuItemType, BitMenuProps, MenuSelectDetail } from './menu/menu';
7
+ export { POPOVER_TAG } from './popover/popover';
8
+ export type { BitPopoverEvents, BitPopoverProps } from './popover/popover';
9
+ export { TOOLTIP_TAG } from './tooltip/tooltip';
10
+ export type { BitTooltipProps } from './tooltip/tooltip';
11
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/overlay/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,YAAY,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACvE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACtD,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,eAAe,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACpH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,5 @@
1
+ import "../dialog.js";
2
+ import "../drawer.js";
3
+ import "../menu.js";
4
+ import "../popover.js";
5
+ import "../tooltip.js";
@@ -0,0 +1,2 @@
1
+ var e=`@layer buildit.base{:host{--_menu-panel-bg:var(--menu-panel-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)));--_menu-panel-border-color:var(--menu-panel-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)));--_menu-panel-blur:var(--menu-panel-blur,var(--blur-md));--_menu-panel-shadow:var(--menu-panel-shadow,var(--shadow-xl));display:inline-block;position:relative}.menu-panel{z-index:calc(var(--z-popover,1000) + 1);box-sizing:border-box;visibility:hidden;min-width:var(--menu-panel-min-width,10rem);padding:var(--size-1);pointer-events:none;background:var(--_menu-panel-bg);border:var(--border) solid var(--_menu-panel-border-color);border-radius:var(--menu-panel-radius,var(--rounded-lg));box-shadow:var(--_menu-panel-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--_menu-panel-blur));backdrop-filter:blur(var(--_menu-panel-blur));transform-origin:top;transition:opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);margin:0;position:fixed;top:0;transform:translateY(-4px)scale(.97)}.menu-panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}.menu-panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}.menu-panel[data-open]{visibility:visible;pointer-events:auto;opacity:1;transform:translateY(0)scale(1)}::slotted(bit-menu-item),::slotted(bit-menu-separator){display:block}}`;exports.default=e;
2
+ //# sourceMappingURL=menu.css?inline.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"menu.css?inline.cjs","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,6 @@
1
+ //#region src/overlay/menu/menu.css?inline
2
+ var e = "@layer buildit.base{:host{--_menu-panel-bg:var(--menu-panel-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)));--_menu-panel-border-color:var(--menu-panel-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)));--_menu-panel-blur:var(--menu-panel-blur,var(--blur-md));--_menu-panel-shadow:var(--menu-panel-shadow,var(--shadow-xl));display:inline-block;position:relative}.menu-panel{z-index:calc(var(--z-popover,1000) + 1);box-sizing:border-box;visibility:hidden;min-width:var(--menu-panel-min-width,10rem);padding:var(--size-1);pointer-events:none;background:var(--_menu-panel-bg);border:var(--border) solid var(--_menu-panel-border-color);border-radius:var(--menu-panel-radius,var(--rounded-lg));box-shadow:var(--_menu-panel-shadow);opacity:0;-webkit-backdrop-filter:blur(var(--_menu-panel-blur));backdrop-filter:blur(var(--_menu-panel-blur));transform-origin:top;transition:opacity var(--transition-fast), transform var(--transition-fast), visibility var(--transition-fast);margin:0;position:fixed;top:0;transform:translateY(-4px)scale(.97)}.menu-panel:not(:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi))){left:0}.menu-panel:is(:lang(ae),:lang(ar),:lang(arc),:lang(bcc),:lang(bqi),:lang(ckb),:lang(dv),:lang(fa),:lang(glk),:lang(he),:lang(ku),:lang(mzn),:lang(nqo),:lang(pnb),:lang(ps),:lang(sd),:lang(ug),:lang(ur),:lang(yi)){right:0}.menu-panel[data-open]{visibility:visible;pointer-events:auto;opacity:1;transform:translateY(0)scale(1)}::slotted(bit-menu-item),::slotted(bit-menu-separator){display:block}}";
3
+ //#endregion
4
+ export { e as default };
5
+
6
+ //# sourceMappingURL=menu.css?inline.js.map