plass-ui 0.0.1 → 1.0.1

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 (408) hide show
  1. package/dist/components/accordion/PlAccordion.d.ts +98 -0
  2. package/dist/components/accordion/PlAccordion.js +1 -0
  3. package/dist/components/accordion/index.d.ts +2 -0
  4. package/dist/components/accordion/index.js +1 -0
  5. package/dist/components/alert/PlAlert.d.ts +50 -0
  6. package/dist/components/alert/PlAlert.js +1 -0
  7. package/dist/components/alert/index.d.ts +2 -0
  8. package/dist/components/alert/index.js +1 -0
  9. package/dist/components/animate-appear/PlAnimateAppear.d.ts +55 -0
  10. package/dist/components/animate-appear/PlAnimateAppear.js +1 -0
  11. package/dist/components/animate-appear/index.d.ts +2 -0
  12. package/dist/components/animate-appear/index.js +1 -0
  13. package/dist/components/animate-blink/PlAnimateBlink.d.ts +30 -0
  14. package/dist/components/animate-blink/PlAnimateBlink.js +1 -0
  15. package/dist/components/animate-blink/index.d.ts +2 -0
  16. package/dist/components/animate-blink/index.js +1 -0
  17. package/dist/components/animate-fade/PlAnimateFade.d.ts +35 -0
  18. package/dist/components/animate-fade/PlAnimateFade.js +1 -0
  19. package/dist/components/animate-fade/index.d.ts +2 -0
  20. package/dist/components/animate-fade/index.js +1 -0
  21. package/dist/components/animate-grow/PlAnimateGrow.d.ts +45 -0
  22. package/dist/components/animate-grow/PlAnimateGrow.js +1 -0
  23. package/dist/components/animate-grow/index.d.ts +2 -0
  24. package/dist/components/animate-grow/index.js +1 -0
  25. package/dist/components/animate-headline/PlAnimateHeadline.d.ts +55 -0
  26. package/dist/components/animate-headline/PlAnimateHeadline.js +1 -0
  27. package/dist/components/animate-headline/index.d.ts +2 -0
  28. package/dist/components/animate-headline/index.js +1 -0
  29. package/dist/components/animate-lighting/PlAnimateLighting.d.ts +67 -0
  30. package/dist/components/animate-lighting/PlAnimateLighting.js +1 -0
  31. package/dist/components/animate-lighting/index.d.ts +2 -0
  32. package/dist/components/animate-lighting/index.js +1 -0
  33. package/dist/components/animate-marquee/PlAnimateMarquee.d.ts +65 -0
  34. package/dist/components/animate-marquee/PlAnimateMarquee.js +1 -0
  35. package/dist/components/animate-marquee/index.d.ts +2 -0
  36. package/dist/components/animate-marquee/index.js +1 -0
  37. package/dist/components/animate-rotate/PlAnimateRotate.d.ts +52 -0
  38. package/dist/components/animate-rotate/PlAnimateRotate.js +1 -0
  39. package/dist/components/animate-rotate/index.d.ts +2 -0
  40. package/dist/components/animate-rotate/index.js +1 -0
  41. package/dist/components/animate-slide/PlAnimateSlide.d.ts +47 -0
  42. package/dist/components/animate-slide/PlAnimateSlide.js +1 -0
  43. package/dist/components/animate-slide/index.d.ts +2 -0
  44. package/dist/components/animate-slide/index.js +1 -0
  45. package/dist/components/animate-typing/PlAnimateTyping.d.ts +56 -0
  46. package/dist/components/animate-typing/PlAnimateTyping.js +1 -0
  47. package/dist/components/animate-typing/index.d.ts +2 -0
  48. package/dist/components/animate-typing/index.js +1 -0
  49. package/dist/components/animate-zoom/PlAnimateZoom.d.ts +37 -0
  50. package/dist/components/animate-zoom/PlAnimateZoom.js +1 -0
  51. package/dist/components/animate-zoom/index.d.ts +2 -0
  52. package/dist/components/animate-zoom/index.js +1 -0
  53. package/dist/components/aspect-ratio/PlAspectRatio.d.ts +64 -0
  54. package/dist/components/aspect-ratio/PlAspectRatio.js +1 -0
  55. package/dist/components/aspect-ratio/index.d.ts +2 -0
  56. package/dist/components/aspect-ratio/index.js +1 -0
  57. package/dist/components/avatar/PlAvatar.d.ts +102 -0
  58. package/dist/components/avatar/PlAvatar.js +1 -0
  59. package/dist/components/avatar/index.d.ts +2 -0
  60. package/dist/components/avatar/index.js +1 -0
  61. package/dist/components/badge/PlBadge.d.ts +86 -0
  62. package/dist/components/badge/PlBadge.js +1 -0
  63. package/dist/components/badge/index.d.ts +2 -0
  64. package/dist/components/badge/index.js +1 -0
  65. package/dist/components/blockquote/PlBlockquote.d.ts +64 -0
  66. package/dist/components/blockquote/PlBlockquote.js +1 -0
  67. package/dist/components/blockquote/index.d.ts +2 -0
  68. package/dist/components/blockquote/index.js +1 -0
  69. package/dist/components/bottom-navigation/PlBottomNavigation.d.ts +111 -0
  70. package/dist/components/bottom-navigation/PlBottomNavigation.js +1 -0
  71. package/dist/components/bottom-navigation/index.d.ts +2 -0
  72. package/dist/components/bottom-navigation/index.js +1 -0
  73. package/dist/components/box/PlBox.d.ts +50 -0
  74. package/dist/components/box/PlBox.js +1 -0
  75. package/dist/components/box/index.d.ts +2 -0
  76. package/dist/components/box/index.js +1 -0
  77. package/dist/components/breadcrumb/PlBreadcrumb.d.ts +138 -0
  78. package/dist/components/breadcrumb/PlBreadcrumb.js +1 -0
  79. package/dist/components/breadcrumb/index.d.ts +2 -0
  80. package/dist/components/breadcrumb/index.js +1 -0
  81. package/dist/components/button/{Button.d.ts → PlButton.d.ts} +3 -3
  82. package/dist/components/button/PlButton.js +1 -0
  83. package/dist/components/button/index.d.ts +2 -2
  84. package/dist/components/button/index.js +1 -1
  85. package/dist/components/button-group/PlButtonGroup.d.ts +32 -0
  86. package/dist/components/button-group/PlButtonGroup.js +1 -0
  87. package/dist/components/button-group/index.d.ts +2 -0
  88. package/dist/components/button-group/index.js +1 -0
  89. package/dist/components/card/PlCard.d.ts +81 -0
  90. package/dist/components/card/PlCard.js +1 -0
  91. package/dist/components/card/index.d.ts +2 -0
  92. package/dist/components/card/index.js +1 -0
  93. package/dist/components/carousel/PlCarousel.d.ts +78 -0
  94. package/dist/components/carousel/PlCarousel.js +1 -0
  95. package/dist/components/carousel/index.d.ts +2 -0
  96. package/dist/components/carousel/index.js +1 -0
  97. package/dist/components/chat-bubble/PlChatBubble.d.ts +127 -0
  98. package/dist/components/chat-bubble/PlChatBubble.js +1 -0
  99. package/dist/components/chat-bubble/index.d.ts +2 -0
  100. package/dist/components/chat-bubble/index.js +1 -0
  101. package/dist/components/checkbox/PlCheckbox.d.ts +39 -0
  102. package/dist/components/checkbox/PlCheckbox.js +1 -0
  103. package/dist/components/checkbox/index.d.ts +2 -0
  104. package/dist/components/checkbox/index.js +1 -0
  105. package/dist/components/chip/PlChip.d.ts +55 -0
  106. package/dist/components/chip/PlChip.js +1 -0
  107. package/dist/components/chip/index.d.ts +2 -0
  108. package/dist/components/chip/index.js +1 -0
  109. package/dist/components/collapsible/PlCollapsible.d.ts +84 -0
  110. package/dist/components/collapsible/PlCollapsible.js +1 -0
  111. package/dist/components/collapsible/index.d.ts +2 -0
  112. package/dist/components/collapsible/index.js +1 -0
  113. package/dist/components/combobox/PlCombobox.d.ts +140 -0
  114. package/dist/components/combobox/PlCombobox.js +1 -0
  115. package/dist/components/combobox/index.d.ts +2 -0
  116. package/dist/components/combobox/index.js +1 -0
  117. package/dist/components/container/PlContainer.d.ts +66 -0
  118. package/dist/components/container/PlContainer.js +1 -0
  119. package/dist/components/container/index.d.ts +2 -0
  120. package/dist/components/container/index.js +1 -0
  121. package/dist/components/date-picker/PlDatePicker.d.ts +73 -0
  122. package/dist/components/date-picker/PlDatePicker.js +1 -0
  123. package/dist/components/date-picker/index.d.ts +2 -0
  124. package/dist/components/date-picker/index.js +1 -0
  125. package/dist/components/date-range-picker/PlDateRangePicker.d.ts +91 -0
  126. package/dist/components/date-range-picker/PlDateRangePicker.js +1 -0
  127. package/dist/components/date-range-picker/index.d.ts +2 -0
  128. package/dist/components/date-range-picker/index.js +1 -0
  129. package/dist/components/date-time-picker/PlDateTimePicker.d.ts +74 -0
  130. package/dist/components/date-time-picker/PlDateTimePicker.js +1 -0
  131. package/dist/components/date-time-picker/index.d.ts +2 -0
  132. package/dist/components/date-time-picker/index.js +1 -0
  133. package/dist/components/divider/PlDivider.d.ts +73 -0
  134. package/dist/components/divider/PlDivider.js +1 -0
  135. package/dist/components/divider/index.d.ts +2 -0
  136. package/dist/components/divider/index.js +1 -0
  137. package/dist/components/drawer/PlDrawer.d.ts +144 -0
  138. package/dist/components/drawer/PlDrawer.js +1 -0
  139. package/dist/components/drawer/index.d.ts +2 -0
  140. package/dist/components/drawer/index.js +1 -0
  141. package/dist/components/file-picker/PlFilePicker.d.ts +105 -0
  142. package/dist/components/file-picker/PlFilePicker.js +1 -0
  143. package/dist/components/file-picker/index.d.ts +2 -0
  144. package/dist/components/file-picker/index.js +1 -0
  145. package/dist/components/floating-bottom-navigation/PlFloatingBottomNavigation.d.ts +118 -0
  146. package/dist/components/floating-bottom-navigation/PlFloatingBottomNavigation.js +1 -0
  147. package/dist/components/floating-bottom-navigation/index.d.ts +2 -0
  148. package/dist/components/floating-bottom-navigation/index.js +1 -0
  149. package/dist/components/grid/PlGrid.d.ts +67 -0
  150. package/dist/components/grid/PlGrid.js +1 -0
  151. package/dist/components/grid/PlGridItem.d.ts +50 -0
  152. package/dist/components/grid/PlGridItem.js +1 -0
  153. package/dist/components/grid/index.d.ts +4 -0
  154. package/dist/components/grid/index.js +1 -0
  155. package/dist/components/highlight/PlHighlight.d.ts +90 -0
  156. package/dist/components/highlight/PlHighlight.js +1 -0
  157. package/dist/components/highlight/index.d.ts +2 -0
  158. package/dist/components/highlight/index.js +1 -0
  159. package/dist/components/hot-keys/PlHotKeys.d.ts +93 -0
  160. package/dist/components/hot-keys/PlHotKeys.js +1 -0
  161. package/dist/components/hot-keys/index.d.ts +2 -0
  162. package/dist/components/hot-keys/index.js +1 -0
  163. package/dist/components/icon/PlIcon.d.ts +62 -0
  164. package/dist/components/icon/PlIcon.js +1 -0
  165. package/dist/components/icon/index.d.ts +2 -0
  166. package/dist/components/icon/index.js +1 -0
  167. package/dist/components/icon-button/PlIconButton.d.ts +39 -0
  168. package/dist/components/icon-button/PlIconButton.js +1 -0
  169. package/dist/components/icon-button/index.d.ts +2 -0
  170. package/dist/components/icon-button/index.js +1 -0
  171. package/dist/components/list/PlList.d.ts +82 -0
  172. package/dist/components/list/PlList.js +1 -0
  173. package/dist/components/list/index.d.ts +2 -0
  174. package/dist/components/list/index.js +1 -0
  175. package/dist/components/menu/PlMenu.d.ts +210 -0
  176. package/dist/components/menu/PlMenu.js +1 -0
  177. package/dist/components/menu/index.d.ts +2 -0
  178. package/dist/components/menu/index.js +1 -0
  179. package/dist/components/modal/PlModal.d.ts +112 -0
  180. package/dist/components/modal/PlModal.js +1 -0
  181. package/dist/components/modal/index.d.ts +2 -0
  182. package/dist/components/modal/index.js +1 -0
  183. package/dist/components/number-field/PlNumberField.d.ts +133 -0
  184. package/dist/components/number-field/PlNumberField.js +1 -0
  185. package/dist/components/number-field/index.d.ts +2 -0
  186. package/dist/components/number-field/index.js +1 -0
  187. package/dist/components/otp-field/PlOtpField.d.ts +82 -0
  188. package/dist/components/otp-field/PlOtpField.js +1 -0
  189. package/dist/components/otp-field/index.d.ts +2 -0
  190. package/dist/components/otp-field/index.js +1 -0
  191. package/dist/components/overlay/PlOverlay.d.ts +96 -0
  192. package/dist/components/overlay/PlOverlay.js +1 -0
  193. package/dist/components/overlay/index.d.ts +2 -0
  194. package/dist/components/overlay/index.js +1 -0
  195. package/dist/components/pagination/PlPagination.d.ts +88 -0
  196. package/dist/components/pagination/PlPagination.js +1 -0
  197. package/dist/components/pagination/index.d.ts +2 -0
  198. package/dist/components/pagination/index.js +1 -0
  199. package/dist/components/panes/PlPanes.d.ts +79 -0
  200. package/dist/components/panes/PlPanes.js +1 -0
  201. package/dist/components/panes/index.d.ts +2 -0
  202. package/dist/components/panes/index.js +1 -0
  203. package/dist/components/pill/PlPill.d.ts +81 -0
  204. package/dist/components/pill/PlPill.js +1 -0
  205. package/dist/components/pill/index.d.ts +2 -0
  206. package/dist/components/pill/index.js +1 -0
  207. package/dist/components/popover/PlPopover.d.ts +107 -0
  208. package/dist/components/popover/PlPopover.js +1 -0
  209. package/dist/components/popover/index.d.ts +2 -0
  210. package/dist/components/popover/index.js +1 -0
  211. package/dist/components/progress-box/PlProgressBox.d.ts +32 -0
  212. package/dist/components/progress-box/PlProgressBox.js +1 -0
  213. package/dist/components/progress-box/index.d.ts +2 -0
  214. package/dist/components/progress-box/index.js +1 -0
  215. package/dist/components/progress-circular/PlProgressCircular.d.ts +22 -0
  216. package/dist/components/progress-circular/PlProgressCircular.js +1 -0
  217. package/dist/components/progress-circular/index.d.ts +2 -0
  218. package/dist/components/progress-circular/index.js +1 -0
  219. package/dist/components/progress-linear/PlProgressLinear.d.ts +31 -0
  220. package/dist/components/progress-linear/PlProgressLinear.js +1 -0
  221. package/dist/components/progress-linear/index.d.ts +2 -0
  222. package/dist/components/progress-linear/index.js +1 -0
  223. package/dist/components/radio-group/PlRadioGroup.d.ts +54 -0
  224. package/dist/components/radio-group/PlRadioGroup.js +1 -0
  225. package/dist/components/radio-group/index.d.ts +2 -0
  226. package/dist/components/radio-group/index.js +1 -0
  227. package/dist/components/rating/PlRating.d.ts +90 -0
  228. package/dist/components/rating/PlRating.js +1 -0
  229. package/dist/components/rating/index.d.ts +2 -0
  230. package/dist/components/rating/index.js +1 -0
  231. package/dist/components/scroll-zone/PlScrollZone.d.ts +132 -0
  232. package/dist/components/scroll-zone/PlScrollZone.js +1 -0
  233. package/dist/components/scroll-zone/index.d.ts +2 -0
  234. package/dist/components/scroll-zone/index.js +1 -0
  235. package/dist/components/segmented-button/PlSegmentedButton.d.ts +79 -0
  236. package/dist/components/segmented-button/PlSegmentedButton.js +1 -0
  237. package/dist/components/segmented-button/index.d.ts +2 -0
  238. package/dist/components/segmented-button/index.js +1 -0
  239. package/dist/components/select/PlSelect.d.ts +77 -0
  240. package/dist/components/select/PlSelect.js +1 -0
  241. package/dist/components/select/index.d.ts +2 -0
  242. package/dist/components/select/index.js +1 -0
  243. package/dist/components/skeleton/PlSkeleton.d.ts +73 -0
  244. package/dist/components/skeleton/PlSkeleton.js +1 -0
  245. package/dist/components/skeleton/index.d.ts +2 -0
  246. package/dist/components/skeleton/index.js +1 -0
  247. package/dist/components/slider/PlSlider.d.ts +44 -0
  248. package/dist/components/slider/PlSlider.js +1 -0
  249. package/dist/components/slider/index.d.ts +2 -0
  250. package/dist/components/slider/index.js +1 -0
  251. package/dist/components/spoiler/PlSpoiler.d.ts +84 -0
  252. package/dist/components/spoiler/PlSpoiler.js +1 -0
  253. package/dist/components/spoiler/index.d.ts +2 -0
  254. package/dist/components/spoiler/index.js +1 -0
  255. package/dist/components/switch/PlSwitch.d.ts +42 -0
  256. package/dist/components/switch/PlSwitch.js +1 -0
  257. package/dist/components/switch/index.d.ts +2 -0
  258. package/dist/components/switch/index.js +1 -0
  259. package/dist/components/table/PlTable.d.ts +112 -0
  260. package/dist/components/table/PlTable.js +1 -0
  261. package/dist/components/table/index.d.ts +2 -0
  262. package/dist/components/table/index.js +1 -0
  263. package/dist/components/tabs/PlTabs.d.ts +94 -0
  264. package/dist/components/tabs/PlTabs.js +1 -0
  265. package/dist/components/tabs/index.d.ts +2 -0
  266. package/dist/components/tabs/index.js +1 -0
  267. package/dist/components/text-field/{TextField.d.ts → PlTextField.d.ts} +5 -5
  268. package/dist/components/text-field/PlTextField.js +1 -0
  269. package/dist/components/text-field/index.d.ts +2 -2
  270. package/dist/components/text-field/index.js +1 -1
  271. package/dist/components/text-link/PlTextLink.d.ts +80 -0
  272. package/dist/components/text-link/PlTextLink.js +1 -0
  273. package/dist/components/text-link/index.d.ts +2 -0
  274. package/dist/components/text-link/index.js +1 -0
  275. package/dist/components/time-picker/PlTimePicker.d.ts +88 -0
  276. package/dist/components/time-picker/PlTimePicker.js +1 -0
  277. package/dist/components/time-picker/index.d.ts +2 -0
  278. package/dist/components/time-picker/index.js +1 -0
  279. package/dist/components/timeline/PlTimeline.d.ts +98 -0
  280. package/dist/components/timeline/PlTimeline.js +1 -0
  281. package/dist/components/timeline/index.d.ts +2 -0
  282. package/dist/components/timeline/index.js +1 -0
  283. package/dist/components/toast/PlToast.d.ts +122 -0
  284. package/dist/components/toast/PlToast.js +1 -0
  285. package/dist/components/toast/index.d.ts +2 -0
  286. package/dist/components/toast/index.js +1 -0
  287. package/dist/components/toolbar/PlToolbar.d.ts +68 -0
  288. package/dist/components/toolbar/PlToolbar.js +1 -0
  289. package/dist/components/toolbar/index.d.ts +2 -0
  290. package/dist/components/toolbar/index.js +1 -0
  291. package/dist/components/tooltip/PlTooltip.d.ts +92 -0
  292. package/dist/components/tooltip/PlTooltip.js +1 -0
  293. package/dist/components/tooltip/index.d.ts +2 -0
  294. package/dist/components/tooltip/index.js +1 -0
  295. package/dist/components/typography/PlTypography.d.ts +66 -0
  296. package/dist/components/typography/PlTypography.js +1 -0
  297. package/dist/components/typography/index.d.ts +2 -0
  298. package/dist/components/typography/index.js +1 -0
  299. package/dist/css/accordion.css +2 -0
  300. package/dist/css/alert.css +2 -0
  301. package/dist/css/animate-appear.css +2 -0
  302. package/dist/css/animate-blink.css +2 -0
  303. package/dist/css/animate-fade.css +2 -0
  304. package/dist/css/animate-grow.css +2 -0
  305. package/dist/css/animate-headline.css +2 -0
  306. package/dist/css/animate-lighting.css +2 -0
  307. package/dist/css/animate-marquee.css +2 -0
  308. package/dist/css/animate-rotate.css +2 -0
  309. package/dist/css/animate-slide.css +2 -0
  310. package/dist/css/animate-typing.css +2 -0
  311. package/dist/css/animate-zoom.css +2 -0
  312. package/dist/css/aspect-ratio.css +2 -0
  313. package/dist/css/avatar.css +2 -0
  314. package/dist/css/badge.css +2 -0
  315. package/dist/css/base.css +4 -0
  316. package/dist/css/blockquote.css +2 -0
  317. package/dist/css/bottom-navigation.css +2 -0
  318. package/dist/css/box.css +2 -0
  319. package/dist/css/breadcrumb.css +2 -0
  320. package/dist/css/button-group.css +2 -0
  321. package/dist/css/button.css +2 -0
  322. package/dist/css/card.css +2 -0
  323. package/dist/css/carousel.css +2 -0
  324. package/dist/css/chat-bubble.css +2 -0
  325. package/dist/css/checkbox.css +2 -0
  326. package/dist/css/chip.css +2 -0
  327. package/dist/css/collapsible.css +2 -0
  328. package/dist/css/combobox.css +2 -0
  329. package/dist/css/container.css +2 -0
  330. package/dist/css/date-picker.css +2 -0
  331. package/dist/css/date-range-picker.css +2 -0
  332. package/dist/css/date-time-picker.css +2 -0
  333. package/dist/css/divider.css +2 -0
  334. package/dist/css/drawer.css +2 -0
  335. package/dist/css/file-picker.css +2 -0
  336. package/dist/css/floating-bottom-navigation.css +2 -0
  337. package/dist/css/grid.css +2 -0
  338. package/dist/css/highlight.css +2 -0
  339. package/dist/css/hot-keys.css +2 -0
  340. package/dist/css/icon-button.css +2 -0
  341. package/dist/css/icon.css +2 -0
  342. package/dist/css/list.css +2 -0
  343. package/dist/css/menu.css +2 -0
  344. package/dist/css/modal.css +2 -0
  345. package/dist/css/number-field.css +2 -0
  346. package/dist/css/otp-field.css +2 -0
  347. package/dist/css/overlay.css +2 -0
  348. package/dist/css/pagination.css +2 -0
  349. package/dist/css/panes.css +2 -0
  350. package/dist/css/pill.css +2 -0
  351. package/dist/css/popover.css +2 -0
  352. package/dist/css/progress-box.css +2 -0
  353. package/dist/css/progress-circular.css +2 -0
  354. package/dist/css/progress-linear.css +2 -0
  355. package/dist/css/radio-group.css +2 -0
  356. package/dist/css/rating.css +2 -0
  357. package/dist/css/scroll-zone.css +2 -0
  358. package/dist/css/segmented-button.css +2 -0
  359. package/dist/css/select.css +2 -0
  360. package/dist/css/skeleton.css +2 -0
  361. package/dist/css/slider.css +2 -0
  362. package/dist/css/spoiler.css +2 -0
  363. package/dist/css/switch.css +2 -0
  364. package/dist/css/table.css +2 -0
  365. package/dist/css/tabs.css +2 -0
  366. package/dist/css/text-field.css +2 -0
  367. package/dist/css/text-link.css +2 -0
  368. package/dist/css/time-picker.css +2 -0
  369. package/dist/css/timeline.css +2 -0
  370. package/dist/css/toast.css +2 -0
  371. package/dist/css/toolbar.css +2 -0
  372. package/dist/css/tooltip.css +2 -0
  373. package/dist/css/typography.css +2 -0
  374. package/dist/index.d.ts +75 -3
  375. package/dist/index.js +1 -1
  376. package/dist/internal/animate.d.ts +161 -0
  377. package/dist/internal/animate.js +1 -0
  378. package/dist/internal/button-group.d.ts +27 -0
  379. package/dist/internal/button-group.js +2 -0
  380. package/dist/internal/calendar.d.ts +148 -0
  381. package/dist/internal/calendar.js +1 -0
  382. package/dist/internal/date.d.ts +173 -0
  383. package/dist/internal/date.js +1 -0
  384. package/dist/internal/format.d.ts +24 -0
  385. package/dist/internal/format.js +1 -0
  386. package/dist/internal/grid.d.ts +67 -0
  387. package/dist/internal/grid.js +1 -0
  388. package/dist/internal/icons.d.ts +86 -1
  389. package/dist/internal/icons.js +1 -1
  390. package/dist/internal/menu.d.ts +20 -0
  391. package/dist/internal/menu.js +1 -0
  392. package/dist/internal/picker.d.ts +118 -0
  393. package/dist/internal/picker.js +1 -0
  394. package/dist/internal/progress.d.ts +145 -0
  395. package/dist/internal/progress.js +1 -0
  396. package/dist/internal/sizer.d.ts +32 -0
  397. package/dist/internal/sizer.js +1 -0
  398. package/dist/internal/styles.d.ts +198 -8
  399. package/dist/internal/styles.js +1 -1
  400. package/dist/styles.css +1 -1
  401. package/dist/tailwind.css +899 -125
  402. package/dist/tokens.css +1275 -0
  403. package/dist/types.d.ts +150 -8
  404. package/dist/types.js +0 -8
  405. package/package.json +32 -27
  406. package/README.md +0 -111
  407. package/dist/components/button/Button.js +0 -1
  408. package/dist/components/text-field/TextField.js +0 -1
@@ -0,0 +1 @@
1
+ "use client";import{jsx as t}from"react/jsx-runtime";import*as o from"react";import{PlButton as r}from"../button/PlButton.js";export const PlIconButton=/* @__PURE__ */o.forwardRef(function PlIconButton({icon:o,label:e,style:n,...a},s){return t(r,{ref:s,"aria-label":e,startIcon:o,style:{borderRadius:"9999px",...n},...a})});
@@ -0,0 +1,2 @@
1
+ export { PlIconButton } from './PlIconButton.js';
2
+ export type { PlIconButtonProps } from './PlIconButton.js';
@@ -0,0 +1 @@
1
+ export{PlIconButton}from"./PlIconButton.js";
@@ -0,0 +1,82 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassElevation, PlassStyleProps } from '../../types.js';
4
+ export interface PlListProps extends PlassStyleProps, Omit<React.ComponentPropsWithoutRef<'ul'>, 'color'> {
5
+ /**
6
+ * Drop shadow depth. `0` is the default — a list is a sheet lying flat, not a
7
+ * key resting on one.
8
+ * @default 0
9
+ */
10
+ elevation?: PlassElevation;
11
+ /**
12
+ * Separates the rows with a hairline instead of with space.
13
+ *
14
+ * It changes more than it sounds like: with dividers the rules have to reach
15
+ * both edges of the sheet, so the list gives up its inner padding and the rows
16
+ * give up their rounded corners. A row cannot be a floating tile and a ruled
17
+ * line at the same time.
18
+ * @default false
19
+ */
20
+ dividers?: boolean;
21
+ /**
22
+ * Renders something other than a `<ul>` — `render={<ol />}` for a list where
23
+ * the order is the point. Base UI's own escape hatch.
24
+ */
25
+ render?: useRender.RenderProp;
26
+ children?: React.ReactNode;
27
+ }
28
+ export interface PlListItemProps extends Omit<React.ComponentPropsWithoutRef<'li'>, 'color' | 'onClick'> {
29
+ /**
30
+ * Passing it is what turns the row into a real `<button>`. It lands on that
31
+ * button rather than on the `<li>`, which is why the type is loosened from the
32
+ * list item the shell actually is.
33
+ */
34
+ onClick?: React.MouseEventHandler<HTMLElement>;
35
+ /** Content before the label — an icon, an avatar, a status dot. */
36
+ startIcon?: React.ReactNode;
37
+ /** Content after the label, inside the pressable area. */
38
+ endIcon?: React.ReactNode;
39
+ /** A second line under the label, one step down the type scale and muted. */
40
+ description?: React.ReactNode;
41
+ /**
42
+ * A control pinned to the end of the row — a switch, a menu button.
43
+ *
44
+ * Deliberately outside the pressable area: a row that both navigates and holds
45
+ * a toggle has two things to press, and nesting one button inside another is
46
+ * markup the browser rewrites on parse.
47
+ */
48
+ action?: React.ReactNode;
49
+ /** Renders the row as a link. Mutually exclusive with `onClick` in practice. */
50
+ href?: string;
51
+ /** Marks the row as the chosen one — the open page, the current filter. */
52
+ selected?: boolean;
53
+ /** Unavailable. The light goes out, the same way it does everywhere else. */
54
+ disabled?: boolean;
55
+ /** The label. */
56
+ children?: React.ReactNode;
57
+ }
58
+ /**
59
+ * A stack of rows.
60
+ *
61
+ * The list is a sheet and the rows are what is on it, which is the whole reason
62
+ * the two are separate components: `size` and `density` are properties of the
63
+ * stack, not of any one line in it, and a context is what carries them down.
64
+ *
65
+ * There is no Base UI primitive under this on purpose. A list is not a composite
66
+ * widget — it has no roving focus, no selection model, no keyboard contract of
67
+ * its own. Reaching for a menu or a listbox primitive to get one would hand
68
+ * every consumer's plain list of links the semantics of a menu, which is the
69
+ * most common way a component library breaks a screen reader.
70
+ */
71
+ export declare const PlList: React.ForwardRefExoticComponent<PlListProps & React.RefAttributes<HTMLUListElement>>;
72
+ /**
73
+ * One row.
74
+ *
75
+ * The shell is always an `<li>`. What changes is what is inside it: a plain run
76
+ * of content, or — when `onClick` or `href` is given — a real `<button>` or
77
+ * `<a>` wrapping that content, with `action` sitting outside it as a separate
78
+ * control. This is the same shape a `PlChip` uses, for the same two reasons: a
79
+ * `<span>` carrying a click handler is invisible to a keyboard, and a
80
+ * `<button>` inside a `<button>` is markup the browser silently un-nests.
81
+ */
82
+ export declare const PlListItem: React.ForwardRefExoticComponent<PlListItemProps & React.RefAttributes<HTMLLIElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as s,Fragment as l}from"react/jsx-runtime";import*as r from"react";import{useRender as t}from"@base-ui/react/use-render";import{focusRingClasses as a,gapClasses as i,glassClasses as n,hasContent as o,iconClasses as d,metaTextClasses as c,paddingXClasses as p,radiusClasses as m,sheetBodyClasses as f,surfaceSlots as x,transitionClasses as u}from"../../internal/styles.js";const h=/* @__PURE__ */r.createContext({size:"md",density:"default",dividers:!1}),g={solid:/* @__PURE__ */[n,"text-(--plass-fg) bg-(--plass-glass-press)","[box-shadow:var(--p-elev),var(--plass-gloss-glass)]"].join(" "),glass:/* @__PURE__ */[n,"border text-(--plass-fg) bg-(--plass-glass)","[border-color:var(--plass-glass-line)]","[box-shadow:var(--p-elev),var(--plass-gloss-glass)]"].join(" "),ghost:"text-(--plass-fg) bg-transparent"},v={default:{xs:"py-1",sm:"py-1.5",md:"py-2",lg:"py-2.5",xl:"py-3"},compact:{xs:"py-0.5",sm:"py-0.5",md:"py-1",lg:"py-1.5",xl:"py-2"}},y=p,b={xs:m.xs,sm:m.xs,md:m.sm,lg:m.sm,xl:m.md};export const PlList=/* @__PURE__ */r.forwardRef(function PlList({variant:s="glass",size:l="md",color:a="primary",density:i="default",elevation:n=0,dividers:o=!1,render:d,className:c,style:p,children:f,...v},y){const b=r.useMemo(()=>({size:l,density:i,dividers:o}),[l,i,o]),N=["flex flex-col",m[l],g[s],u,o?"overflow-hidden [&>li+li]:border-t [&>li+li]:[border-color:var(--plass-divider)]":"p-1",c??""].filter(Boolean).join(" "),j=t({render:d,ref:y,props:{role:"list",className:N,style:{...x(a,n),...p},children:f,...v}});return e(h.Provider,{value:b,children:j})});export const PlListItem=/* @__PURE__ */r.forwardRef(function PlListItem({startIcon:t,endIcon:n,description:p,action:m,href:x,selected:g=!1,disabled:N=!1,className:j,children:w,onClick:k,...C},P){const{size:z,density:B,dividers:I}=r.useContext(h),L=Boolean(k||x)&&!N,$=y[B][z],R=["flex min-w-0 flex-1 items-center text-start",$,v[B][z],i[z],f[z],u,d,I?"":b[z],N?"cursor-not-allowed opacity-50 saturate-[0.35]":g?"bg-(--p-soft-press) font-medium text-(--p-accent)":"",L?`cursor-pointer ${a}`:"",L&&!g?"hover:bg-(--p-soft)":"",L&&g?"hover:bg-(--p-soft-press)":""].filter(Boolean).join(" "),F=s(l,{children:[o(t)?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--plass-muted-fg)",children:t}):null,s("span",{className:"flex min-w-0 flex-1 flex-col",children:[o(w)?e("span",{className:"truncate",children:w}):null,o(p)?e("span",{className:`truncate text-(--plass-muted-fg) ${c[z]}`,children:p}):null]}),o(n)?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--plass-muted-fg)",children:n}):null]});return s("li",{ref:P,className:["flex w-full items-center",j??""].filter(Boolean).join(" "),...C,children:[L&&x?e("a",{href:x,className:R,"aria-current":g?"page":void 0,onClick:k,children:F}):L?e("button",{type:"button",className:R,"aria-current":!!g||void 0,onClick:k,children:F}):e("div",{className:R,"aria-disabled":N||void 0,children:F}),o(m)?e("div",{className:`flex shrink-0 items-center ${$}`,children:m}):null]})});
@@ -0,0 +1,2 @@
1
+ export { PlList, PlListItem } from './PlList.js';
2
+ export type { PlListItemProps, PlListProps } from './PlList.js';
@@ -0,0 +1 @@
1
+ export{PlList,PlListItem}from"./PlList.js";
@@ -0,0 +1,210 @@
1
+ import * as React from 'react';
2
+ import type { PlassAlign, PlassColor, PlassSide, PlassStyleProps } from '../../types.js';
3
+ /**
4
+ * A menu takes `size`, `color` and `density` and stops there.
5
+ *
6
+ * There is no `variant`, for the reason `PlModal` has none: the three materials
7
+ * answer "how much does this surface assert itself against the page", and a
8
+ * popup that has taken the pointer has already answered it. There is no
9
+ * `elevation` either — a menu genuinely floats, which is the one case the
10
+ * ladder exists for, so it is fixed at its top rung.
11
+ */
12
+ interface MenuSurfaceProps extends Pick<PlassStyleProps, 'size' | 'color' | 'density'> {
13
+ className?: string;
14
+ style?: React.CSSProperties;
15
+ }
16
+ export interface PlMenuProps extends MenuSurfaceProps {
17
+ /**
18
+ * The element that opens the menu, wired up by Base UI. Optional — a
19
+ * controlled menu opened from elsewhere needs no trigger of its own.
20
+ */
21
+ trigger?: React.ReactElement;
22
+ /** Whether the menu is open. Use with `onOpenChange` for a controlled menu. */
23
+ open?: boolean;
24
+ /** Whether it starts open, for an uncontrolled one. */
25
+ defaultOpen?: boolean;
26
+ onOpenChange?: (open: boolean) => void;
27
+ /** Which edge of the trigger it hangs off. @default 'bottom' */
28
+ side?: PlassSide;
29
+ /** Where it sits along that edge. @default 'start' */
30
+ align?: PlassAlign;
31
+ /** Distance from the trigger, in pixels. @default 6 */
32
+ sideOffset?: number;
33
+ /** Whether the page behind is taken away while the menu is open. @default true */
34
+ modal?: boolean;
35
+ /**
36
+ * Opens on hover as well as on click. For a menu bar, where crossing the row
37
+ * with an open menu should walk through the others rather than close them.
38
+ * @default false
39
+ */
40
+ openOnHover?: boolean;
41
+ /** Whether the arrow keys wrap from the last row back to the first. @default true */
42
+ loopFocus?: boolean;
43
+ /** Unavailable. The trigger stops opening anything. */
44
+ disabled?: boolean;
45
+ /** The rows. */
46
+ children?: React.ReactNode;
47
+ }
48
+ export interface PlContextMenuProps extends MenuSurfaceProps {
49
+ /** The rows, exactly as they are written inside a `PlMenu`. */
50
+ content: React.ReactNode;
51
+ /**
52
+ * The area that answers a right-click or a long press. Rendered inside a
53
+ * `<div>` of Base UI's, which is what listens for the gesture.
54
+ */
55
+ children: React.ReactNode;
56
+ open?: boolean;
57
+ defaultOpen?: boolean;
58
+ onOpenChange?: (open: boolean) => void;
59
+ /** @default true */
60
+ loopFocus?: boolean;
61
+ disabled?: boolean;
62
+ }
63
+ export interface PlMenuItemProps {
64
+ /** What the row does. Not given, and not a link, the row is a label. */
65
+ onClick?: (event: React.MouseEvent<HTMLElement>) => void;
66
+ /** Renders the row as a real `<a>`. A menu of links has to be links. */
67
+ href?: string;
68
+ /** Where the link opens — `_blank` and the rest. Ignored without `href`. */
69
+ target?: string;
70
+ /** Content before the label — an icon, a swatch, a check. */
71
+ startIcon?: React.ReactNode;
72
+ /** Content after the label, before any `shortcut`. */
73
+ endIcon?: React.ReactNode;
74
+ /**
75
+ * The keystroke that does the same thing, set at the end of the row and
76
+ * muted. Text only — the row does not bind it, the application does.
77
+ */
78
+ shortcut?: React.ReactNode;
79
+ /** A second line under the label, one step down the type scale and muted. */
80
+ description?: React.ReactNode;
81
+ /**
82
+ * Re-points the row's colour family — `danger` for the one that deletes.
83
+ * Defaults to the menu's own.
84
+ */
85
+ color?: PlassColor;
86
+ /** Whether picking the row closes the menu. @default true */
87
+ closeOnClick?: boolean;
88
+ /** Unavailable. Still listed, and still found by typeahead. */
89
+ disabled?: boolean;
90
+ /** What typeahead matches against, when the label is not a plain string. */
91
+ label?: string;
92
+ /** The label. */
93
+ children?: React.ReactNode;
94
+ className?: string;
95
+ style?: React.CSSProperties;
96
+ }
97
+ export interface PlMenuSubmenuProps {
98
+ /** The label on the row that opens it. */
99
+ label?: React.ReactNode;
100
+ startIcon?: React.ReactNode;
101
+ disabled?: boolean;
102
+ /** Which edge of the parent row it opens against. @default 'right' */
103
+ side?: PlassSide;
104
+ /** Distance from the parent menu, in pixels. @default 4 */
105
+ sideOffset?: number;
106
+ /** The nested rows. */
107
+ children?: React.ReactNode;
108
+ className?: string;
109
+ style?: React.CSSProperties;
110
+ }
111
+ export interface PlMenuGroupProps {
112
+ /** The heading over the group. Wired to it by Base UI. */
113
+ label?: React.ReactNode;
114
+ children?: React.ReactNode;
115
+ className?: string;
116
+ }
117
+ export interface PlMenuCheckboxItemProps extends Omit<PlMenuItemProps, 'href' | 'target' | 'startIcon' | 'onClick'> {
118
+ checked?: boolean;
119
+ defaultChecked?: boolean;
120
+ onCheckedChange?: (checked: boolean) => void;
121
+ /**
122
+ * Whether ticking the row closes the menu. `false` here, against the `true` a
123
+ * plain row takes: a list of things to tick is a list you tick more than one
124
+ * of.
125
+ * @default false
126
+ */
127
+ closeOnClick?: boolean;
128
+ }
129
+ export interface PlMenuRadioGroupProps {
130
+ value?: string | number;
131
+ defaultValue?: string | number;
132
+ onValueChange?: (value: string | number) => void;
133
+ disabled?: boolean;
134
+ children?: React.ReactNode;
135
+ className?: string;
136
+ }
137
+ export interface PlMenuRadioItemProps extends Omit<PlMenuItemProps, 'href' | 'target' | 'startIcon' | 'onClick'> {
138
+ /** What this row sets the group to. */
139
+ value: string | number;
140
+ /** @default false */
141
+ closeOnClick?: boolean;
142
+ }
143
+ export type PlMenuSeparatorProps = React.ComponentPropsWithoutRef<'div'>;
144
+ /**
145
+ * One row of a menu.
146
+ *
147
+ * Renders a real `<a>` when it is given an `href` and Base UI's own item
148
+ * otherwise — the same split `PlListItem` makes, for the same reason. A menu of
149
+ * links that are not links cannot be opened in a new tab, cannot be copied, and
150
+ * tells a screen reader the wrong thing about every one of them.
151
+ */
152
+ export declare function PlMenuItem({ onClick, href, target, startIcon, endIcon, shortcut, description, color, closeOnClick, disabled, label, children, className, style }: PlMenuItemProps): React.JSX.Element;
153
+ /** A row that ticks. The tick lands in the same slot a `startIcon` would. */
154
+ export declare function PlMenuCheckboxItem({ checked, defaultChecked, onCheckedChange, endIcon, shortcut, description, color, closeOnClick, disabled, label, children, className, style }: PlMenuCheckboxItemProps): React.JSX.Element;
155
+ /** One choice out of a set. Wraps the rows that make up the set. */
156
+ export declare function PlMenuRadioGroup({ value, defaultValue, onValueChange, disabled, children, className }: PlMenuRadioGroupProps): React.JSX.Element;
157
+ /**
158
+ * A row inside a `PlMenuRadioGroup`.
159
+ *
160
+ * Marked with a dot rather than a tick, which is the same distinction
161
+ * `PlCheckbox` and `PlRadioGroup` make everywhere else: a tick says "and", a dot
162
+ * says "instead of".
163
+ */
164
+ export declare function PlMenuRadioItem({ value, endIcon, shortcut, description, color, closeOnClick, disabled, label, children, className, style }: PlMenuRadioItemProps): React.JSX.Element;
165
+ /** A named run of rows. The label is a heading, not a row — it cannot be picked. */
166
+ export declare function PlMenuGroup({ label, children, className }: PlMenuGroupProps): React.JSX.Element;
167
+ /** The hairline between two runs of rows. */
168
+ export declare function PlMenuSeparator({ className, ...props }: PlMenuSeparatorProps): React.JSX.Element;
169
+ /**
170
+ * A menu inside a menu.
171
+ *
172
+ * The row that opens it is the same row every other item is, wearing a chevron —
173
+ * and it opens on hover, on <kbd>Enter</kbd> and on the arrow key that points at
174
+ * it, all of which is Base UI's. What is here is the surface and the glyph.
175
+ *
176
+ * Nesting is unlimited: a `PlMenuSubmenu` renders its children inside a popup
177
+ * that is itself a menu, so a submenu of a submenu needs no different component.
178
+ */
179
+ export declare function PlMenuSubmenu({ label, startIcon, disabled, side, sideOffset, children, className, style }: PlMenuSubmenuProps): React.JSX.Element;
180
+ /**
181
+ * A list of actions that appears when something is pressed.
182
+ *
183
+ * Everything that makes a menu a menu rather than a floating list of `<div>`s is
184
+ * Base UI's: roving focus with the arrow keys, <kbd>Home</kbd> and
185
+ * <kbd>End</kbd>, typeahead, <kbd>Esc</kbd>, closing on an outside click,
186
+ * restoring focus to the trigger, submenus opening on hover with the safe
187
+ * triangle so a diagonal reach does not close them, and the `menu` / `menuitem`
188
+ * roles that make any of it mean something to a screen reader. What is here is
189
+ * the surface, the ladders and the row layout.
190
+ *
191
+ * The rows are **composed rather than passed as data** — the opposite of
192
+ * `PlSelect`, and deliberately. A select's options are values from a list a
193
+ * caller already has; a menu's rows are *code*, each one a different handler, a
194
+ * different icon, sometimes a submenu. Data would mean an `items` type with a
195
+ * variant for every shape a row can take, which is a component tree spelled as a
196
+ * discriminated union.
197
+ */
198
+ export declare function PlMenu({ size, color, density, trigger, open, defaultOpen, onOpenChange, side, align, sideOffset, modal, openOnHover, loopFocus, disabled, className, style, children }: PlMenuProps): React.JSX.Element;
199
+ /**
200
+ * The same menu, opened by a right-click or a long press instead of by a button.
201
+ *
202
+ * It takes the rows as `content` and the area as `children`, which is
203
+ * `PlTooltip`'s shape rather than `PlMenu`'s — because here the trigger is not
204
+ * one element you hand over, it is a region of the page, and the region is the
205
+ * thing being wrapped. Base UI positions the popup at the pointer rather than
206
+ * against an anchor, and the long press is what makes it reachable on a touch
207
+ * screen at all.
208
+ */
209
+ export declare function PlContextMenu({ size, color, density, content, children, open, defaultOpen, onOpenChange, loopFocus, disabled, className, style }: PlContextMenuProps): React.JSX.Element;
210
+ export {};
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as s,Fragment as l}from"react/jsx-runtime";import*as n from"react";import{Menu as a}from"@base-ui/react/menu";import{ContextMenu as t}from"@base-ui/react/context-menu";import{MenuContext as o}from"../../internal/menu.js";import{CheckIcon as r,ChevronIcon as i,DotIcon as c}from"../../internal/icons.js";import{controlTextLeadingClasses as d,cx as p,gapClasses as u,glassClasses as m,hasContent as h,iconClasses as x,metaTextClasses as f,radiusClasses as g,surfaceSlots as y,transitionClasses as b}from"../../internal/styles.js";const C=/* @__PURE__ */[m,"max-h-[min(24rem,var(--available-height))] min-w-40 overflow-y-auto overscroll-contain","border bg-(--plass-glass-press) p-1","[border-color:var(--plass-glass-line)]","[box-shadow:var(--plass-shadow-3),var(--plass-gloss-glass)]","[outline:none]","[transition:opacity_var(--plass-duration)_var(--plass-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"].join(" "),N={default:{xs:"px-1.5 py-0.5",sm:"px-2 py-1",md:"px-2.5 py-1.5",lg:"px-3 py-2",xl:"px-3.5 py-2.5"},compact:{xs:"px-1 py-0.5",sm:"px-1.5 py-0.5",md:"px-2 py-1",lg:"px-2.5 py-1",xl:"px-3 py-1.5"}},v={xs:g.xs,sm:g.xs,md:g.sm,lg:g.sm,xl:g.md};function rowClasses(e,s,l,n){return p("relative flex w-full cursor-pointer items-center select-none",l?"text-(--p-accent)":"text-(--plass-fg)",N[s][e],v[e],u[e],d[e],b,x,"data-[highlighted]:bg-(--p-soft-hover)","data-[popup-open]:bg-(--p-soft)","data-[disabled]:cursor-not-allowed data-[disabled]:opacity-50","[outline:none]",n)}const k="flex h-[1lh] w-[1.2em] shrink-0 items-center justify-center";function shortcutClasses(e){return p("ms-2 shrink-0 text-(--plass-muted-fg) tabular-nums",f[e])}function RowBody({children:l,description:n,size:a}){return h(n)?s("span",{className:"flex min-w-0 flex-1 flex-col text-start",children:[e("span",{className:"truncate",children:l}),e("span",{className:p("truncate text-(--plass-muted-fg)",f[a]),children:n})]}):e("span",{className:"min-w-0 flex-1 truncate text-start",children:l})}export function PlMenuItem({onClick:t,href:r,target:i,startIcon:c,endIcon:d,shortcut:u,description:m,color:x,closeOnClick:f=!0,disabled:g=!1,label:b,children:C,className:N,style:v}){const{size:w,density:O}=n.useContext(o),P=s(l,{children:[h(c)?e("span",{className:p(k,"text-(--plass-muted-fg)"),children:c}):null,e(RowBody,{description:m,size:w,children:C}),h(d)?e("span",{className:p(k,"text-(--plass-muted-fg)"),children:d}):null,h(u)?e("span",{className:shortcutClasses(w),children:u}):null]}),z=x?y(x,0):void 0,I=z||v?{...z,...v}:void 0;return void 0!==r?e(a.LinkItem,{href:r,target:i,label:b,closeOnClick:f,onClick:t,className:rowClasses(w,O,Boolean(x),N),style:I,children:P}):e(a.Item,{disabled:g,label:b,closeOnClick:f,onClick:t,className:rowClasses(w,O,Boolean(x),N),style:I,children:P})}export function PlMenuCheckboxItem({checked:l,defaultChecked:t,onCheckedChange:i,endIcon:c,shortcut:d,description:u,color:m,closeOnClick:x=!1,disabled:f=!1,label:g,children:b,className:C,style:N}){const{size:v,density:w}=n.useContext(o),O=m?y(m,0):void 0;return s(a.CheckboxItem,{checked:l,defaultChecked:t,onCheckedChange:e=>i?.(e),disabled:f,label:g,closeOnClick:x,className:rowClasses(v,w,Boolean(m),C),style:O||N?{...O,...N}:void 0,children:[e("span",{className:p(k,"text-(--p-accent)"),children:e(a.CheckboxItemIndicator,{className:"flex items-center justify-center",children:e(r,{})})}),e(RowBody,{description:u,size:v,children:b}),h(c)?e("span",{className:p(k,"text-(--plass-muted-fg)"),children:c}):null,h(d)?e("span",{className:shortcutClasses(v),children:d}):null]})}export function PlMenuRadioGroup({value:s,defaultValue:l,onValueChange:n,disabled:t=!1,children:o,className:r}){return e(a.RadioGroup,{value:s,defaultValue:l,onValueChange:e=>n?.(e),disabled:t,className:r,children:o})}export function PlMenuRadioItem({value:l,endIcon:t,shortcut:r,description:i,color:d,closeOnClick:u=!1,disabled:m=!1,label:x,children:f,className:g,style:b}){const{size:C,density:N}=n.useContext(o),v=d?y(d,0):void 0;return s(a.RadioItem,{value:l,disabled:m,label:x,closeOnClick:u,className:rowClasses(C,N,Boolean(d),g),style:v||b?{...v,...b}:void 0,children:[e("span",{className:p(k,"text-(--p-accent)"),children:e(a.RadioItemIndicator,{className:"flex items-center justify-center",children:e(c,{})})}),e(RowBody,{description:i,size:C,children:f}),h(t)?e("span",{className:p(k,"text-(--plass-muted-fg)"),children:t}):null,h(r)?e("span",{className:shortcutClasses(C),children:r}):null]})}export function PlMenuGroup({label:l,children:t,className:r}){const{size:i,density:c}=n.useContext(o);return s(a.Group,{className:r,children:[h(l)?e(a.GroupLabel,{className:p(N[c][i],f[i],"font-semibold tracking-wide text-(--plass-muted-fg) uppercase"),children:l}):null,t]})}export function PlMenuSeparator({className:s,...l}){return e(a.Separator,{className:p("-mx-1 my-1 h-px bg-(--plass-divider)",s),...l})}export function PlMenuSubmenu({label:l,startIcon:t,disabled:r=!1,side:c="right",sideOffset:u=4,children:m,className:x,style:f}){const{size:b,density:N,color:v}=n.useContext(o);return s(a.SubmenuRoot,{children:[s(a.SubmenuTrigger,{disabled:r,className:rowClasses(b,N,!1),children:[h(t)?e("span",{className:p(k,"text-(--plass-muted-fg)"),children:t}):null,e("span",{className:"min-w-0 flex-1 truncate text-start",children:l}),e("span",{className:p(k,"text-(--plass-muted-fg) -rotate-90"),children:e(i,{})})]}),e(a.Portal,{children:e(a.Positioner,{className:"plass-portal z-50 [outline:none]",side:c,sideOffset:u,align:"start",children:e(a.Popup,{className:p(C,g[b],d[b],x),style:{...y(v,3),...f},children:m})})})]})}export function PlMenu({size:l="md",color:t="primary",density:r="default",trigger:i,open:c,defaultOpen:u,onOpenChange:m,side:h="bottom",align:x="start",sideOffset:f=6,modal:b=!0,openOnHover:N=!1,loopFocus:v=!0,disabled:k=!1,className:w,style:O,children:P}){const z=n.useMemo(()=>({size:l,color:t,density:r}),[l,t,r]);return e(o.Provider,{value:z,children:s(a.Root,{open:c,defaultOpen:u,onOpenChange:e=>m?.(e),modal:b,loopFocus:v,disabled:k,children:[i?e(a.Trigger,{render:i,openOnHover:N,disabled:k}):null,e(a.Portal,{children:e(a.Positioner,{className:"plass-portal z-50 [outline:none]",side:h,align:x,sideOffset:f,children:e(a.Popup,{className:p(C,g[l],d[l],w),style:{...y(t,3),...O},children:P})})})]})})}export function PlContextMenu({size:l="md",color:a="primary",density:r="default",content:i,children:c,open:u,defaultOpen:m,onOpenChange:h,loopFocus:x=!0,disabled:f=!1,className:b,style:N}){const v=n.useMemo(()=>({size:l,color:a,density:r}),[l,a,r]);return e(o.Provider,{value:v,children:s(t.Root,{open:u,defaultOpen:m,onOpenChange:e=>h?.(e),loopFocus:x,disabled:f,children:[e(t.Trigger,{children:c}),e(t.Portal,{children:e(t.Positioner,{className:"plass-portal z-50 [outline:none]",children:e(t.Popup,{className:p(C,g[l],d[l],b),style:{...y(a,3),...N},children:i})})})]})})}
@@ -0,0 +1,2 @@
1
+ export { PlContextMenu, PlMenu, PlMenuCheckboxItem, PlMenuGroup, PlMenuItem, PlMenuRadioGroup, PlMenuRadioItem, PlMenuSeparator, PlMenuSubmenu } from './PlMenu.js';
2
+ export type { PlContextMenuProps, PlMenuCheckboxItemProps, PlMenuGroupProps, PlMenuItemProps, PlMenuProps, PlMenuRadioGroupProps, PlMenuRadioItemProps, PlMenuSeparatorProps, PlMenuSubmenuProps } from './PlMenu.js';
@@ -0,0 +1 @@
1
+ export{PlContextMenu,PlMenu,PlMenuCheckboxItem,PlMenuGroup,PlMenuItem,PlMenuRadioGroup,PlMenuRadioItem,PlMenuSeparator,PlMenuSubmenu}from"./PlMenu.js";
@@ -0,0 +1,112 @@
1
+ import * as React from 'react';
2
+ import { Dialog as BaseUIDialog } from '@base-ui/react/dialog';
3
+ import type { PlassStyleProps } from '../../types.js';
4
+ /**
5
+ * A modal takes `size`, `color` and `density` and stops there.
6
+ *
7
+ * There is no `variant`: the three materials answer "how much does this surface
8
+ * assert itself against the page around it", and a modal has already taken the
9
+ * page. There is no `elevation` either — see `popupClasses`.
10
+ */
11
+ export interface PlModalProps extends Pick<PlassStyleProps, 'size' | 'color' | 'density'>, Omit<React.ComponentPropsWithoutRef<'div'>, 'color' | 'title' | 'children'> {
12
+ /** The modal is shown. Use with `onOpenChange` for a controlled modal. */
13
+ open?: boolean;
14
+ /** Whether it starts open, for an uncontrolled one. */
15
+ defaultOpen?: boolean;
16
+ onOpenChange?: (open: boolean) => void;
17
+ /**
18
+ * The element that opens the modal, wired up by Base UI. Optional — a
19
+ * controlled modal opened from somewhere else in the app needs no trigger at
20
+ * all, and passing one here is only a convenience for the common case.
21
+ */
22
+ trigger?: React.ReactElement;
23
+ /** The heading. Rendered as the `<h2>` that names the modal. */
24
+ title?: React.ReactNode;
25
+ /** A line under the title, and the modal's accessible description. */
26
+ description?: React.ReactNode;
27
+ /**
28
+ * The bottom row. Laid out end-aligned, so a pair of buttons needs no wrapper
29
+ * of its own — and `PlModalClose` is what makes one of them dismiss.
30
+ */
31
+ actions?: React.ReactNode;
32
+ /**
33
+ * Scores the sheet between the header, the body and the actions instead of
34
+ * separating them with space. Worth turning on the moment the body scrolls:
35
+ * the lines are what say the header stayed put.
36
+ * @default false
37
+ */
38
+ dividers?: boolean;
39
+ /**
40
+ * Shows the × in the corner.
41
+ *
42
+ * On by default, unlike most booleans in the library. A modal takes the page
43
+ * away until it is answered, and the visible way out should not have to be
44
+ * remembered.
45
+ * @default true
46
+ */
47
+ showClose?: boolean;
48
+ /**
49
+ * Accessible name of the × button. Never drawn.
50
+ * @default 'Close'
51
+ */
52
+ closeLabel?: string;
53
+ /**
54
+ * A hard cap on the sheet's width, overriding the one `size` implies. Numbers
55
+ * are pixels. For the modal whose content decides its width — a wide table, a
56
+ * narrow confirmation — rather than for tuning the scale, which is `size`.
57
+ */
58
+ width?: number | string;
59
+ /**
60
+ * The sheet takes the full width its `size` allows.
61
+ *
62
+ * On by default, which is the other way round from every other component.
63
+ * Elsewhere `fullWidth` means "fill the container"; a modal's container is
64
+ * the viewport, and a modal that shrank to fit two words would be a tooltip.
65
+ * @default true
66
+ */
67
+ fullWidth?: boolean;
68
+ /** Fills the viewport edge to edge. For a mobile-sized screen, or an editor. */
69
+ fullScreen?: boolean;
70
+ /**
71
+ * Whether the page behind is taken away. `'trap-focus'` keeps the page
72
+ * scrollable and clickable while still holding focus inside.
73
+ * @default true
74
+ */
75
+ modal?: boolean | 'trap-focus';
76
+ /**
77
+ * Whether pressing Escape or clicking outside closes the modal. Turn it off
78
+ * for the one that has to be answered — and then give it actions that answer
79
+ * it, because there will be no other way out.
80
+ * @default true
81
+ */
82
+ dismissible?: boolean;
83
+ /** The body. */
84
+ children?: React.ReactNode;
85
+ }
86
+ export type PlModalCloseProps = React.ComponentPropsWithoutRef<typeof BaseUIDialog.Close>;
87
+ /**
88
+ * Closes the modal it is inside.
89
+ *
90
+ * Exported because an uncontrolled modal has no `setOpen` for its Cancel button
91
+ * to call, and the alternative — making every modal controlled — is a piece of
92
+ * state per modal that exists only to answer a button.
93
+ *
94
+ * `render` is Base UI's own escape hatch, so a real Plass button dismisses:
95
+ * `<PlModalClose render={<PlButton variant="ghost">Cancel</PlButton>} />`.
96
+ */
97
+ export declare const PlModalClose: React.ForwardRefExoticComponent<Omit<import("@base-ui/react").AlertDialogCloseProps, "ref"> & React.RefAttributes<HTMLButtonElement>>;
98
+ /**
99
+ * A sheet that takes the page away until it is answered.
100
+ *
101
+ * The sections are props rather than compound sub-components, exactly as they
102
+ * are on PlCard: the arrangement of a modal is fixed — heading, description,
103
+ * body, actions — and what a caller wants to decide is what goes in each slot.
104
+ * Base UI owns everything hard about it: the focus trap, the scroll lock, the
105
+ * `aria-labelledby` / `aria-describedby` wiring, restoring focus to the trigger,
106
+ * and the inert page behind.
107
+ *
108
+ * What is left here is the surface, the width ladder and the scroll behaviour —
109
+ * the header and the actions stay put while only the body scrolls, which is why
110
+ * `dividers` matters more here than on a PlCard.
111
+ */
112
+ export declare function PlModal({ size, color, density, open, defaultOpen, onOpenChange, trigger, title, description, actions, dividers, showClose, closeLabel, width, fullWidth, fullScreen, modal, dismissible, className, style, children, ...props }: PlModalProps): React.JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import{Dialog as s}from"@base-ui/react/dialog";import{CloseIcon as a}from"../../internal/icons.js";import{focusRingClasses as i,glassClasses as o,hasContent as r,metaTextClasses as t,radiusClasses as n,sheetBodyClasses as d,sheetHeaderGapClasses as c,sheetLineClasses as p,sheetPaddingXClasses as m,sheetPaddingYClasses as f,sheetSectionGapClasses as u,sheetTitleClasses as x,surfaceSlots as h}from"../../internal/styles.js";const g={xs:"max-w-80",sm:"max-w-96",md:"max-w-lg",lg:"max-w-2xl",xl:"max-w-4xl"},v=/* @__PURE__ */[o,"relative flex w-full flex-col overflow-hidden","border text-(--plass-fg) bg-(--plass-glass-press)","[border-color:var(--plass-glass-line)]","[box-shadow:var(--plass-shadow-4),var(--plass-gloss-glass)]","[outline:none]","[transition:opacity_var(--plass-duration)_var(--plass-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"].join(" "),y=/* @__PURE__ */["fixed inset-0 z-50 bg-(--plass-scrim)","[backdrop-filter:blur(2px)] [-webkit-backdrop-filter:blur(2px)]","[transition:opacity_var(--plass-duration)_var(--plass-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0"].join(" ");export const PlModalClose=s.Close;export function PlModal({size:o="md",color:b="primary",density:w="default",open:j,defaultOpen:$,onOpenChange:N,trigger:k,title:_,description:C,actions:z,dividers:P=!1,showClose:B=!0,closeLabel:O="Close",width:D,fullWidth:M=!0,fullScreen:T=!1,modal:W=!0,dismissible:L=!0,className:R,style:S,children:V,...q}){const A=m[w][o],E=f[w][o],F=P?`${A} ${E}`:A,G=r(_)||r(C),H=r(z);return l(s.Root,{open:j,defaultOpen:$,modal:W,disablePointerDismissal:!L,onOpenChange:(e,l)=>{L||e||"escape-key"!==l.reason?N?.(e):l.cancel()},children:[k?e(s.Trigger,{render:k}):null,l(s.Portal,{children:[e(s.Backdrop,{className:`plass-portal ${y}`}),e(s.Viewport,{className:["plass-portal fixed inset-0 z-50 flex justify-center",T?"items-stretch":"items-center p-4"].join(" "),children:l(s.Popup,{className:[v,d[o],T?"h-full max-w-none rounded-none":`max-h-full ${n[o]} ${void 0===D?g[o]:""}`,T||M?"":"w-auto",P?"":`${E} ${u[o]}`,R??""].filter(Boolean).join(" "),style:{...h(b,3),...void 0===D?null:{maxWidth:"number"==typeof D?`${D}px`:D},...S},...q,children:[G||B?l("div",{className:`flex shrink-0 items-start gap-3 ${F}`,children:[l("div",{className:`flex min-w-0 flex-1 flex-col ${c[o]}`,children:[r(_)?e(s.Title,{className:`m-0 font-semibold ${x[o]}`,children:_}):null,r(C)?e(s.Description,{className:`m-0 text-(--plass-muted-fg) ${t[o]}`,children:C}):null]}),B?e(s.Close,{"aria-label":O,className:["flex size-[1.6em] shrink-0 cursor-pointer items-center justify-center","rounded-full text-(--plass-muted-fg)","[&_svg]:size-[1.1em] [&_svg]:shrink-0","[transition:background-color_var(--plass-duration)_var(--plass-ease),color_var(--plass-duration)_var(--plass-ease)]","hover:bg-(--p-soft) hover:text-(--plass-fg)",i].join(" "),children:e(a,{})}):null]}):null,r(V)?e("div",{className:["min-h-0 flex-1 overflow-y-auto overscroll-contain",F,P&&(G||B)?p:"",P?"":"-my-1 py-1"].filter(Boolean).join(" "),children:V}):null,H?e("div",{className:["flex shrink-0 flex-wrap items-center justify-end gap-2",F,P?p:""].filter(Boolean).join(" "),children:z}):null]})})]})]})}
@@ -0,0 +1,2 @@
1
+ export { PlModal, PlModalClose } from './PlModal.js';
2
+ export type { PlModalCloseProps, PlModalProps } from './PlModal.js';
@@ -0,0 +1 @@
1
+ export{PlModal,PlModalClose}from"./PlModal.js";
@@ -0,0 +1,133 @@
1
+ import * as React from 'react';
2
+ import type { PlassElevation, PlassStyleProps } from '../../types.js';
3
+ /**
4
+ * Where the two steppers sit.
5
+ *
6
+ * - `end` — both at the trailing edge, the way a spinner has always looked.
7
+ * - `split` — minus at the start, plus at the end, with the number between them.
8
+ * For a quantity that is nudged rather than typed.
9
+ * - `none` — no buttons. The field is still a number field: the arrow keys, the
10
+ * clamping and the formatting all stay.
11
+ *
12
+ * There is deliberately no stacked pair of half-height chevrons. At `xs` each
13
+ * arrow would be under three pixels tall, and a target that small is a target
14
+ * nobody hits.
15
+ */
16
+ export type PlNumberFieldSteppers = 'end' | 'split' | 'none';
17
+ export interface PlNumberFieldProps extends PlassStyleProps, Omit<React.ComponentPropsWithoutRef<'div'>, 'color' | 'defaultValue' | 'children'> {
18
+ /**
19
+ * Drop shadow depth. `0` is the default — a field is a well cut into the
20
+ * sheet, not a key resting on it.
21
+ * @default 0
22
+ */
23
+ elevation?: PlassElevation;
24
+ /** The number. Use with `onValueChange` for a controlled field. */
25
+ value?: number | null;
26
+ /** The initial number, for an uncontrolled field. */
27
+ defaultValue?: number;
28
+ /** Called on every change — typing, stepping, the wheel. */
29
+ onValueChange?: (value: number | null) => void;
30
+ /**
31
+ * Called when the value settles: on blur after typing, on pointer release
32
+ * after a press, and together with `onValueChange` for the keyboard.
33
+ */
34
+ onValueCommitted?: (value: number | null) => void;
35
+ /** The bottom of the range. Stepping stops here. */
36
+ min?: number;
37
+ /** The top of the range. */
38
+ max?: number;
39
+ /**
40
+ * How far one step goes. `'any'` turns step validation off.
41
+ * @default 1
42
+ */
43
+ step?: number | 'any';
44
+ /**
45
+ * The step taken while Shift is held.
46
+ * @default 10
47
+ */
48
+ largeStep?: number;
49
+ /**
50
+ * The step taken while Alt is held.
51
+ * @default 0.1
52
+ */
53
+ smallStep?: number;
54
+ /**
55
+ * Whether stepping snaps to multiples of the step.
56
+ * @default false
57
+ */
58
+ snapOnStep?: boolean;
59
+ /**
60
+ * Whether the wheel changes the value while the field is focused and hovered.
61
+ * Off by default: a page that scrolls under the pointer and a field that
62
+ * changes under it are the same gesture, and only one of them was meant.
63
+ * @default false
64
+ */
65
+ allowWheelScrub?: boolean;
66
+ /**
67
+ * How the number is written — currency, percent, decimal places. Passed
68
+ * straight to `Intl.NumberFormat`, so the field shows `$1,240.00` and still
69
+ * reports `1240`.
70
+ */
71
+ format?: Intl.NumberFormatOptions;
72
+ /** Which locale the number is written and parsed in. Defaults to the runtime's. */
73
+ locale?: Intl.LocalesArgument;
74
+ /**
75
+ * Where the steppers sit, or `none` for a field without them.
76
+ * @default 'end'
77
+ */
78
+ steppers?: PlNumberFieldSteppers;
79
+ /**
80
+ * Accessible name of the increment button. Never drawn.
81
+ * @default 'Increase'
82
+ */
83
+ incrementLabel?: string;
84
+ /**
85
+ * Accessible name of the decrement button. Never drawn.
86
+ * @default 'Decrease'
87
+ */
88
+ decrementLabel?: string;
89
+ /**
90
+ * Label above the control, wired to it by Base UI's Field. There is no
91
+ * floating variant on purpose: floating labels need a `transform`.
92
+ */
93
+ label?: React.ReactNode;
94
+ /** Helper text below the control. */
95
+ description?: React.ReactNode;
96
+ /** Error message below the control. Its presence also turns the field invalid. */
97
+ error?: React.ReactNode;
98
+ /** Forces the invalid state without a message. Defaults to `!!error`. */
99
+ invalid?: boolean;
100
+ /** Content placed before the number — a currency mark, a unit, an icon. */
101
+ startIcon?: React.ReactNode;
102
+ /** Content placed after the number, before the steppers. */
103
+ endIcon?: React.ReactNode;
104
+ /** Stretches to the width of the container. */
105
+ fullWidth?: boolean;
106
+ /** Unavailable. */
107
+ disabled?: boolean;
108
+ /** The number is shown but cannot be changed. */
109
+ readOnly?: boolean;
110
+ /** Whether a value must be entered before the form is submitted. */
111
+ required?: boolean;
112
+ /** Identifies the field when a form is submitted. */
113
+ name?: string;
114
+ /** Placeholder shown while the field is empty. */
115
+ placeholder?: string;
116
+ id?: string;
117
+ }
118
+ /**
119
+ * A field that only holds a number.
120
+ *
121
+ * The shell is a `PlTextField`'s, to the pixel, because a form where the
122
+ * quantity box is a different height or radius from the boxes around it is a
123
+ * form that looks assembled rather than designed. What is added on top is a real
124
+ * numeric control: arrow keys and the steppers move by `step` (Shift for
125
+ * `largeStep`, Alt for `smallStep`), the value clamps to `min`/`max`, and
126
+ * `format` writes it as currency or a percentage while `value` stays a plain
127
+ * number.
128
+ *
129
+ * Base UI owns the hard parts — parsing what was typed against the locale,
130
+ * clamping, the press-and-hold repeat on the steppers, and the hidden input that
131
+ * submits with a form.
132
+ */
133
+ export declare function PlNumberField({ variant, size, color, density, elevation, value, defaultValue, onValueChange, onValueCommitted, min, max, step, largeStep, smallStep, snapOnStep, allowWheelScrub, format, locale, steppers, incrementLabel, decrementLabel, label, description, error, invalid, startIcon, endIcon, fullWidth, disabled, readOnly, required, name, placeholder, id, className, style, ...props }: PlNumberFieldProps): React.JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import{NumberField as a}from"@base-ui/react/number-field";import{Field as t}from"@base-ui/react/field";import{MinusIcon as s,PlusIcon as n}from"../../internal/icons.js";import{controlHeightClasses as r,controlTextLeadingClasses as i,disabledClasses as o,fieldReadOnlyClasses as c,fieldRestClasses as d,focusRingClasses as p,focusWithinRingClasses as m,gapClasses as u,hasContent as f,iconClasses as h,metaTextClasses as b,paddingXClasses as x,radiusClasses as g,stackGapClasses as v,surfaceSlots as N,transitionClasses as j}from"../../internal/styles.js";const y=/* @__PURE__ */["group relative flex w-full cursor-text items-center","[-webkit-tap-highlight-color:transparent]",j,"focus-within:[transition-duration:0ms]",m,h].join(" "),w=/* @__PURE__ */["inline-flex size-[1.7em] shrink-0 cursor-pointer items-center justify-center","rounded-(--plass-radius-xs) text-(--plass-muted-fg) select-none","[&_svg]:size-[0.9em] [&_svg]:shrink-0","[-webkit-tap-highlight-color:transparent] [touch-action:manipulation]","[transition:background-color_var(--plass-duration)_var(--plass-ease),color_var(--plass-duration)_var(--plass-ease),opacity_var(--plass-duration)_var(--plass-ease)]","active:[transition-duration:0ms]","hover:bg-(--p-soft) hover:text-(--p-accent)","active:bg-(--p-soft-press)",p,"disabled:cursor-not-allowed disabled:bg-transparent disabled:opacity-40"].join(" ");export function PlNumberField({variant:p="glass",size:m="md",color:h="primary",density:j="default",elevation:k=0,value:S,defaultValue:_,onValueChange:V,onValueCommitted:I,min:C,max:O,step:z,largeStep:B,smallStep:D,snapOnStep:L,allowWheelScrub:W=!1,format:$,locale:q,steppers:F="end",incrementLabel:R="Increase",decrementLabel:E="Decrease",label:G,description:P,error:A,invalid:H,startIcon:J,endIcon:K,fullWidth:M=!1,disabled:Q=!1,readOnly:T=!1,required:U=!1,name:X,placeholder:Y,id:Z,className:ee,style:le,...ae}){const te=f(A),se=H??te,ne=se?"danger":h,re=x[j][m],ie={end:`${re} pe-1`,split:"px-1",none:re},oe=e(a.Decrement,{"aria-label":E,className:w,children:e(s,{})}),ce=e(a.Increment,{"aria-label":R,className:w,children:e(n,{})}),de="none"!==F&&!T;return l(t.Root,{disabled:Q,invalid:se,className:["flex-col align-top",v[m],M?"flex w-full":"inline-flex",ee??""].filter(Boolean).join(" "),style:{...N(ne,k),...le},...ae,children:[G?e(t.Label,{className:[b[m],"font-medium text-(--plass-fg)",Q?"opacity-50":""].filter(Boolean).join(" "),children:G}):null,e(a.Root,{id:Z,name:X,className:"contents",value:S,defaultValue:_,onValueChange:e=>V?.(e),onValueCommitted:e=>I?.(e),min:C,max:O,step:z,largeStep:B,smallStep:D,snapOnStep:L,allowWheelScrub:W,format:$,locale:q,disabled:Q,readOnly:T,required:U,children:l(a.Group,{className:[y,r[m],i[m],g[m],u[m],de?ie[F]:re,Q?o[p]:T?c[p]:d[p]].join(" "),children:[de&&"split"===F?oe:null,J?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--plass-muted-fg)",children:J}):null,e(a.Input,{placeholder:Y,className:["min-w-0 flex-1 self-stretch bg-transparent [font:inherit] text-inherit","[outline:none]","tabular-nums","split"===F&&de?"text-center":"","placeholder:text-(--plass-muted-fg)","caret-(--p-accent) selection:bg-(--p-soft-press)","disabled:cursor-not-allowed"].filter(Boolean).join(" ")}),K?e("span",{className:"flex h-[1lh] shrink-0 items-center text-(--plass-muted-fg)",children:K}):null,de&&"end"===F?l("span",{className:"flex shrink-0 items-center gap-0.5",children:[oe,ce]}):null,de&&"split"===F?ce:null]})}),P?e(t.Description,{className:`${b[m]} text-(--plass-muted-fg)`,children:P}):null,te?e(t.Error,{match:!0,className:`${b[m]} text-(--p-accent)`,children:A}):null]})}
@@ -0,0 +1,2 @@
1
+ export { PlNumberField } from './PlNumberField.js';
2
+ export type { PlNumberFieldProps, PlNumberFieldSteppers } from './PlNumberField.js';
@@ -0,0 +1 @@
1
+ export{PlNumberField}from"./PlNumberField.js";