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,52 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassAnimateMode, PlassAnimateProps } from '../../types.js';
4
+ export interface PlAnimateRotateProps extends PlassAnimateProps, React.ComponentPropsWithoutRef<'div'> {
5
+ /**
6
+ * Whether the content turns into place or out of it.
7
+ * @default 'in'
8
+ */
9
+ mode?: PlassAnimateMode;
10
+ /**
11
+ * The angle it starts at, in degrees. Negative is anticlockwise.
12
+ * @default -180
13
+ */
14
+ from?: number;
15
+ /**
16
+ * The angle it ends at, in degrees. Together with `from` this is what makes
17
+ * one component cover both a quarter turn into place and an endless spin:
18
+ * `from={0} to={360} repeat="infinite"`.
19
+ * @default 0
20
+ */
21
+ to?: number;
22
+ /**
23
+ * Which point it turns about — any CSS `transform-origin`.
24
+ * @default 'center'
25
+ */
26
+ origin?: string;
27
+ /**
28
+ * Fades in as it turns. Turn it off for a continuous spin, where a repeating
29
+ * fade would read as flickering.
30
+ * @default true
31
+ */
32
+ fade?: boolean;
33
+ /** Renders something other than a `<div>`. Base UI's own escape hatch. */
34
+ render?: useRender.RenderProp;
35
+ children?: React.ReactNode;
36
+ }
37
+ /**
38
+ * Content turning about a point.
39
+ *
40
+ * Two angles rather than one, which is what lets this be both effects a
41
+ * rotation is ever used for. `from` alone is an arrival — something swinging
42
+ * into place and stopping. `from` and `to` together with `repeat="infinite"`
43
+ * and `easing="linear"` is a spin that never lands, which is what a badge, a
44
+ * loading mark or a decorative glyph wants.
45
+ *
46
+ * Rotation is the one movement the design language allows on a glyph without
47
+ * argument — a chevron is turned rather than redrawn all over the library. What
48
+ * it is not for is text: a rotated word is resampled along its whole length,
49
+ * which is precisely what the rule against transforming a control exists to
50
+ * prevent.
51
+ */
52
+ export declare const PlAnimateRotate: React.ForwardRefExoticComponent<PlAnimateRotateProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ "use client";import*as e from"react";import{useRender as r}from"@base-ui/react/use-render";import{isInfinite as t,useAnimateElement as a}from"../../internal/animate.js";import{cx as n}from"../../internal/styles.js";export const PlAnimateRotate=/* @__PURE__ */e.forwardRef(function PlAnimateRotate({duration:e=440,delay:o=0,easing:i,repeat:s=1,alternate:l,paused:d,trigger:m="mount",play:c,once:p=!0,threshold:f=.2,mode:g="in",from:u=-180,to:y=0,origin:h="center",fade:N=!0,render:R,className:j,style:A,children:P,...$},b){const w=a({effect:"rotate",duration:e,delay:o,easing:i,repeat:s,alternate:l,mode:g,angle:`${u}deg`,angleTo:`${y}deg`,opacity:N?0:1,trigger:m,play:c,once:p,threshold:f,paused:d,infinite:t(s)});return r({render:R,ref:[b,w.ref],props:{...$,className:n(w.className,j),style:{transformOrigin:h,...w.style,...A},...w.props,children:P}})});
@@ -0,0 +1,2 @@
1
+ export { PlAnimateRotate } from './PlAnimateRotate.js';
2
+ export type { PlAnimateRotateProps } from './PlAnimateRotate.js';
@@ -0,0 +1 @@
1
+ export{PlAnimateRotate}from"./PlAnimateRotate.js";
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassAnimateMode, PlassAnimateProps, PlassSide } from '../../types.js';
4
+ export interface PlAnimateSlideProps extends PlassAnimateProps, React.ComponentPropsWithoutRef<'div'> {
5
+ /**
6
+ * Whether the content slides in or slides away. `out` leaves by the same edge
7
+ * it would have come from.
8
+ * @default 'in'
9
+ */
10
+ mode?: PlassAnimateMode;
11
+ /**
12
+ * Which edge it travels from. Physical, as `PlassSide` is everywhere — a
13
+ * panel coming down from the top comes from the top in every writing
14
+ * direction.
15
+ * @default 'bottom'
16
+ */
17
+ from?: PlassSide;
18
+ /**
19
+ * How far it travels — a CSS length, or a number in pixels. `'100%'` is the
20
+ * element's own width or height, which is what makes it appear from behind
21
+ * its own edge.
22
+ * @default '100%'
23
+ */
24
+ distance?: number | string;
25
+ /**
26
+ * Fades in as it slides.
27
+ * @default true
28
+ */
29
+ fade?: boolean;
30
+ /** Renders something other than a `<div>`. Base UI's own escape hatch. */
31
+ render?: useRender.RenderProp;
32
+ children?: React.ReactNode;
33
+ }
34
+ /**
35
+ * Content travelling in from one edge.
36
+ *
37
+ * The default distance is the element's own size, so it starts exactly out of
38
+ * frame and arrives without ever having been half drawn somewhere it does not
39
+ * belong. Put it in a box with `overflow: hidden` and the effect is a panel
40
+ * appearing from behind that box's edge.
41
+ *
42
+ * A slide moves the element, so what is *around* it does not move: this is a
43
+ * `translate` rather than a change of layout, and nothing on the page reflows
44
+ * while it runs. For a much shorter travel over a list of things, one after
45
+ * another, use PlAnimateAppear.
46
+ */
47
+ export declare const PlAnimateSlide: React.ForwardRefExoticComponent<PlAnimateSlideProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ "use client";import*as e from"react";import{useRender as r}from"@base-ui/react/use-render";import{isInfinite as t,slideOffsets as a,useAnimateElement as n}from"../../internal/animate.js";import{cx as i}from"../../internal/styles.js";export const PlAnimateSlide=/* @__PURE__ */e.forwardRef(function PlAnimateSlide({duration:e=360,delay:s=0,easing:o,repeat:l=1,alternate:d,paused:m,trigger:c="mount",play:p,once:f=!0,threshold:y=.2,mode:u="in",from:g="bottom",distance:h="100%",fade:x=!0,render:N,className:b,style:j,children:A,...P},S){const{x:w,y:R}=a(g,h),k=n({effect:"slide",duration:e,delay:s,easing:o,repeat:l,alternate:d,mode:u,x:w,y:R,opacity:x?0:1,trigger:c,play:p,once:f,threshold:y,paused:m,infinite:t(l)});return r({render:N,ref:[S,k.ref],props:{...P,className:i(k.className,b),style:{...k.style,...j},...k.props,children:A}})});
@@ -0,0 +1,2 @@
1
+ export { PlAnimateSlide } from './PlAnimateSlide.js';
2
+ export type { PlAnimateSlideProps } from './PlAnimateSlide.js';
@@ -0,0 +1 @@
1
+ export{PlAnimateSlide}from"./PlAnimateSlide.js";
@@ -0,0 +1,56 @@
1
+ import * as React from 'react';
2
+ import type { PlassAnimateProps } from '../../types.js';
3
+ export interface PlAnimateTypingProps extends Omit<PlassAnimateProps, 'alternate' | 'easing'>, Omit<React.ComponentPropsWithoutRef<'div'>, 'children'> {
4
+ /** The text, when it is easier to pass than to nest. Overrides `children`. */
5
+ text?: string;
6
+ /**
7
+ * How fast it is typed, in characters per second.
8
+ * @default 24
9
+ */
10
+ speed?: number;
11
+ /**
12
+ * How long the finished text is held before it repeats, in milliseconds.
13
+ * @default 1400
14
+ */
15
+ hold?: number;
16
+ /**
17
+ * Deletes the text again before repeating, rather than clearing it in one
18
+ * frame. Only means anything when `repeat` is more than once.
19
+ * @default false
20
+ */
21
+ erase?: boolean;
22
+ /**
23
+ * How fast it is deleted, in characters per second. Deleting is usually about
24
+ * twice as fast as typing, which is what a person actually does.
25
+ * @default twice `speed`
26
+ */
27
+ eraseSpeed?: number;
28
+ /**
29
+ * The block after the text.
30
+ * @default true
31
+ */
32
+ caret?: boolean;
33
+ /** What the caret is drawn as. @default '|' */
34
+ caretChar?: React.ReactNode;
35
+ /** The text to type. Only text is typed — see below. */
36
+ children?: React.ReactNode;
37
+ }
38
+ /**
39
+ * Text appearing one character at a time.
40
+ *
41
+ * The whole string is in the document from the first frame — in a clipped box
42
+ * for a screen reader, which reads it once and is not made to sit through the
43
+ * performance — and what animates is a visible copy that is `aria-hidden`. So
44
+ * the effect costs a reader who cannot see it nothing, and costs a reader who
45
+ * can nothing either: the box is not laid out from the characters that have
46
+ * arrived, so the text around it does not reflow on every frame.
47
+ *
48
+ * `repeat`, `hold` and `erase` are what make it a loop: type, hold, delete,
49
+ * type again. Without `erase` a repeat clears in one frame, which is right for
50
+ * a line that is being replaced rather than rewritten.
51
+ *
52
+ * Only text is typed. Pass a string, or strings; an element among the children
53
+ * contributes its text and nothing about its markup, because there is no honest
54
+ * way to reveal half of a link.
55
+ */
56
+ export declare const PlAnimateTyping: React.ForwardRefExoticComponent<PlAnimateTypingProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as r from"react";import{isInfinite as n,useAnimationRun as a,usePrefersReducedMotion as i}from"../../internal/animate.js";import{srOnlyClasses as s}from"../../internal/styles.js";function textOf(e){return"string"==typeof e||"number"==typeof e?String(e):Array.isArray(e)?e.map(textOf).join(""):""}export const PlAnimateTyping=/* @__PURE__ */r.forwardRef(function PlAnimateTyping({text:o,speed:u=24,hold:m=1400,erase:c=!1,eraseSpeed:l,caret:f=!0,caretChar:p="|",duration:d,delay:h=0,repeat:g=1,paused:y,trigger:x="mount",play:T,once:j=!0,threshold:v=.2,className:N,style:S,children:w,...A},M){const O=a({trigger:x,play:T,once:j,threshold:v,paused:y,infinite:n(g)}),I=i(),E=o??textOf(w),P=r.useMemo(()=>function graphemesOf(e,t){return"undefined"!=typeof Intl&&"Segmenter"in Intl?[...new Intl.Segmenter(t,{granularity:"grapheme"}).segment(e)].map(e=>e.segment):[...e]}(E),[E]),R=P.length,[b,C]=r.useState(0),k=r.useRef(0),q=d&&R>0?d/R:1e3/Math.max(u,1),z=1e3/Math.max(l??2*u,1);return r.useEffect(()=>{k.current=0},[R]),r.useEffect(()=>{if(I||0===R)return void C(R);if(!O.started)return k.current=0,void C(0);if(y)return;let e,t=!1,r=k.current,n=1,a=!1;const i="infinite"===g?1/0:Math.max(1,g);if(r>=R&&1===i)return;const step=()=>{if(!t){if(a)return r-=1,k.current=r,C(r),r<=0&&(a=!1,n+=1),void(e=setTimeout(step,a?z:q));if(r+=1,k.current=r,C(r),r<R)e=setTimeout(step,q);else if(!(n>=i)){if(c)return a=!0,void(e=setTimeout(step,m));n+=1,e=setTimeout(()=>{t||(r=0,k.current=0,C(0),e=setTimeout(step,q))},m)}}};return C(r),e=setTimeout(step,0===r?h:q),()=>{t=!0,clearTimeout(e)}},[O.started,y,I,R,q,z,h,m,c,g]),t("div",{ref:e=>{O.ref(e),"function"==typeof M?M(e):M&&(M.current=e)},className:N,style:S,"data-plass-animation":"typing","data-state":O.state,...O.handlers,...A,children:[e("span",{className:s,children:E}),t("span",{"aria-hidden":"true",className:"whitespace-pre-wrap",children:[P.slice(0,b).join(""),f?e("span",{className:"plass-caret",children:p}):null]})]})});
@@ -0,0 +1,2 @@
1
+ export { PlAnimateTyping } from './PlAnimateTyping.js';
2
+ export type { PlAnimateTypingProps } from './PlAnimateTyping.js';
@@ -0,0 +1 @@
1
+ export{PlAnimateTyping}from"./PlAnimateTyping.js";
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassAnimateMode, PlassAnimateProps } from '../../types.js';
4
+ export interface PlAnimateZoomProps extends PlassAnimateProps, React.ComponentPropsWithoutRef<'div'> {
5
+ /**
6
+ * Whether the content comes forward or falls away.
7
+ * @default 'in'
8
+ */
9
+ mode?: PlassAnimateMode;
10
+ /**
11
+ * The scale it starts from, as a multiple of its final size. Above `1` it
12
+ * arrives oversized and settles back, which reads as coming *towards* the
13
+ * reader rather than up out of the page.
14
+ * @default 0.4
15
+ */
16
+ from?: number;
17
+ /**
18
+ * Fades in as it zooms.
19
+ * @default true
20
+ */
21
+ fade?: boolean;
22
+ /** Renders something other than a `<div>`. Base UI's own escape hatch. */
23
+ render?: useRender.RenderProp;
24
+ children?: React.ReactNode;
25
+ }
26
+ /**
27
+ * Content arriving from the middle of where it will end up.
28
+ *
29
+ * The same arithmetic as Grow at more than twice the distance, and always about
30
+ * the centre — which is the whole difference. A Grow unfolds from somewhere; a
31
+ * Zoom comes at you. Use it for the one thing on a screen that is meant to
32
+ * interrupt: a confirmation, a result, a number that has just landed.
33
+ *
34
+ * There is no `origin`, on purpose. A zoom anchored to a corner is a grow, and
35
+ * the library does not offer two spellings of one idea.
36
+ */
37
+ export declare const PlAnimateZoom: React.ForwardRefExoticComponent<PlAnimateZoomProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ "use client";import*as e from"react";import{useRender as r}from"@base-ui/react/use-render";import{isInfinite as t,useAnimateElement as a}from"../../internal/animate.js";import{cx as n}from"../../internal/styles.js";export const PlAnimateZoom=/* @__PURE__ */e.forwardRef(function PlAnimateZoom({duration:e=320,delay:o=0,easing:s,repeat:i=1,alternate:l,paused:m,trigger:c="mount",play:d,once:p=!0,threshold:f=.2,mode:u="in",from:y=.4,fade:g=!0,render:h,className:N,style:j,children:A,...P},Z){const b=a({effect:"zoom",duration:e,delay:o,easing:s,repeat:i,alternate:l,mode:u,scale:y,opacity:g?0:1,trigger:c,play:d,once:p,threshold:f,paused:m,infinite:t(i)});return r({render:h,ref:[Z,b.ref],props:{...P,className:n(b.className,N),style:{transformOrigin:"center",...b.style,...j},...b.props,children:A}})});
@@ -0,0 +1,2 @@
1
+ export { PlAnimateZoom } from './PlAnimateZoom.js';
2
+ export type { PlAnimateZoomProps } from './PlAnimateZoom.js';
@@ -0,0 +1 @@
1
+ export{PlAnimateZoom}from"./PlAnimateZoom.js";
@@ -0,0 +1,64 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassSize } from '../../types.js';
4
+ /**
5
+ * How the media inside is fitted to the box, spelled the way CSS spells it.
6
+ *
7
+ * These are `object-fit`'s own values rather than a nicer set of words, for the
8
+ * reason the library keeps `aspect-ratio`'s own syntax below: inventing
9
+ * `fill-the-box` would only make a reader look up which CSS it maps to.
10
+ */
11
+ export type PlAspectFit = 'cover' | 'contain' | 'fill' | 'none';
12
+ export interface PlAspectRatioProps extends React.ComponentPropsWithoutRef<'div'> {
13
+ /**
14
+ * The proportion the box holds, written the way CSS writes it — a number
15
+ * (`1.5`) or a ratio (`'16 / 9'`). Both reach `aspect-ratio` untouched.
16
+ * @default 1
17
+ */
18
+ ratio?: number | string;
19
+ /**
20
+ * How a single piece of media inside is fitted. Applies to an `img`, a
21
+ * `video`, a `canvas`, an `svg` or an `iframe` that is a direct child; those
22
+ * are stretched to the full box and then fitted. Anything else is laid out
23
+ * normally and this prop does not reach it.
24
+ * @default 'cover'
25
+ */
26
+ fit?: PlAspectFit;
27
+ /**
28
+ * Rounds the corners to the `size` step of the house radius ladder.
29
+ *
30
+ * Off by default. A layout component draws nothing, and a photograph with its
31
+ * corners cut is a decision about the photograph — but it is such a common one
32
+ * that making the caller reach for a `className` would be perverse.
33
+ * @default false
34
+ */
35
+ rounded?: boolean;
36
+ /**
37
+ * Which step of the radius ladder `rounded` uses.
38
+ *
39
+ * `size` here is the size of the *sheet* — there is no height and no type
40
+ * scale on a box whose whole job is a proportion.
41
+ * @default 'md'
42
+ */
43
+ size?: PlassSize;
44
+ /**
45
+ * Renders something other than a `<div>`: `render={<figure />}`,
46
+ * `render={<a href="…" />}`. Base UI's own escape hatch.
47
+ */
48
+ render?: useRender.RenderProp;
49
+ children?: React.ReactNode;
50
+ }
51
+ /**
52
+ * A box that keeps a proportion whatever width it is given.
53
+ *
54
+ * It draws nothing — no sheet, no hairline, no shadow — which is what puts it
55
+ * in `layout` beside `PlContainer` and `PlGrid` rather than in `surfaces`. What
56
+ * it does is reserve the space: a card whose image arrives late does not reflow
57
+ * the page around it, and a row of thumbnails is a row of one shape.
58
+ *
59
+ * The proportion is CSS's own `aspect-ratio`, so a caller who already knows
60
+ * `16 / 9` has nothing to translate. `fit` is the one convenience on top: the
61
+ * media inside is stretched to the box and then fitted, which is the pair of
62
+ * declarations every use of this component would otherwise start with.
63
+ */
64
+ export declare const PlAspectRatio: React.ForwardRefExoticComponent<PlAspectRatioProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ "use client";import*as e from"react";import{useRender as i}from"@base-ui/react/use-render";import{cx as o,radiusClasses as t}from"../../internal/styles.js";const c=/* @__PURE__ */["[&>img]:size-full","[&>video]:size-full","[&>canvas]:size-full","[&>svg]:size-full","[&>iframe]:size-full","[&>picture]:size-full","[&>picture>img]:size-full"].join(" "),r={cover:"[&>img]:object-cover [&>video]:object-cover [&>picture>img]:object-cover",contain:"[&>img]:object-contain [&>video]:object-contain [&>picture>img]:object-contain",fill:"[&>img]:object-fill [&>video]:object-fill [&>picture>img]:object-fill",none:"[&>img]:object-none [&>video]:object-none [&>picture>img]:object-none"};export const PlAspectRatio=/* @__PURE__ */e.forwardRef(function PlAspectRatio({ratio:e=1,fit:l="cover",rounded:n=!1,size:s="md",render:a,className:f,style:m,children:u,...d},p){const b=o("relative block w-full overflow-hidden",c,r[l],n?t[s]:"",f);return i({render:a,ref:p,props:{className:b,style:{aspectRatio:e,...m},children:u,...d}})});
@@ -0,0 +1,2 @@
1
+ export { PlAspectRatio } from './PlAspectRatio.js';
2
+ export type { PlAspectFit, PlAspectRatioProps } from './PlAspectRatio.js';
@@ -0,0 +1 @@
1
+ export{PlAspectRatio}from"./PlAspectRatio.js";
@@ -0,0 +1,102 @@
1
+ import * as React from 'react';
2
+ import type { PlassColor, PlassElevation, PlassSize, PlassVariant } from '../../types.js';
3
+ /** What Base UI reports about the picture as it loads. */
4
+ export type PlAvatarLoadingStatus = 'idle' | 'loading' | 'loaded' | 'error';
5
+ /**
6
+ * The crop, not the material.
7
+ *
8
+ * `circle` is the default. A round crop is what a portrait has been for as long
9
+ * as there have been portraits, and an avatar is not a surface — it is a picture
10
+ * laid on one, so it does not owe the radius ladder anything.
11
+ *
12
+ * `square` takes the library's own fillet instead, which is what a logo or a
13
+ * repository icon wants: those are drawn to the edges of a rectangle and a round
14
+ * crop eats them.
15
+ */
16
+ export type PlAvatarShape = 'circle' | 'square';
17
+ export interface PlAvatarProps extends Omit<React.ComponentPropsWithoutRef<'span'>, 'color'> {
18
+ /**
19
+ * The picture. Until it loads — and forever, if it fails — the fallback is
20
+ * what is drawn, so an avatar is never an empty box.
21
+ */
22
+ src?: string;
23
+ /** Candidate images at other resolutions, as on any `<img>`. */
24
+ srcSet?: string;
25
+ /**
26
+ * What the picture says, for a reader who cannot see it. Defaults to `name`,
27
+ * and to nothing at all when there is no name — an avatar next to the person's
28
+ * own name in a row is decoration, and reading it out says the name twice.
29
+ */
30
+ alt?: string;
31
+ /**
32
+ * Who or what this is. One prop doing three jobs: it names the picture, the
33
+ * initials are derived from it, and it is the sentence a screen reader hears
34
+ * instead of those initials.
35
+ *
36
+ * The initials are the first character of the first word plus the first
37
+ * character of the last — "Jane Doe" is `JD`, "홍길동" is `홍`. That rule is
38
+ * wrong for some names, which is what `initials` is for.
39
+ */
40
+ name?: string;
41
+ /** The initials, written out, for when the rule derived the wrong ones. */
42
+ initials?: string;
43
+ /**
44
+ * The crop.
45
+ * @default 'circle'
46
+ */
47
+ shape?: PlAvatarShape;
48
+ /**
49
+ * What the sheet behind the fallback is made of. Invisible once a picture has
50
+ * loaded, apart from the edge it keeps.
51
+ *
52
+ * `ghost` is the default: a directory is a page of avatars, and a page of
53
+ * saturated circles is a page nobody can read a name off.
54
+ * @default 'ghost'
55
+ */
56
+ variant?: PlassVariant;
57
+ /**
58
+ * The box the picture is drawn in — the control heights, so an avatar and the
59
+ * button beside it in a toolbar are the same height.
60
+ * @default 'md'
61
+ */
62
+ size?: PlassSize;
63
+ /** @default 'primary' */
64
+ color?: PlassColor;
65
+ /**
66
+ * Drop shadow depth. `0` is the default: an avatar is a picture set into the
67
+ * page rather than a key resting on it.
68
+ * @default 0
69
+ */
70
+ elevation?: PlassElevation;
71
+ /**
72
+ * How long to wait before drawing the fallback, in milliseconds. Set it to
73
+ * roughly the time a cached image takes and the initials stop flashing up in
74
+ * front of a picture that was about to arrive anyway.
75
+ */
76
+ delay?: number;
77
+ /** Anything else the `<img>` needs — `loading`, `crossOrigin`, `referrerPolicy`. */
78
+ imageProps?: Omit<React.ComponentPropsWithoutRef<'img'>, 'src' | 'srcSet' | 'alt'>;
79
+ /** Called as the picture moves between `idle`, `loading`, `loaded` and `error`. */
80
+ onLoadingStatusChange?: (status: PlAvatarLoadingStatus) => void;
81
+ /**
82
+ * The fallback, drawn instead of the initials. An icon, a logo, a single
83
+ * emoji — whatever stands in for this particular thing when there is no
84
+ * picture of it.
85
+ */
86
+ children?: React.ReactNode;
87
+ }
88
+ /**
89
+ * A picture of a person or a thing, at a known size, that is never an empty box.
90
+ *
91
+ * Three things can be drawn in it and exactly one of them is at a time: the
92
+ * picture, if `src` is given and it loads; otherwise whatever stands in for it —
93
+ * `children`, or `initials`, or the initials derived from `name`; and failing
94
+ * all of those, a silhouette. Which one is showing is Base UI's `Avatar` to
95
+ * decide, because "has the image loaded" is a question with four answers and a
96
+ * race in the middle of it.
97
+ *
98
+ * It carries no status dot of its own. An avatar with a green mark on it is a
99
+ * `PlBadge` with an avatar in it, and inventing a second spelling for that would
100
+ * give the library two of them.
101
+ */
102
+ export declare const PlAvatar: React.ForwardRefExoticComponent<PlAvatarProps & React.RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as a}from"react/jsx-runtime";import*as r from"react";import{Avatar as t}from"@base-ui/react/avatar";import{controlHeightClasses as s,controlSlots as n,controlSquareClasses as l,glassClasses as o,hasContent as i,radiusClasses as c,srOnlyClasses as d,transitionClasses as m}from"../../internal/styles.js";const p={xs:"text-[0.5625rem]",sm:"text-[0.6875rem]",md:"text-[0.8125rem]",lg:"text-[1rem]",xl:"text-[1.1875rem]"},f={solid:/* @__PURE__ */["text-(--p-on-solid) [background-image:var(--p-fill)]","[box-shadow:var(--p-elev),var(--p-lift)]"].join(" "),glass:/* @__PURE__ */[o,"border text-(--p-accent) bg-(--plass-glass)","[border-color:var(--plass-border)]","[box-shadow:var(--p-elev),var(--plass-gloss-glass)]"].join(" "),ghost:"text-(--p-accent) bg-(--p-soft-press) [box-shadow:var(--p-elev)]"},g=/* @__PURE__ */["relative inline-flex shrink-0 select-none items-center justify-center overflow-hidden","align-middle leading-none font-semibold tracking-wide whitespace-nowrap","[&_svg]:pointer-events-none [&_svg]:size-[55%]",m].join(" ");function PersonIcon(){return a("svg",{viewBox:"0 0 24 24",fill:"currentColor","aria-hidden":"true",children:[e("path",{d:"M12 12a4.5 4.5 0 1 0 0-9 4.5 4.5 0 0 0 0 9Z"}),e("path",{d:"M12 14.25c-4.28 0-7.75 2.42-7.75 5.4 0 .75.6 1.35 1.35 1.35h12.8c.75 0 1.35-.6 1.35-1.35 0-2.98-3.47-5.4-7.75-5.4Z"})]})}export const PlAvatar=/* @__PURE__ */r.forwardRef(function PlAvatar({src:r,srcSet:o,alt:m,name:v,initials:h,shape:u="circle",variant:x="ghost",size:b="md",color:j="primary",elevation:y=0,delay:w,imageProps:N,onLoadingStatusChange:z,className:A,style:C,children:P,...k},B){const S=v?function initialsOf(e){const a=e.normalize("NFC").trim().split(/\s+/).filter(Boolean);return 0===a.length?"":((Array.from(a[0])[0]??"")+(a.length>1?Array.from(a[a.length-1])[0]??"":"")).toLocaleUpperCase()}(v):"",I=m??v,L=i(P)?P:(h??S)||e(PersonIcon,{}),F=i(P)||Boolean(h??S),M=[g,s[b],l[b],p[b],"circle"===u?"rounded-full":c[b],f[x],A??""].filter(Boolean).join(" ");return a(t.Root,{ref:B,className:M,style:{...n(j,y,x),...C},...k,children:[r?e(t.Image,{src:r,srcSet:o,alt:I??"",className:"size-full object-cover",onLoadingStatusChange:z,...N}):null,a(t.Fallback,{delay:r?w:void 0,className:"flex size-full items-center justify-center",children:[I&&F?e("span",{className:d,children:I}):null,e("span",{"aria-hidden":!(!I||!F)||void 0,className:"contents",children:L})]})]})});
@@ -0,0 +1,2 @@
1
+ export { PlAvatar } from './PlAvatar.js';
2
+ export type { PlAvatarLoadingStatus, PlAvatarProps, PlAvatarShape } from './PlAvatar.js';
@@ -0,0 +1 @@
1
+ export{PlAvatar}from"./PlAvatar.js";
@@ -0,0 +1,86 @@
1
+ import * as React from 'react';
2
+ import type { PlassCorner, PlassElevation, PlassStyleProps } from '../../types.js';
3
+ /**
4
+ * The shape of the thing underneath, which is what decides how far the marker
5
+ * tucks in.
6
+ */
7
+ export type PlBadgeOverlap = 'square' | 'circle';
8
+ export interface PlBadgeProps extends PlassStyleProps, Omit<React.ComponentPropsWithoutRef<'span'>, 'color' | 'content'> {
9
+ /**
10
+ * What the badge says — usually a count, sometimes a word.
11
+ *
12
+ * Omit it and the badge draws a dot instead, which is the honest thing when
13
+ * there is something to report but nothing to count.
14
+ */
15
+ content?: React.ReactNode;
16
+ /**
17
+ * Caps a numeric `content` and adds a `+`. Only applies when the content is
18
+ * actually a number: a badge cannot know how to truncate a word.
19
+ * @default 99
20
+ */
21
+ max?: number;
22
+ /**
23
+ * Draws the marker as a dot even when there is content, keeping the content
24
+ * for screen readers only. For the corner that has to stay quiet.
25
+ * @default false
26
+ */
27
+ dot?: boolean;
28
+ /**
29
+ * Whether a `content` of `0` is shown. Off by default — zero unread messages
30
+ * is not news, and a badge that never goes away stops meaning anything.
31
+ * @default false
32
+ */
33
+ showZero?: boolean;
34
+ /**
35
+ * Hides the marker without unmounting the anchor. The badge keeps its place in
36
+ * the DOM, so showing it again does not relayout what it sits on.
37
+ * @default false
38
+ */
39
+ invisible?: boolean;
40
+ /**
41
+ * Which corner of the anchor it sits on.
42
+ * @default 'top-end'
43
+ */
44
+ placement?: PlassCorner;
45
+ /**
46
+ * The shape of the thing underneath, which is what decides how far the marker
47
+ * tucks in: a circle's corner is further from its centre than a square's, so a
48
+ * badge that looks right on an avatar hangs off an icon button.
49
+ * @default 'square'
50
+ */
51
+ overlap?: PlBadgeOverlap;
52
+ /**
53
+ * Drop shadow depth. `0` is the default — a marker lies on the thing it is
54
+ * marking rather than floating above it.
55
+ * @default 0
56
+ */
57
+ elevation?: PlassElevation;
58
+ /**
59
+ * What a screen reader hears instead of the raw content. `content={3}` on a
60
+ * bell is "3" to a reader and means nothing; `label="3 unread notifications"`
61
+ * is the sentence.
62
+ */
63
+ label?: string;
64
+ /**
65
+ * What the badge is pinned to. Without it the badge is a standalone marker
66
+ * that lays out inline, which is what a status pill in a table cell is.
67
+ */
68
+ children?: React.ReactNode;
69
+ }
70
+ /**
71
+ * A small mark in the corner of something else: unread mail on an inbox icon, a
72
+ * status dot on an avatar, a count on a tab.
73
+ *
74
+ * The shell is a `<span>` that wraps the anchor and does nothing but establish a
75
+ * positioning context — no width, no padding, `align-middle` — so a badged icon
76
+ * button still measures and lines up exactly like a bare one. With no children
77
+ * the marker lays out inline instead, which is what a standalone status pill is.
78
+ *
79
+ * There is no Base UI primitive under this, and there should not be: a badge has
80
+ * no interaction, no state and no keyboard contract. It is a mark. Wiring it to a
81
+ * widget primitive would hand every decorative dot a role it cannot honour.
82
+ *
83
+ * What it does owe a screen reader is a sentence rather than a number, which is
84
+ * what `label` is for — `content={3}` beside a bell reads out as "3".
85
+ */
86
+ export declare const PlBadge: React.ForwardRefExoticComponent<PlBadgeProps & React.RefAttributes<HTMLSpanElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,Fragment as t,jsxs as s}from"react/jsx-runtime";import*as m from"react";import{controlSlots as o,glassClasses as a,hasContent as l,srOnlyClasses as n,transitionClasses as r}from"../../internal/styles.js";const i={xs:"h-3.5 min-w-3.5",sm:"h-4 min-w-4",md:"h-4.5 min-w-4.5",lg:"h-5 min-w-5",xl:"h-6 min-w-6"},d={xs:"size-1.5",sm:"size-2",md:"size-2.5",lg:"size-2.5",xl:"size-3"},p={xs:"text-[0.5625rem]",sm:"text-[0.625rem]",md:"text-[0.6875rem]",lg:"text-[0.75rem]",xl:"text-[0.8125rem]"},b={default:{xs:"px-1",sm:"px-1",md:"px-1.5",lg:"px-1.5",xl:"px-2"},compact:{xs:"px-0.5",sm:"px-0.5",md:"px-1",lg:"px-1",xl:"px-1.5"}},x="rounded-full",c={xs:{badge:"-mt-1.5 -mb-1.5 -ms-1.5 -me-1.5",dot:"-mt-0.5 -mb-0.5 -ms-0.5 -me-0.5"},sm:{badge:"-mt-2 -mb-2 -ms-2 -me-2",dot:"-mt-1 -mb-1 -ms-1 -me-1"},md:{badge:"-mt-2 -mb-2 -ms-2 -me-2",dot:"-mt-1 -mb-1 -ms-1 -me-1"},lg:{badge:"-mt-2.5 -mb-2.5 -ms-2.5 -me-2.5",dot:"-mt-1 -mb-1 -ms-1 -me-1"},xl:{badge:"-mt-3 -mb-3 -ms-3 -me-3",dot:"-mt-1.5 -mb-1.5 -ms-1.5 -me-1.5"}},g={"top-start":"top-0 start-0","top-end":"top-0 end-0","bottom-start":"bottom-0 start-0","bottom-end":"bottom-0 end-0"},f={"top-start":"mt-[7%] ms-[7%]","top-end":"mt-[7%] me-[7%]","bottom-start":"mb-[7%] ms-[7%]","bottom-end":"mb-[7%] me-[7%]"},h={solid:/* @__PURE__ */["text-(--p-on-solid) [background-image:var(--p-fill)]","[box-shadow:var(--p-elev),var(--p-lift)]"].join(" "),glass:/* @__PURE__ */[a,"border text-(--p-accent) bg-(--plass-glass)","[border-color:var(--plass-border)]","[box-shadow:var(--p-elev),var(--plass-gloss-glass)]"].join(" "),ghost:"text-(--p-accent) bg-(--p-soft-press)"};export const PlBadge=/* @__PURE__ */m.forwardRef(function PlBadge({variant:m="solid",size:a="md",color:u="primary",density:v="default",elevation:w=0,content:j,max:y=99,dot:z=!1,showZero:N=!1,invisible:k=!1,placement:B="top-end",overlap:P="square",label:$,className:q,style:C,children:F,...R},Z){const A=l(F),D=!l(j)||0===j&&!N,E=z||D,G=k||D&&!z,H=["pointer-events-none z-10 inline-flex shrink-0 items-center justify-center","font-semibold tabular-nums whitespace-nowrap",x,r,h[m],E?d[a]:[i[a],p[a],b[v][a]].join(" "),A?`absolute ${g[B]}`:"relative align-middle",A?E?c[a].dot:c[a].badge:"",A&&"circle"===P?f[B]:"",G?"invisible":"",q??""].filter(Boolean).join(" "),I=function capContent(e,t){return"number"==typeof e&&e>t?`${t}+`:e}(j,y),J=e("span",{ref:Z,className:H,style:{...o(u,w,m),...C},"aria-hidden":!!G||void 0,...R,children:G?null:s(t,{children:[E||$?e("span",{className:n,children:$??I}):null,E?null:e("span",{"aria-hidden":!!$||void 0,children:I})]})});return A?s("span",{className:"relative inline-flex shrink-0 align-middle",children:[F,J]}):J});
@@ -0,0 +1,2 @@
1
+ export { PlBadge } from './PlBadge.js';
2
+ export type { PlBadgeOverlap, PlBadgeProps } from './PlBadge.js';
@@ -0,0 +1 @@
1
+ export{PlBadge}from"./PlBadge.js";
@@ -0,0 +1,64 @@
1
+ import * as React from 'react';
2
+ import type { PlassElevation, PlassStyleProps } from '../../types.js';
3
+ /**
4
+ * The props are a `<figure>`'s rather than a `<blockquote>`'s, which is a
5
+ * consequence of where the drawing happens: everything a caller passes lands on
6
+ * the wrapper, and the wrapper is a figure or a div. Both are `HTMLElement`, so
7
+ * an event handler written against one works on the other.
8
+ */
9
+ export interface PlBlockquoteProps extends PlassStyleProps, Omit<React.ComponentPropsWithoutRef<'figure'>, 'color'> {
10
+ /**
11
+ * Drop shadow depth. `0` is the default — a quote is set *into* a page rather
12
+ * than floating over it, so it is raised even less often than a `PlCard`.
13
+ * @default 0
14
+ */
15
+ elevation?: PlassElevation;
16
+ /**
17
+ * Who said it. Its presence is what turns the quote into a `<figure>` with a
18
+ * `<figcaption>`, which is the markup the HTML spec asks for: an attribution
19
+ * is *about* the quote and is not part of what was said.
20
+ */
21
+ author?: React.ReactNode;
22
+ /**
23
+ * Where it is from — a book, a talk, a page. Rendered inside a `<cite>`, which
24
+ * is the element for the title of a work and, per the spec, never for the name
25
+ * of a person. That is what `author` is.
26
+ */
27
+ source?: React.ReactNode;
28
+ /**
29
+ * URL of the document the quote was taken from. Lands on the `<blockquote>`'s
30
+ * own `cite` attribute, which is machine-readable and shown to nobody — use
31
+ * `source` for the part a reader should see.
32
+ */
33
+ cite?: string;
34
+ /**
35
+ * The mark drawn before the quote. Omit it for the house glyph, pass a node to
36
+ * replace it, pass `false` to take it away — the same three-way spelling
37
+ * `PlAlert` uses for the same idea.
38
+ */
39
+ icon?: React.ReactNode | false;
40
+ /** What was said. */
41
+ children?: React.ReactNode;
42
+ }
43
+ /**
44
+ * Somebody else's words, set apart from your own.
45
+ *
46
+ * There is no Base UI primitive under this and there should not be: a quote has
47
+ * no state, no keyboard contract and nothing to interact with. What it has is
48
+ * markup that is easy to get wrong, and getting it right is most of the point.
49
+ *
50
+ * **Nothing is drawn on the `<blockquote>` itself.** The surface, the rule and
51
+ * the padding all belong to the element around it, and that is not tidiness —
52
+ * `blockquote` is one of the handful of tags a host stylesheet still styles by
53
+ * name. VitePress's `.vp-doc blockquote` sets a grey `border-left`, a
54
+ * `padding-left` and a `color`, all at a specificity a one-class utility cannot
55
+ * outrank, so a rule drawn on the quote itself would silently come out grey and
56
+ * a pixel too thin. Moving the drawing onto a wrapper is what lets the docs undo
57
+ * VitePress's version without also undoing this one.
58
+ *
59
+ * The wrapper is a `<figure>` when there is an attribution and a `<div>` when
60
+ * there is not, because the HTML spec is explicit that the attribution goes
61
+ * *outside* the blockquote — a name inside it claims the speaker said their own
62
+ * name — and a `<figure>` with no `<figcaption>` in it is a figure of nothing.
63
+ */
64
+ export declare const PlBlockquote: React.ForwardRefExoticComponent<PlBlockquoteProps & React.RefAttributes<HTMLElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as s}from"react/jsx-runtime";import*as r from"react";import{glassClasses as l,hasContent as a,metaTextClasses as t,radiusClasses as o,sheetPaddingXClasses as n,sheetPaddingYClasses as i,surfaceSlots as c,transitionClasses as d}from"../../internal/styles.js";const m={xs:"text-[0.75rem]/[1.25rem]",sm:"text-[0.8125rem]/[1.375rem]",md:"text-[0.9375rem]/[1.625rem]",lg:"text-[1.0625rem]/[1.875rem]",xl:"text-[1.25rem]/[2.125rem]"},p="border-s-2 [border-inline-start-color:var(--p-accent)]",u={solid:/* @__PURE__ */[l,"bg-(--plass-glass-press)","[box-shadow:var(--p-elev),var(--plass-gloss-glass)]"].join(" "),glass:/* @__PURE__ */[l,"border border-s-2 bg-(--plass-glass)","[border-color:var(--plass-glass-line)]","[box-shadow:var(--p-elev),var(--plass-gloss-glass)]"].join(" "),ghost:"bg-transparent"};function QuoteMarkIcon(){return e("svg",{viewBox:"0 0 16 16",fill:"none","aria-hidden":"true",children:e("path",{d:"M6.4 3.6c-2.3.9-3.7 2.8-3.7 5.1 0 2 1.2 3.3 2.8 3.3 1.4 0 2.5-1 2.5-2.4 0-1.3-.9-2.2-2.1-2.2-.2 0-.4 0-.6.1.3-1 1.1-1.8 2.2-2.3l-1.1-1.6ZM13.3 3.6c-2.3.9-3.7 2.8-3.7 5.1 0 2 1.2 3.3 2.8 3.3 1.4 0 2.5-1 2.5-2.4 0-1.3-.9-2.2-2.1-2.2-.2 0-.4 0-.6.1.3-1 1.1-1.8 2.2-2.3l-1.1-1.6Z",fill:"currentColor"})})}export const PlBlockquote=/* @__PURE__ */r.forwardRef(function PlBlockquote({variant:r="ghost",size:l="md",color:f="primary",density:g="default",elevation:x=0,author:h,source:v,cite:b,icon:j,className:N,style:k,children:y,...w},B){const M=a(h)||a(v),q=void 0===j?e(QuoteMarkIcon,{}):j,z=["flex flex-col text-(--plass-fg)",p,"ghost"===r?"":`${o[l]} rounded-s-none`,u[r],n[g][l],i[g][l],d,N??""].filter(Boolean).join(" "),I=s("blockquote",{cite:b,className:m[l],children:[a(q)?e("span",{"aria-hidden":"true",className:"mb-1 block size-[2em] text-(--p-soft-press) [&>svg]:size-full",children:q}):null,y]}),P={...c(f,x),...k};return M?s("figure",{ref:B,className:z,style:P,...w,children:[I,s("figcaption",{className:["mt-2 flex flex-wrap items-baseline gap-x-1.5 text-(--plass-muted-fg)",t[l]].join(" "),children:[a(h)?s("span",{className:"font-medium text-(--plass-fg)",children:[e("span",{"aria-hidden":"true",children:"— "}),h]}):null,a(v)?e("cite",{className:"not-italic",children:v}):null]})]}):e("div",{ref:B,className:z,style:P,...w,children:I})});
@@ -0,0 +1,2 @@
1
+ export { PlBlockquote } from './PlBlockquote.js';
2
+ export type { PlBlockquoteProps } from './PlBlockquote.js';
@@ -0,0 +1 @@
1
+ export{PlBlockquote}from"./PlBlockquote.js";