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,2 @@
1
+ export { PlTab, PlTabPanel, PlTabs } from './PlTabs.js';
2
+ export type { PlTabPanelProps, PlTabProps, PlTabValue, PlTabsProps } from './PlTabs.js';
@@ -0,0 +1 @@
1
+ export{PlTab,PlTabPanel,PlTabs}from"./PlTabs.js";
@@ -1,14 +1,14 @@
1
1
  import * as React from 'react';
2
- import type { PlassElevation, PlassStyleProps } from '../../types';
2
+ import type { PlassElevation, PlassStyleProps } from '../../types.js';
3
3
  /** How the multiline control may be resized by the user. Ignored when single line. */
4
- export type TextFieldResize = 'none' | 'vertical' | 'horizontal' | 'both';
4
+ export type PlTextFieldResize = 'none' | 'vertical' | 'horizontal' | 'both';
5
5
  /**
6
6
  * Native `<input>` attributes, minus the three that collide with the shared
7
7
  * vocabulary: `color` and `size` are Plass props here, and `onChange` is widened
8
8
  * below so the same handler types against a `<textarea>` in multiline mode.
9
9
  */
10
10
  type NativeControlProps = Omit<React.ComponentPropsWithoutRef<'input'>, 'color' | 'size' | 'onChange' | 'children'>;
11
- export interface TextFieldProps extends PlassStyleProps, NativeControlProps {
11
+ export interface PlTextFieldProps extends PlassStyleProps, NativeControlProps {
12
12
  /**
13
13
  * Drop shadow depth. `0` is the default — a field is a well cut into the
14
14
  * sheet, not a key resting on it, and the one place in the library where a
@@ -30,7 +30,7 @@ export interface TextFieldProps extends PlassStyleProps, NativeControlProps {
30
30
  * breaks a form's column, so only the vertical axis is on by default.
31
31
  * @default 'vertical'
32
32
  */
33
- resize?: TextFieldResize;
33
+ resize?: PlTextFieldResize;
34
34
  /**
35
35
  * Label above the control, wired to it by Base UI's Field. There is no
36
36
  * floating variant on purpose: a floating label needs a `transform` on the
@@ -61,5 +61,5 @@ export interface TextFieldProps extends PlassStyleProps, NativeControlProps {
61
61
  fullWidth?: boolean;
62
62
  onChange?: React.ChangeEventHandler<HTMLInputElement | HTMLTextAreaElement>;
63
63
  }
64
- export declare const TextField: React.ForwardRefExoticComponent<TextFieldProps & React.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
64
+ export declare const PlTextField: React.ForwardRefExoticComponent<PlTextFieldProps & React.RefAttributes<HTMLInputElement | HTMLTextAreaElement>>;
65
65
  export {};
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as t}from"react/jsx-runtime";import*as l from"react";import{Field as n}from"@base-ui/react/field";import{Input as s}from"@base-ui/react/input";import{Spinner as r}from"../../internal/icons.js";import{controlHeightClasses as i,controlTextLeadingClasses as a,disabledClasses as o,fieldReadOnlyClasses as c,fieldRestClasses as d,focusWithinRingClasses as m,gapClasses as p,hasContent as u,iconClasses as x,metaTextClasses as f,paddingXClasses as h,radiusClasses as g,stackGapClasses as $,surfaceSlots as y,transitionClasses as b}from"../../internal/styles.js";const j={xs:`${p.xs} ${g.xs} ${a.xs}`,sm:`${p.sm} ${g.sm} ${a.sm}`,md:`${p.md} ${g.md} ${a.md}`,lg:`${p.lg} ${g.lg} ${a.lg}`,xl:`${p.xl} ${g.xl} ${a.xl}`},v={xs:"min-h-6 py-[3px]",sm:"min-h-8 py-[6px]",md:"min-h-10 py-[9px]",lg:"min-h-12 py-[11px]",xl:"min-h-14 py-[13px]"},w={none:"resize-none",vertical:"resize-y",horizontal:"resize-x",both:"resize"},N=/* @__PURE__ */["group relative flex w-full cursor-text","[-webkit-tap-highlight-color:transparent]",b,m,x].join(" "),z=d,k=c;export const PlTextField=/* @__PURE__ */l.forwardRef(function PlTextField({variant:a="glass",size:c="md",color:d="primary",density:m="default",elevation:p=0,multiline:x=!1,rows:g=3,resize:b="vertical",label:D,description:P,error:R,invalid:T,startIcon:B,endIcon:F,loading:I=!1,fullWidth:O=!1,readOnly:C=!1,disabled:E=!1,type:L="text",className:W,style:q,...A},G){const H=u(R),J=T??H,K=J?"danger":d,M=l.useRef(null),Q=l.useCallback(e=>{M.current=e,"function"==typeof G?G(e):G&&(G.current=e)},[G]),S=[N,j[c],x?`${v[c]} items-start`:`${i[c]} items-center`,h[m][c],E?o[a]:C?k[a]:z[a]].filter(Boolean).join(" "),U=["min-w-0 flex-1 bg-transparent [font:inherit] text-inherit","[outline:none]","placeholder:text-(--plass-muted-fg)","caret-(--p-accent) selection:bg-(--p-soft-press)","disabled:cursor-not-allowed",x?`block ${w[b]}`:"self-stretch"].join(" "),V="inline-flex h-[1lh] shrink-0 items-center text-(--plass-muted-fg) transition-[color] duration-(--plass-duration) group-focus-within:text-(--p-accent)";return t(n.Root,{disabled:E,invalid:J,className:["flex-col align-top",$[c],O?"flex w-full":"inline-flex",W??""].filter(Boolean).join(" "),style:{...y(K,p),...q},children:[D?e(n.Label,{className:[f[c],"font-semibold",E?"text-(--plass-muted-fg)":"text-(--plass-fg)"].join(" "),children:D}):null,t("span",{className:S,onPointerDown:e=>{e.target!==e.currentTarget||E||(e.preventDefault(),M.current?.focus())},children:[B?e("span",{className:V,children:B}):null,e(s,{ref:Q,className:U,disabled:E,readOnly:C,"aria-busy":I||void 0,"data-loading":I||void 0,...x?{render:e("textarea",{rows:g})}:{type:L},...A}),I?e("span",{className:V,children:e(r,{})}):F?e("span",{className:V,children:F}):null]}),P?e(n.Description,{className:[f[c],"text-(--plass-muted-fg)"].join(" "),children:P}):null,H?e(n.Error,{match:!0,className:[f[c],"text-(--p-accent)"].join(" "),children:R}):null]})});
@@ -1,2 +1,2 @@
1
- export { TextField } from './TextField';
2
- export type { TextFieldProps, TextFieldResize } from './TextField';
1
+ export { PlTextField } from './PlTextField.js';
2
+ export type { PlTextFieldProps, PlTextFieldResize } from './PlTextField.js';
@@ -1 +1 @@
1
- export{TextField}from"./TextField";
1
+ export{PlTextField}from"./PlTextField.js";
@@ -0,0 +1,80 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassColor, PlassSize } from '../../types.js';
4
+ /**
5
+ * When the line under a link is drawn.
6
+ *
7
+ * `always` is the default, and the reason is `color`: a link takes no colour
8
+ * family unless one is asked for, so with the line off there would be nothing
9
+ * at all distinguishing it from the sentence it sits in. That is also why this
10
+ * is not a boolean — "no underline" is a real choice for a link in a nav bar or
11
+ * a footer, where position already says what it is, and it should have to be
12
+ * spelled out rather than fallen into.
13
+ */
14
+ export type PlTextLinkUnderline = 'always' | 'hover' | 'none';
15
+ export interface PlTextLinkProps extends Omit<React.ComponentPropsWithoutRef<'a'>, 'color'> {
16
+ /** Where the link goes. */
17
+ href: string;
18
+ /**
19
+ * When the underline is drawn.
20
+ * @default 'always'
21
+ */
22
+ underline?: PlTextLinkUnderline;
23
+ /**
24
+ * Semantic colour role. Unlike every control in the library this has **no
25
+ * default** — a link in a paragraph is usually the paragraph's own colour
26
+ * with a line under it, and a component that arrived pre-dyed is one a page
27
+ * has to undo.
28
+ */
29
+ color?: PlassColor;
30
+ /**
31
+ * The type scale. Also no default: a link inside a sentence is the size of
32
+ * the sentence. Set it for a link that stands on its own.
33
+ */
34
+ size?: PlassSize;
35
+ /**
36
+ * Opens the link in a new tab, with the `rel` that keeps the new page from
37
+ * reaching back into this one.
38
+ *
39
+ * A window changing under the reader is the one thing about a link that
40
+ * cannot be seen before it happens, so this also turns `icon` on by default
41
+ * and adds a line for a screen reader.
42
+ * @default false
43
+ */
44
+ newTab?: boolean;
45
+ /**
46
+ * The mark after the label. `true` draws the arrow leaving its box when
47
+ * `newTab` is on and the chain otherwise, `false` draws nothing, and a node
48
+ * of your own replaces the glyph.
49
+ *
50
+ * Left out, it follows `newTab`.
51
+ */
52
+ icon?: React.ReactNode | boolean;
53
+ /**
54
+ * What a screen reader hears after the label on a `newTab` link. Never drawn.
55
+ * @default '(opens in a new tab)'
56
+ */
57
+ newTabLabel?: string;
58
+ /**
59
+ * Renders something other than an `<a>` — the `Link` a router brings, most of
60
+ * the time. `href` still goes through, so `render={<NextLink href="…" />}`
61
+ * needs it written once, on the `PlTextLink`.
62
+ */
63
+ render?: useRender.RenderProp;
64
+ /** The label. */
65
+ children?: React.ReactNode;
66
+ }
67
+ /**
68
+ * A link, in a sentence or on its own.
69
+ *
70
+ * Everything about it is deliberately smaller than a PlButton. It has no
71
+ * surface, no height of its own and no colour unless asked — what it has is a
72
+ * line under it, which is the one mark a reader already knows means "this goes
73
+ * somewhere".
74
+ *
75
+ * The three things it does that a bare `<a>` does not: it draws that line on a
76
+ * schedule (`always`, or only under the pointer), it marks a link that opens a
77
+ * new tab both visibly and for a screen reader, and it takes `render`, so the
78
+ * `Link` a router brings can wear all of it.
79
+ */
80
+ export declare const PlTextLink: React.ForwardRefExoticComponent<PlTextLinkProps & React.RefAttributes<HTMLAnchorElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as n,Fragment as e,jsxs as r}from"react/jsx-runtime";import*as s from"react";import{useRender as i}from"@base-ui/react/use-render";import{ExternalLinkIcon as l,LinkIcon as o}from"../../internal/icons.js";import{controlTextLeadingClasses as a,focusRingClasses as t,srOnlyClasses as c}from"../../internal/styles.js";const p={always:"[&.plass-link]:underline",hover:"[&.plass-link]:no-underline [&.plass-link]:hover:underline",none:"[&.plass-link]:no-underline"},u=/* @__PURE__ */["plass-link","cursor-pointer","[&_svg]:pointer-events-none [&_svg]:inline [&_svg]:size-[0.95em] [&_svg]:shrink-0",/* @__PURE__ */["[transition-property:color,text-decoration-color]","[transition-duration:var(--plass-duration)]","[transition-timing-function:var(--plass-ease)]"].join(" "),t,"focus-visible:rounded-[0.25rem]"].join(" ");export const PlTextLink=/* @__PURE__ */s.forwardRef(function PlTextLink({href:s,underline:t="always",color:d,size:m,newTab:f=!1,icon:v,newTabLabel:h="(opens in a new tab)",render:k,className:x,style:g,children:j,...b},w){const y=v??f,_=!0===y?n(f?l:o,{}):y,N=[u,m?a[m]:"",p[t],d?"[&.plass-link]:text-(--p-accent)":"[&.plass-link]:text-inherit",x??""].filter(Boolean).join(" "),T={"--p-underline":"color-mix(in oklab, currentColor 45%, transparent)","--p-underline-hover":"currentColor","--p-ring":`var(--plass-${d??"primary"}-ring)`,...d?{"--p-accent":`var(--plass-${d}-accent)`}:null},{rel:L,...z}=b,B=f?[...new Set([...(L??"").split(/\s+/).filter(Boolean),"noopener","noreferrer"])].join(" "):L;return i({render:k??n("a",{}),ref:w,props:{href:s,target:f?"_blank":void 0,className:N,style:{...T,...g},children:r(e,{children:[j,_?n("span",{className:"ms-[0.25em]",children:_}):null,f?r(e,{children:[" ",n("span",{className:c,children:h})]}):null]}),...z,rel:B}})});
@@ -0,0 +1,2 @@
1
+ export { PlTextLink } from './PlTextLink.js';
2
+ export type { PlTextLinkProps, PlTextLinkUnderline } from './PlTextLink.js';
@@ -0,0 +1 @@
1
+ export{PlTextLink}from"./PlTextLink.js";
@@ -0,0 +1,88 @@
1
+ import * as React from 'react';
2
+ import { type PlassPickerLabels, type TimeUnit } from '../../internal/calendar.js';
3
+ import { type PlassPickerShellProps } from '../../internal/picker.js';
4
+ /**
5
+ * Which column of the clock a row belongs to. Re-exported so a caller writing a
6
+ * `shouldDisableTime` rule can name the argument it is handed.
7
+ */
8
+ export type { TimeUnit };
9
+ export interface PlTimePickerProps extends PlassPickerShellProps {
10
+ /** The chosen time. A `Date`, so it carries a day as well — see `referenceDate`. */
11
+ value?: Date | null;
12
+ defaultValue?: Date | null;
13
+ onValueChange?: (value: Date | null) => void;
14
+ open?: boolean;
15
+ defaultOpen?: boolean;
16
+ onOpenChange?: (open: boolean) => void;
17
+ /**
18
+ * The day a chosen time is written onto while there is no value yet.
19
+ * @default today
20
+ */
21
+ referenceDate?: Date;
22
+ /** The earliest time of day that may be chosen. Only the clock is read. */
23
+ minTime?: Date | null;
24
+ /** The latest time of day that may be chosen. */
25
+ maxTime?: Date | null;
26
+ /**
27
+ * Blocks individual rows. Called once per row per column with the instant that
28
+ * row would produce and the column it is in, so a rule may be as coarse as
29
+ * "no afternoons" or as fine as one minute.
30
+ */
31
+ shouldDisableTime?: (value: Date, unit: TimeUnit) => boolean;
32
+ /** A 12-hour dial with an AM/PM column. Defaults to whatever the locale does. */
33
+ hour12?: boolean;
34
+ /** Adds the seconds column. @default false */
35
+ showSeconds?: boolean;
36
+ /** How far apart the rows of each column are. @default 1 */
37
+ hourStep?: number;
38
+ minuteStep?: number;
39
+ secondStep?: number;
40
+ /**
41
+ * BCP 47 tag deciding whether the clock is on a 12-hour dial, what AM and PM
42
+ * are called, and how the trigger writes the time. Defaults to the browser's.
43
+ */
44
+ locale?: string;
45
+ /**
46
+ * How the trigger writes the chosen time. Passed straight to `Intl`.
47
+ * @default { hour: 'numeric', minute: '2-digit' }, plus seconds when shown
48
+ */
49
+ format?: Intl.DateTimeFormatOptions;
50
+ /** Shown in the trigger while nothing is chosen. */
51
+ placeholder?: React.ReactNode;
52
+ /** Offers the × that empties the control. @default false */
53
+ clearable?: boolean;
54
+ /** Offers the shortcut to the current time in the footer. @default true */
55
+ showNowButton?: boolean;
56
+ /**
57
+ * Closes the popup as soon as any column is touched. `false` by default and
58
+ * unlike `PlDatePicker`, because a time is two answers and closing after the
59
+ * first one would make choosing 9:30 a matter of opening the popup twice.
60
+ * @default false
61
+ */
62
+ closeOnSelect?: boolean;
63
+ /** The strings the picker says. Every one has an English default. */
64
+ labels?: Partial<PlassPickerLabels>;
65
+ /** Identifies the field when a form is submitted, as `HH:MM` (`HH:MM:SS`). */
66
+ name?: string;
67
+ }
68
+ /**
69
+ * A time of day, chosen from columns.
70
+ *
71
+ * Columns because they are the shape that answers what a time picker is actually
72
+ * asked: "half past nine" is two glances, and "any time at all, on the hour" is
73
+ * a column you never touch. A clock face is prettier and needs a `transform` to
74
+ * read, which this library does not have.
75
+ *
76
+ * The bounds are checked at the granularity of the column being drawn, which is
77
+ * the detail that separates a working time picker from a frustrating one. With a
78
+ * `minTime` of 09:30 the hour `9` stays available — the hour *contains* allowed
79
+ * minutes — and it is the minute column that greys out `00` through `25`. The
80
+ * naive check compares the whole candidate instant, hides the 9 entirely, and
81
+ * makes half past nine unreachable.
82
+ *
83
+ * The value is a `Date` rather than a string or a number of minutes, because
84
+ * everything else in this library that carries a moment is one, and because a
85
+ * time on its own has nowhere to record that it crossed a DST boundary.
86
+ * `referenceDate` is the day a bare time is written onto.
87
+ */
88
+ export declare const PlTimePicker: React.ForwardRefExoticComponent<PlTimePickerProps & React.RefAttributes<HTMLButtonElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as n}from"react/jsx-runtime";import*as o from"react";import{PlButton as l}from"../button/PlButton.js";import{TimeGrid as t,usePickerLabels as s}from"../../internal/calendar.js";import{ClockIcon as a}from"../../internal/icons.js";import{PickerFooter as i,PickerShell as r}from"../../internal/picker.js";import{displaySamples as c,formatDate as d,isHour12 as u,isValidDate as m,secondsOfDay as p,timeUnitSpan as h,toISOTime as f,withPlaceholder as g,withTime as S}from"../../internal/date.js";import{cx as b}from"../../internal/styles.js";export const PlTimePicker=/* @__PURE__ */o.forwardRef(function PlTimePicker({value:y,defaultValue:v,onValueChange:j,open:C,defaultOpen:w,onOpenChange:k,referenceDate:x,minTime:z,maxTime:D,shouldDisableTime:O,hour12:T,showSeconds:P=!1,hourStep:M=1,minuteStep:V=1,secondStep:B=1,locale:I,format:N,placeholder:R,clearable:F=!1,showNowButton:H=!0,closeOnSelect:q=!1,labels:A,name:E,size:G="md",color:J="primary",density:K="default",readOnly:L=!1,disabled:Q=!1,startIcon:U,...W},X){const Y=s(A),Z=T??u(I),[$,_]=o.useState(v??null),ee=void 0!==y?y:$,[ne,oe]=o.useState(w??!1),le=C??ne,[te]=o.useState(()=>x??new Date),setOpen=e=>{e&&(L||Q)||(void 0===C&&oe(e),k?.(e))},commit=e=>{void 0===y&&_(e),j?.(e)},se=o.useCallback((e,n)=>{const[o,l]=h(n,e);return!!(m(z)&&l<p(z))||!!(m(D)&&o>p(D))||(O?.(e,n)??!1)},[z,D,O]),ae=o.useMemo(()=>N??{hour:"numeric",minute:"2-digit",...P?{second:"2-digit"}:{}},[N,P]),ie=new Date,re=S(x??te,{hours:ie.getHours(),minutes:ie.getMinutes(),seconds:P?ie.getSeconds():0}),ce=H||F||!q,de=o.useMemo(()=>g(c(I,ae),R),[I,ae,R]);return e(r,{...W,size:G,color:J,density:K,readOnly:L,disabled:Q,triggerRef:X,startIcon:U??e(a,{}),display:m(ee)?d(ee,I,ae):R??"",samples:de,empty:!m(ee),clearable:F,onClear:()=>commit(null),open:le,onOpenChange:setOpen,labels:Y,hiddenValues:E?[{name:E,value:m(ee)?f(ee,P):""}]:void 0,children:n("div",{className:b("flex flex-col",ce&&"gap-1.5"),children:[e(t,{size:G,density:K,locale:I,value:m(ee)?ee:null,referenceDate:x??te,onChange:e=>{commit(e),q&&setOpen(!1)},hour12:Z,showSeconds:P,hourStep:M,minuteStep:V,secondStep:B,shouldDisableTime:se,labels:Y,autoFocus:!0}),ce?n(i,{size:G,children:[F?e(l,{variant:"ghost",size:G,color:J,density:"compact",onClick:()=>{commit(null),setOpen(!1)},children:Y.clear}):null,H?e(l,{variant:"ghost",size:G,color:J,density:"compact",disabled:se(re,"second"),onClick:()=>{commit(re),setOpen(!1)},children:Y.now}):null,q?null:e(l,{variant:"solid",size:G,color:J,density:"compact",onClick:()=>setOpen(!1),children:Y.done})]}):null]})})});
@@ -0,0 +1,2 @@
1
+ export { PlTimePicker } from './PlTimePicker.js';
2
+ export type { PlTimePickerProps, TimeUnit } from './PlTimePicker.js';
@@ -0,0 +1 @@
1
+ export{PlTimePicker}from"./PlTimePicker.js";
@@ -0,0 +1,98 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassColor, PlassDensity, PlassOrientation, PlassSize } from '../../types.js';
4
+ /**
5
+ * How far along one item is.
6
+ *
7
+ * Three states rather than two, because "the one you are on" is not the same
8
+ * claim as "done", and a sequence that cannot say which step is current is a
9
+ * list. Each gets its own axis — a filled bullet, a filled bullet with a halo
10
+ * around it, an empty one — rather than three shades of the same thing.
11
+ */
12
+ export type PlTimelineStatus = 'complete' | 'current' | 'upcoming';
13
+ /** How the line between two items is drawn. `none` leaves the gap open. */
14
+ export type PlTimelineConnector = 'solid' | 'dashed' | 'dotted' | 'none';
15
+ export interface PlTimelineProps extends Omit<React.ComponentPropsWithoutRef<'ol'>, 'color'> {
16
+ /**
17
+ * How far the sequence has got: the index of the item being worked on now.
18
+ * Everything before it is complete, everything after it is still to come.
19
+ *
20
+ * An index rather than a value, because a timeline has no selection — nothing
21
+ * here is chosen, and the only question is how far down the list reality has
22
+ * reached. Omit it and every item is `upcoming` unless it says otherwise; pass
23
+ * the item count to mark the whole sequence done.
24
+ */
25
+ active?: number;
26
+ /** @default 'md' */
27
+ size?: PlassSize;
28
+ /** @default 'primary' */
29
+ color?: PlassColor;
30
+ /** Spacing between items. Never the type scale, never the bullet. */
31
+ density?: PlassDensity;
32
+ /**
33
+ * Which way the sequence runs. `vertical` is the default and the one that
34
+ * takes an arbitrary number of steps with an arbitrary amount to say about
35
+ * each; `horizontal` is the stepper across the top of a checkout, and it is
36
+ * only honest while every label is short.
37
+ * @default 'vertical'
38
+ */
39
+ orientation?: PlassOrientation;
40
+ /** Renders something other than an `<ol>` — Base UI's own escape hatch. */
41
+ render?: useRender.RenderProp;
42
+ children?: React.ReactNode;
43
+ }
44
+ export interface PlTimelineItemProps extends Omit<React.ComponentPropsWithoutRef<'li'>, 'color' | 'title'> {
45
+ /** The heading of this step. */
46
+ title?: React.ReactNode;
47
+ /**
48
+ * When it happened — a date, a duration, a name. Set beside the title on a
49
+ * wide item and under it on a narrow one.
50
+ */
51
+ meta?: React.ReactNode;
52
+ /**
53
+ * What goes inside the bullet: a number, an icon, an avatar. Omit it and the
54
+ * bullet is a plain disc, which is what a step with nothing to say about
55
+ * itself should be.
56
+ */
57
+ bullet?: React.ReactNode;
58
+ /**
59
+ * Overrides what the timeline's `active` would have computed for this item — a
60
+ * step that failed and stopped the sequence, a step that was skipped.
61
+ */
62
+ status?: PlTimelineStatus;
63
+ /** Overrides the timeline's colour family for this item alone. */
64
+ color?: PlassColor;
65
+ /**
66
+ * How the line to the next item is drawn.
67
+ * @default 'solid'
68
+ */
69
+ connector?: PlTimelineConnector;
70
+ /** The body of the step. */
71
+ children?: React.ReactNode;
72
+ }
73
+ /**
74
+ * One step.
75
+ *
76
+ * Its index is not a prop and cannot be: an item that had to be told where it
77
+ * was in the list would be an item every caller could put in the wrong place,
78
+ * and `active={2}` would stop meaning anything. The `PlTimeline` numbers its
79
+ * children as it walks them, and hands each one its index through a context.
80
+ */
81
+ export declare const PlTimelineItem: React.ForwardRefExoticComponent<PlTimelineItemProps & React.RefAttributes<HTMLLIElement>>;
82
+ /**
83
+ * A sequence of steps, in the order they happen in.
84
+ *
85
+ * There is no Base UI primitive under this and there should not be: a timeline
86
+ * has no selection, no roving focus and no keyboard contract — it is a list, and
87
+ * reaching for a composite primitive to draw one would hand every consumer's
88
+ * record of events the semantics of a widget.
89
+ *
90
+ * It is an `<ol>` for the reason it exists at all: the order *is* the content. A
91
+ * screen reader announcing "list of 5 items" over an unordered list would be
92
+ * describing something else.
93
+ *
94
+ * The children are numbered here rather than by a prop on each item, so `active`
95
+ * has something to count against and inserting a step in the middle does not
96
+ * mean renumbering the ones after it.
97
+ */
98
+ export declare const PlTimeline: React.ForwardRefExoticComponent<PlTimelineProps & React.RefAttributes<HTMLOListElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,jsxs as l}from"react/jsx-runtime";import*as r from"react";import{useRender as t}from"@base-ui/react/use-render";import{cx as a,hasContent as s,iconClasses as o,metaTextClasses as n,sheetBodyClasses as i,sheetTitleClasses as d,surfaceSlots as p,transitionClasses as c}from"../../internal/styles.js";const m=/* @__PURE__ */r.createContext(null),u=/* @__PURE__ */r.createContext({index:0,last:!1}),x={xs:"0.875rem",sm:"1rem",md:"1.25rem",lg:"1.5rem",xl:"1.875rem"},f={xs:"gap-2",sm:"gap-2.5",md:"gap-3",lg:"gap-3.5",xl:"gap-4"},b={default:{xs:"pb-5",sm:"pb-6",md:"pb-7",lg:"pb-8",xl:"pb-10"},compact:{xs:"pb-3",sm:"pb-3.5",md:"pb-4",lg:"pb-5",xl:"pb-6"}},g={default:{xs:"pe-5",sm:"pe-6",md:"pe-7",lg:"pe-8",xl:"pe-10"},compact:{xs:"pe-3",sm:"pe-3.5",md:"pe-4",lg:"pe-5",xl:"pe-6"}},v={solid:"border-solid",dashed:"border-dashed",dotted:"border-dotted",none:""},h={complete:"[background-image:var(--p-fill)] text-(--p-on-solid)",current:"[background-image:var(--p-fill)] text-(--p-on-solid) [box-shadow:0_0_0_0.25rem_var(--p-soft)]",upcoming:"border-2 bg-(--plass-surface) text-(--plass-muted-fg) [border-color:var(--plass-border)]"},y={complete:"[border-color:var(--p-line-hover)]",current:"[border-color:var(--plass-border)]",upcoming:"[border-color:var(--plass-border)]"},N={complete:"text-(--plass-fg)",current:"text-(--p-accent)",upcoming:"text-(--plass-muted-fg)"};export const PlTimelineItem=/* @__PURE__ */r.forwardRef(function PlTimelineItem({title:t,meta:_,bullet:w,status:z,color:P,connector:j="solid",className:C,children:T,...k},I){const R=r.useContext(m),{index:$,last:A}=r.useContext(u),M=R?.size??"md",q=R?.density??"default",B=R?.orientation??"vertical",D=P??R?.color??"primary",E=R?.active??null,F=z??(null===E?"upcoming":$<E?"complete":$===E?"current":"upcoming"),G="horizontal"===B,H="none"!==j&&!A,J=e("span",{"aria-hidden":"true",className:a("relative z-10 flex shrink-0 items-center justify-center rounded-full","size-(--p-bullet) text-[calc(var(--p-bullet)*0.5)] leading-none font-semibold tabular-nums",h[F],c,o),children:w}),K=H?e("span",{"aria-hidden":"true",className:a("pointer-events-none absolute",G?"top-[calc(var(--p-bullet)/2_-_1px)] end-0 start-(--p-bullet) border-t-2":"top-(--p-bullet) bottom-0 start-[calc(var(--p-bullet)/2_-_1px)] border-s-2",v[j],y[F],c)}):null,L=l("div",{className:a("flex min-w-0 flex-col gap-0.5",G?"mt-2":""),children:[s(t)||s(_)?l("div",{className:"flex flex-wrap items-baseline gap-x-2",children:[s(t)?e("span",{className:a("font-semibold",d[M],N[F],c),children:t}):null,s(_)?e("span",{className:a("text-(--plass-muted-fg)",n[M]),children:_}):null]}):null,s(T)?e("div",{className:a("text-(--plass-muted-fg)",i[M]),children:T}):null]});return l("li",{ref:I,"aria-current":"current"===F?"step":void 0,"data-status":F,className:a("relative",G?a("flex min-w-0 flex-1 flex-col",A?"":g[q][M]):a("flex",f[M],A?"":b[q][M]),C),style:{"--p-bullet":x[M],...p(D,0),"--p-fill":`var(--plass-${D}-fill)`,"--p-on-solid":`var(--plass-${D}-on-solid)`},...k,children:[K,J,L]})});export const PlTimeline=/* @__PURE__ */r.forwardRef(function PlTimeline({active:l,size:s="md",color:o="primary",density:n="default",orientation:i="vertical",render:d,className:c,style:x,children:f,...b},g){const v=r.Children.toArray(f),h=v.length,y=r.useMemo(()=>({size:s,density:n,orientation:i,color:o,active:l??null}),[s,n,i,o,l]),N=t({render:d??e("ol",{}),ref:g,props:{role:"list",className:a("flex","horizontal"===i?"flex-row":"flex-col",c),style:{...p(o,0),...x},children:v.map((l,r)=>e(u.Provider,{value:{index:r,last:r===h-1},children:l},r)),...b}});return e(m.Provider,{value:y,children:N})});
@@ -0,0 +1,2 @@
1
+ export { PlTimeline, PlTimelineItem } from './PlTimeline.js';
2
+ export type { PlTimelineConnector, PlTimelineItemProps, PlTimelineProps, PlTimelineStatus } from './PlTimeline.js';
@@ -0,0 +1 @@
1
+ export{PlTimeline,PlTimelineItem}from"./PlTimeline.js";
@@ -0,0 +1,122 @@
1
+ import * as React from 'react';
2
+ import type { PlassAlign, PlassColor, PlassStyleProps, PlassVariant } from '../../types.js';
3
+ /**
4
+ * Where the stack sits.
5
+ *
6
+ * Written as two words rather than as a `side` plus an `align` pair, because
7
+ * they are not independent: a toast stack is always pinned to the top or the
8
+ * bottom, never to a side, and offering `left`/`right` as a "side" would invite
9
+ * a stack down the middle of the screen that nothing in the layout survives.
10
+ * The second half is `PlassAlign`, the same word every other component uses.
11
+ */
12
+ export type PlToastPosition = `top-${PlassAlign}` | `bottom-${PlassAlign}`;
13
+ /**
14
+ * The Plass style props a single toast can override, carried in Base UI's
15
+ * per-toast `data`. Anything not set here falls back to the provider.
16
+ */
17
+ export interface PlToastData {
18
+ color?: PlassColor;
19
+ variant?: PlassVariant;
20
+ icon?: React.ReactNode | false;
21
+ }
22
+ export interface PlToastOptions extends PlToastData {
23
+ /**
24
+ * Reusing an id updates that toast in place and restarts its timer, which is
25
+ * what "uploading… / uploaded" wants: one toast that changed its mind, not two
26
+ * stacked on each other.
27
+ */
28
+ id?: string;
29
+ /** The headline. */
30
+ title?: React.ReactNode;
31
+ /** The detail under it. A toast with only this is a one-line toast. */
32
+ description?: React.ReactNode;
33
+ /**
34
+ * How long before it dismisses itself, in milliseconds. `0` means it stays
35
+ * until it is closed — which is the right answer for anything the reader has
36
+ * to act on, because a toast that leaves before it is read said nothing.
37
+ */
38
+ timeout?: number;
39
+ /**
40
+ * `high` interrupts a screen reader; `low` waits for a pause. An error is
41
+ * worth interrupting for and a save confirmation is not.
42
+ * @default 'low'
43
+ */
44
+ priority?: 'low' | 'high';
45
+ /** The label of the action button. Passing it is what makes the button appear. */
46
+ actionLabel?: React.ReactNode;
47
+ onAction?: (event: React.MouseEvent<HTMLButtonElement>) => void;
48
+ /** Called when the toast closes, however it closed. */
49
+ onClose?: () => void;
50
+ /** Called once it has finished animating out and left the DOM. */
51
+ onRemove?: () => void;
52
+ }
53
+ export interface PlToastProviderProps extends Pick<PlassStyleProps, 'variant' | 'size' | 'density'> {
54
+ /** The default colour family. A single toast overrides it in `add`. */
55
+ color?: PlassColor;
56
+ /** @default 'bottom-end' */
57
+ position?: PlToastPosition;
58
+ /**
59
+ * How long a toast lasts by default, in milliseconds. `0` keeps every toast up
60
+ * until it is closed.
61
+ * @default 5000
62
+ */
63
+ timeout?: number;
64
+ /**
65
+ * How many are shown at once. The rest are kept and revealed as the stack
66
+ * drains rather than being thrown away.
67
+ * @default 3
68
+ */
69
+ limit?: number;
70
+ /**
71
+ * How wide a toast is allowed to get. Numbers are pixels.
72
+ * @default 380
73
+ */
74
+ width?: number | string;
75
+ /**
76
+ * Accessible name of every toast's × button. Never drawn.
77
+ * @default 'Close'
78
+ */
79
+ closeLabel?: string;
80
+ children?: React.ReactNode;
81
+ }
82
+ /**
83
+ * Raises toasts from anywhere under a `PlToastProvider`.
84
+ *
85
+ * A hook rather than a component, because the thing a caller has at the moment a
86
+ * toast is warranted is a click handler, not a place in the tree — and a
87
+ * `<PlToast open={…} />` they would have to keep mounted, with a piece of state
88
+ * per message, is the shape this component exists to avoid.
89
+ */
90
+ export declare function usePlToast(): {
91
+ /** Raises a toast and returns its id. */
92
+ add: (options: PlToastOptions) => string;
93
+ /** Closes one toast, or every toast when called with nothing. */
94
+ close: (id?: string) => void;
95
+ /** Changes a toast already on screen. */
96
+ update: (id: string, options: PlToastOptions) => void;
97
+ /**
98
+ * One toast that follows a promise: the loading message while it runs, then
99
+ * the success or the error. `timeout: 0` is applied to the loading state by
100
+ * Base UI, so a slow request cannot dismiss its own toast.
101
+ */
102
+ promise: <Value>(promise: Promise<Value>, options: {
103
+ loading: PlToastOptions;
104
+ success: PlToastOptions | ((value: Value) => PlToastOptions);
105
+ error: PlToastOptions | ((error: unknown) => PlToastOptions);
106
+ }) => Promise<Value>;
107
+ /** Every toast currently in the stack, newest first. */
108
+ toasts: import("@base-ui/react").ToastObject<PlToastData>[];
109
+ };
110
+ /**
111
+ * Puts the toast stack on the page and lets anything under it raise a message.
112
+ *
113
+ * Wrap the application once. Everything about how a toast *looks* is decided
114
+ * here — where the stack sits, how wide it is, which material it wears, how long
115
+ * it lasts — so the call site stays the one thing it should be: what happened.
116
+ *
117
+ * Base UI owns the parts of this that are genuinely hard and invisible when they
118
+ * work: the timers and their pausing on hover and on window blur, the limit, the
119
+ * swipe, the F6 focus hotkey, and the live region that makes a message which
120
+ * appeared out of nowhere reach a screen reader at all.
121
+ */
122
+ export declare function PlToastProvider({ variant, size, color, density, position, timeout, limit, width, closeLabel, children }: PlToastProviderProps): React.JSX.Element;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as t,jsxs as e}from"react/jsx-runtime";import*as s from"react";import{Toast as o}from"@base-ui/react/toast";import{CloseIcon as a,severityIcon as i}from"../../internal/icons.js";import{controlSlots as r,focusRingClasses as n,glassClasses as l,hasContent as c,iconClasses as p,metaTextClasses as d,radiusClasses as m,sheetBodyClasses as u,sheetHeaderGapClasses as f,sheetPaddingXClasses as h,sheetPaddingYClasses as g,sheetSectionGapClasses as v,sheetTitleClasses as x}from"../../internal/styles.js";const b={"top-start":"top-0 items-start","top-center":"top-0 items-center","top-end":"top-0 items-end","bottom-start":"bottom-0 flex-col-reverse items-start","bottom-center":"bottom-0 flex-col-reverse items-center","bottom-end":"bottom-0 flex-col-reverse items-end"},y={solid:/* @__PURE__ */["text-(--p-on-solid) [background-image:var(--p-fill)]","[box-shadow:var(--plass-shadow-3),var(--p-lift)]"].join(" "),glass:/* @__PURE__ */[l,"border text-(--plass-fg) bg-(--plass-glass-press)","[border-color:var(--p-line)]","[box-shadow:var(--plass-shadow-3),var(--plass-gloss-glass)]"].join(" "),ghost:/* @__PURE__ */[l,"text-(--plass-fg) bg-(--plass-glass-press)","[box-shadow:var(--plass-shadow-3),var(--plass-gloss-glass)]"].join(" ")},w={solid:"",glass:"text-(--p-accent)",ghost:"text-(--p-accent)"};function toManagerOptions(t){const{color:e,variant:s,icon:o,actionLabel:a,onAction:i,...r}=t;return{...r,data:{color:e,variant:s,icon:o},actionProps:void 0===a?void 0:{children:a,onClick:i}}}export function usePlToast(){const t=o.useToastManager();return s.useMemo(()=>({add:e=>t.add(toManagerOptions(e)),close:e=>t.close(e),update:(e,s)=>t.update(e,toManagerOptions(s)),promise:(e,s)=>t.promise(e,{loading:toManagerOptions(s.loading),success:t=>toManagerOptions("function"==typeof s.success?s.success(t):s.success),error:t=>toManagerOptions("function"==typeof s.error?s.error(t):s.error)}),toasts:t.toasts}),[t])}function ToastItem({toast:s,variant:l,color:b,size:j,density:N,closeLabel:T,swipeDirection:M}){const O=s.data?.variant??l??"glass",P=s.data?.color??b,k=void 0===s.data?.icon?i(P):s.data.icon,z=w[O],$=c(s.title);return e(o.Root,{toast:s,swipeDirection:M,className:["pointer-events-auto flex w-full items-start",h[N??"default"][j],g[N??"default"][j],m[j],v[j],u[j],y[O],p,"[transition:opacity_var(--plass-duration)_var(--plass-ease)]","data-[starting-style]:opacity-0 data-[ending-style]:opacity-0","data-[limited]:hidden",n,"[outline:none]"].filter(Boolean).join(" "),style:r(P,3,O),children:[c(k)?t("span",{className:`flex h-[1lh] shrink-0 items-center ${z}`,children:k}):null,e("div",{className:`flex min-w-0 flex-1 flex-col ${f[j]}`,children:[t(o.Title,{className:`plass-title font-semibold ${x[j]} ${z}`}),t(o.Description,{className:$&&"solid"!==O?"text-(--plass-muted-fg)":""})]}),t(o.Action,{className:["flex h-[1lh] shrink-0 cursor-pointer items-center rounded-full px-2","font-medium underline-offset-2",z||"text-(--p-on-solid)","hover:underline",n,d[j]].join(" ")}),t("span",{className:"flex h-[1lh] shrink-0 items-center",children:t(o.Close,{"aria-label":T,className:["inline-flex size-[1.15em] cursor-pointer items-center justify-center rounded-full","opacity-70 [transition:opacity_var(--plass-duration)_var(--plass-ease)]","hover:opacity-100 focus-visible:opacity-100",n].join(" "),children:t(a,{})})})]})}function ToastViewport(e){const{toasts:s}=o.useToastManager(),{position:a,width:i,...r}=e,n=[a.startsWith("top")?"up":"down","left","right"];return t(o.Portal,{children:t(o.Viewport,{className:["plass-portal pointer-events-none fixed inset-x-0 z-50 flex flex-col gap-2 p-4",b[a]].join(" "),children:s.map(e=>t("div",{className:"w-full",style:{maxWidth:"number"==typeof i?`${i}px`:i},children:t(ToastItem,{toast:e,swipeDirection:n,...r})},e.id))})})}export function PlToastProvider({variant:s="glass",size:a="md",color:i="primary",density:r="default",position:n="bottom-end",timeout:l=5e3,limit:c=3,width:p=380,closeLabel:d="Close",children:m}){return e(o.Provider,{timeout:l,limit:c,children:[m,t(ToastViewport,{position:n,variant:s,size:a,color:i,density:r,width:p,closeLabel:d})]})}
@@ -0,0 +1,2 @@
1
+ export { PlToastProvider, usePlToast } from './PlToast.js';
2
+ export type { PlToastData, PlToastOptions, PlToastPosition, PlToastProviderProps } from './PlToast.js';
@@ -0,0 +1 @@
1
+ export{PlToastProvider,usePlToast}from"./PlToast.js";
@@ -0,0 +1,68 @@
1
+ import * as React from 'react';
2
+ import { useRender } from '@base-ui/react/use-render';
3
+ import type { PlassElevation, PlassPosition, PlassStyleProps } from '../../types.js';
4
+ export interface PlToolbarProps extends PlassStyleProps, Omit<React.ComponentPropsWithoutRef<'div'>, 'color'> {
5
+ /**
6
+ * Drop shadow depth. `0` — the default — is flat even when the bar is pinned:
7
+ * a shadow under a header is a way of saying "there is content beneath this",
8
+ * and that is only true once the page has been scrolled. Raise it yourself, or
9
+ * leave it flat and turn on `divider`.
10
+ * @default 0
11
+ */
12
+ elevation?: PlassElevation;
13
+ /**
14
+ * How the bar sits in the page's scroll.
15
+ *
16
+ * - `static` — in the flow, scrolling away with the content.
17
+ * - `sticky` — in the flow until it reaches the edge, then held there. What an
18
+ * application header usually wants: it takes up its own space, so nothing
19
+ * underneath has to be padded around it.
20
+ * - `fixed` — out of the flow entirely. The page needs padding of its own, or
21
+ * the first screenful sits behind the bar.
22
+ * @default 'static'
23
+ */
24
+ position?: PlassPosition;
25
+ /** Which edge it is held against when `position` is not `static`. @default 'top' */
26
+ side?: 'top' | 'bottom';
27
+ /**
28
+ * Draws a hairline along the edge that faces the content — under a `top` bar,
29
+ * over a `bottom` one.
30
+ * @default false
31
+ */
32
+ divider?: boolean;
33
+ /** Pinned to the start of the bar: a logo, a title, a back button. */
34
+ start?: React.ReactNode;
35
+ /** Pinned to the end: the actions. */
36
+ end?: React.ReactNode;
37
+ /**
38
+ * Renders something other than a `<div>` — `render={<header />}`,
39
+ * `render={<nav />}`. Base UI's own escape hatch, and worth reaching for here:
40
+ * a page's header should be a `<header>`.
41
+ */
42
+ render?: useRender.RenderProp;
43
+ /** The middle. Takes whatever width `start` and `end` leave. */
44
+ children?: React.ReactNode;
45
+ }
46
+ /**
47
+ * A bar of controls: an application header, a page's action row, the strip along
48
+ * the bottom of an editor.
49
+ *
50
+ * Three slots and a row. `start` and `end` are pinned to their ends and
51
+ * `children` takes what is left, which is the arrangement every toolbar has ever
52
+ * had — so it is laid out here rather than left to a caller and a spacer `<div>`
53
+ * they have to remember.
54
+ *
55
+ * The one thing it does not do is take a height. A toolbar is as tall as the
56
+ * controls in it plus its padding, and that padding is the `size` / `density`
57
+ * pair every other surface uses — so `density="compact"` gives the dense bar
58
+ * without a second prop meaning the same thing, and without the type scale
59
+ * moving.
60
+ *
61
+ * It has **no `role="toolbar"`**, deliberately. That role is a promise about
62
+ * keyboard behaviour — one tab stop for the whole bar, arrow keys between the
63
+ * controls in it — and a bar that claims it without implementing it is worse for
64
+ * a keyboard reader than one that never claimed anything. What a page header
65
+ * wants is `render={<header />}`; what a genuine roving-focus set of choices
66
+ * wants is a `PlSegmentedButton`, which is one.
67
+ */
68
+ export declare const PlToolbar: React.ForwardRefExoticComponent<PlToolbarProps & React.RefAttributes<HTMLDivElement>>;
@@ -0,0 +1 @@
1
+ "use client";import{jsx as e,Fragment as t,jsxs as r}from"react/jsx-runtime";import*as s from"react";import{useRender as i}from"@base-ui/react/use-render";import{cx as o,hasContent as a,radiusClasses as l,sheetPaddingXClasses as n,sheetPaddingYClasses as c,sheetRestClasses as d,sheetSectionGapClasses as m,surfaceSlots as p,transitionClasses as f}from"../../internal/styles.js";const b=d,x={static:{top:"",bottom:""},sticky:{top:"sticky top-0 z-20",bottom:"sticky bottom-0 z-20"},fixed:{top:"fixed inset-x-0 top-0 z-30",bottom:"fixed inset-x-0 bottom-0 z-30"}},v={top:"border-b [border-color:var(--plass-divider)]",bottom:"border-t [border-color:var(--plass-divider)]"};export const PlToolbar=/* @__PURE__ */s.forwardRef(function PlToolbar({variant:s="glass",size:d="md",color:u="primary",density:h="default",elevation:y=0,position:w="static",side:g="top",divider:k=!1,start:z,end:N,render:j,className:P,style:T,children:F,...R},q){const A=o("flex w-full min-w-0 items-center",n[h][d],c[h][d],m[d],"static"===w?l[d]:"",b[s],k?v[g]:"",x[w][g],f,P);return i({render:j??e("div",{}),ref:q,props:{className:A,style:{...p(u,y),...T},children:r(t,{children:[a(z)?e("div",{className:"flex min-w-0 shrink-0 items-center gap-2",children:z}):null,e("div",{className:"flex min-w-0 flex-1 items-center gap-2",children:F}),a(N)?e("div",{className:"flex min-w-0 shrink-0 items-center gap-2",children:N}):null]}),...R}})});
@@ -0,0 +1,2 @@
1
+ export { PlToolbar } from './PlToolbar.js';
2
+ export type { PlToolbarProps } from './PlToolbar.js';
@@ -0,0 +1 @@
1
+ export{PlToolbar}from"./PlToolbar.js";