@stll/ui 0.65.1 → 0.66.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/dist/calendar/day-calendar.d.ts +8 -3
  2. package/dist/calendar/day-calendar.js +7 -10
  3. package/dist/calendar/day-calendar.logic.d.ts +0 -2
  4. package/dist/calendar/day-calendar.logic.js +1 -2
  5. package/dist/calendar/primitives.d.ts +1 -3
  6. package/dist/calendar/primitives.js +1 -2
  7. package/dist/calendar/resource-calendar.d.ts +0 -2
  8. package/dist/calendar/resource-calendar.js +1 -2
  9. package/dist/calendar/resource-calendar.logic.d.ts +1 -3
  10. package/dist/calendar/resource-calendar.logic.js +1 -2
  11. package/dist/components/accordion.d.ts +0 -2
  12. package/dist/components/accordion.js +1 -2
  13. package/dist/components/ai-label.d.ts +0 -2
  14. package/dist/components/ai-label.js +1 -2
  15. package/dist/components/alert-dialog.d.ts +0 -2
  16. package/dist/components/alert-dialog.js +1 -2
  17. package/dist/components/animated-count.d.ts +0 -2
  18. package/dist/components/animated-count.js +1 -2
  19. package/dist/components/animated-preview.css +152 -0
  20. package/dist/components/animated-preview.d.ts +75 -0
  21. package/dist/components/animated-preview.js +105 -0
  22. package/dist/components/application-rail.d.ts +1 -3
  23. package/dist/components/application-rail.js +1 -2
  24. package/dist/components/avatar.d.ts +0 -2
  25. package/dist/components/avatar.js +1 -2
  26. package/dist/components/badge.d.ts +0 -2
  27. package/dist/components/badge.js +1 -2
  28. package/dist/components/bidi-text.d.ts +0 -2
  29. package/dist/components/bidi-text.js +1 -2
  30. package/dist/components/brand-icons.d.ts +0 -2
  31. package/dist/components/brand-icons.js +1 -2
  32. package/dist/components/breadcrumb.d.ts +0 -2
  33. package/dist/components/breadcrumb.js +1 -2
  34. package/dist/components/button.d.ts +0 -2
  35. package/dist/components/button.js +35 -13
  36. package/dist/components/button.native-classes.d.ts +0 -2
  37. package/dist/components/button.native-classes.js +1 -2
  38. package/dist/components/button.native.d.ts +0 -2
  39. package/dist/components/button.native.js +1 -2
  40. package/dist/components/button.shared.d.ts +1 -3
  41. package/dist/components/button.shared.js +1 -2
  42. package/dist/components/checkbox.d.ts +0 -2
  43. package/dist/components/checkbox.js +1 -2
  44. package/dist/components/collapsible.d.ts +0 -2
  45. package/dist/components/collapsible.js +1 -2
  46. package/dist/components/color-picker.d.ts +12 -5
  47. package/dist/components/color-picker.js +4 -6
  48. package/dist/components/combobox.d.ts +0 -2
  49. package/dist/components/combobox.js +1 -2
  50. package/dist/components/command.d.ts +0 -2
  51. package/dist/components/command.js +1 -2
  52. package/dist/components/composer-tokens.d.ts +1 -3
  53. package/dist/components/composer-tokens.js +1 -2
  54. package/dist/components/composer.d.ts +0 -2
  55. package/dist/components/composer.js +1 -2
  56. package/dist/components/context-menu.d.ts +1 -3
  57. package/dist/components/context-menu.js +1 -2
  58. package/dist/components/copy-button.d.ts +0 -2
  59. package/dist/components/copy-button.js +1 -2
  60. package/dist/components/court-badge.d.ts +0 -2
  61. package/dist/components/court-badge.js +1 -2
  62. package/dist/components/court-filter.d.ts +0 -2
  63. package/dist/components/court-filter.js +1 -2
  64. package/dist/components/date-picker-popover.d.ts +0 -2
  65. package/dist/components/date-picker-popover.js +4 -68
  66. package/dist/components/date-picker-popover.logic.d.ts +1 -3
  67. package/dist/components/date-picker-popover.logic.js +1 -2
  68. package/dist/components/date-range-filter.d.ts +0 -2
  69. package/dist/components/date-range-filter.js +1 -2
  70. package/dist/components/destructive-action-confirmation.d.ts +0 -2
  71. package/dist/components/destructive-action-confirmation.js +1 -2
  72. package/dist/components/destructive-confirm-dialog.d.ts +0 -2
  73. package/dist/components/destructive-confirm-dialog.js +1 -2
  74. package/dist/components/details-grid.d.ts +13 -5
  75. package/dist/components/details-grid.js +69 -14
  76. package/dist/components/dialog-form-state.d.ts +1 -3
  77. package/dist/components/dialog-form-state.js +1 -2
  78. package/dist/components/dialog.d.ts +0 -2
  79. package/dist/components/dialog.js +1 -2
  80. package/dist/components/directional-icon.d.ts +0 -2
  81. package/dist/components/directional-icon.js +1 -2
  82. package/dist/components/document-identity-badge.d.ts +0 -2
  83. package/dist/components/document-identity-badge.js +1 -2
  84. package/dist/components/document-identity-badge.logic.d.ts +1 -3
  85. package/dist/components/document-identity-badge.logic.js +1 -2
  86. package/dist/components/document-mark.d.ts +9 -0
  87. package/dist/components/document-mark.js +29 -0
  88. package/dist/components/document-mark.native.d.ts +11 -0
  89. package/dist/components/document-mark.native.js +36 -0
  90. package/dist/components/document-mark.shared.d.ts +378 -0
  91. package/dist/components/document-mark.shared.js +756 -0
  92. package/dist/components/field.d.ts +0 -2
  93. package/dist/components/field.js +1 -2
  94. package/dist/components/file-input.d.ts +0 -2
  95. package/dist/components/file-input.js +1 -2
  96. package/dist/components/form.d.ts +0 -2
  97. package/dist/components/form.js +1 -2
  98. package/dist/components/frame.d.ts +0 -2
  99. package/dist/components/frame.js +1 -2
  100. package/dist/components/hex-color-picker.d.ts +0 -2
  101. package/dist/components/hex-color-picker.js +1 -2
  102. package/dist/components/horizontal-scroller.d.ts +0 -2
  103. package/dist/components/horizontal-scroller.js +1 -2
  104. package/dist/components/identity-text.d.ts +0 -2
  105. package/dist/components/identity-text.js +1 -2
  106. package/dist/components/inline-drop-indicator.d.ts +1 -3
  107. package/dist/components/inline-drop-indicator.js +1 -2
  108. package/dist/components/inline-rename.d.ts +0 -2
  109. package/dist/components/inline-rename.js +1 -2
  110. package/dist/components/input-control.d.ts +1 -3
  111. package/dist/components/input-control.js +1 -2
  112. package/dist/components/input-group.d.ts +0 -2
  113. package/dist/components/input-group.js +1 -2
  114. package/dist/components/input-otp.d.ts +0 -2
  115. package/dist/components/input-otp.js +1 -2
  116. package/dist/components/input.d.ts +0 -2
  117. package/dist/components/input.js +1 -2
  118. package/dist/components/input.native.d.ts +0 -2
  119. package/dist/components/input.native.js +1 -2
  120. package/dist/components/input.shared.d.ts +1 -3
  121. package/dist/components/kbd.d.ts +58 -0
  122. package/dist/components/kbd.js +90 -0
  123. package/dist/components/label.d.ts +0 -2
  124. package/dist/components/label.js +1 -2
  125. package/dist/components/landing.d.ts +0 -2
  126. package/dist/components/landing.js +1 -2
  127. package/dist/components/list.d.ts +0 -2
  128. package/dist/components/list.js +1 -2
  129. package/dist/components/loader.d.ts +0 -2
  130. package/dist/components/loader.js +1 -2
  131. package/dist/components/loader.native.d.ts +0 -2
  132. package/dist/components/loader.native.js +1 -2
  133. package/dist/components/loader.shared.d.ts +1 -3
  134. package/dist/components/loader.shared.js +1 -2
  135. package/dist/components/matter-icon.d.ts +0 -2
  136. package/dist/components/matter-icon.js +1 -2
  137. package/dist/components/matter-icon.native.d.ts +0 -2
  138. package/dist/components/matter-icon.native.js +2 -3
  139. package/dist/components/matter-icon.shared.d.ts +1 -3
  140. package/dist/components/matter-icon.shared.js +1 -2
  141. package/dist/components/menu-section.d.ts +0 -2
  142. package/dist/components/menu-section.js +1 -2
  143. package/dist/components/menu.d.ts +18 -4
  144. package/dist/components/menu.js +27 -7
  145. package/dist/components/middle-truncate.d.ts +0 -2
  146. package/dist/components/middle-truncate.js +1 -2
  147. package/dist/components/middle-truncate.logic.d.ts +0 -2
  148. package/dist/components/middle-truncate.logic.js +1 -2
  149. package/dist/components/number-input.d.ts +0 -2
  150. package/dist/components/number-input.js +1 -2
  151. package/dist/components/outline-rail.d.ts +12 -3
  152. package/dist/components/outline-rail.js +61 -9
  153. package/dist/components/outline-rail.logic.d.ts +0 -2
  154. package/dist/components/outline-rail.logic.js +7 -3
  155. package/dist/components/pagination.d.ts +0 -2
  156. package/dist/components/pagination.js +1 -2
  157. package/dist/components/popover.d.ts +0 -2
  158. package/dist/components/popover.js +1 -2
  159. package/dist/components/preview-card.d.ts +0 -2
  160. package/dist/components/preview-card.js +1 -2
  161. package/dist/components/preview-pane.d.ts +0 -2
  162. package/dist/components/preview-pane.js +1 -2
  163. package/dist/components/prose.d.ts +0 -2
  164. package/dist/components/prose.js +1 -2
  165. package/dist/components/scroll-area.d.ts +0 -2
  166. package/dist/components/scroll-area.js +1 -2
  167. package/dist/components/scroll-to-top.d.ts +1 -3
  168. package/dist/components/scroll-to-top.js +1 -2
  169. package/dist/components/search-field.d.ts +0 -2
  170. package/dist/components/search-field.js +1 -2
  171. package/dist/components/secret-input.d.ts +0 -2
  172. package/dist/components/secret-input.js +1 -2
  173. package/dist/components/segmented-icon-toggle.d.ts +0 -2
  174. package/dist/components/segmented-icon-toggle.js +1 -2
  175. package/dist/components/select.d.ts +0 -2
  176. package/dist/components/select.js +1 -2
  177. package/dist/components/separator.d.ts +0 -2
  178. package/dist/components/separator.js +1 -2
  179. package/dist/components/separator.native.d.ts +1 -3
  180. package/dist/components/separator.native.js +1 -2
  181. package/dist/components/separator.shared.d.ts +1 -3
  182. package/dist/components/sheet.d.ts +0 -2
  183. package/dist/components/sheet.js +1 -2
  184. package/dist/components/sheet.native.d.ts +1 -3
  185. package/dist/components/sheet.native.js +1 -2
  186. package/dist/components/sheet.shared.d.ts +1 -3
  187. package/dist/components/sidebar.d.ts +0 -2
  188. package/dist/components/sidebar.js +1 -2
  189. package/dist/components/sidebar.logic.d.ts +1 -3
  190. package/dist/components/sidebar.logic.js +1 -2
  191. package/dist/components/skeleton.d.ts +0 -2
  192. package/dist/components/skeleton.js +1 -2
  193. package/dist/components/split-button.d.ts +0 -2
  194. package/dist/components/split-button.js +1 -2
  195. package/dist/components/status-mark.d.ts +0 -2
  196. package/dist/components/status-mark.js +1 -2
  197. package/dist/components/stella-mark.d.ts +1 -3
  198. package/dist/components/stella-mark.js +1 -2
  199. package/dist/components/stella-mark.native.d.ts +1 -3
  200. package/dist/components/stella-mark.native.js +1 -2
  201. package/dist/components/stella-mark.shared.d.ts +1 -3
  202. package/dist/components/stella-mark.shared.js +1 -2
  203. package/dist/components/stella-wordmark.d.ts +1 -3
  204. package/dist/components/stella-wordmark.js +1 -2
  205. package/dist/components/stella-wordmark.native.d.ts +1 -3
  206. package/dist/components/stella-wordmark.native.js +1 -2
  207. package/dist/components/stella-wordmark.shared.d.ts +1 -3
  208. package/dist/components/stella-wordmark.shared.js +1 -2
  209. package/dist/components/steps.d.ts +0 -2
  210. package/dist/components/steps.js +1 -2
  211. package/dist/components/swap-text.d.ts +0 -2
  212. package/dist/components/swap-text.js +1 -2
  213. package/dist/components/switch.d.ts +0 -2
  214. package/dist/components/switch.js +1 -2
  215. package/dist/components/switch.native.d.ts +0 -2
  216. package/dist/components/switch.native.js +1 -2
  217. package/dist/components/switch.shared.d.ts +1 -3
  218. package/dist/components/table-chart.d.ts +1 -3
  219. package/dist/components/table-chart.js +1 -2
  220. package/dist/components/table.d.ts +0 -2
  221. package/dist/components/table.js +1 -2
  222. package/dist/components/tabs.d.ts +0 -2
  223. package/dist/components/tabs.js +1 -2
  224. package/dist/components/text.d.ts +0 -2
  225. package/dist/components/text.js +1 -2
  226. package/dist/components/text.native.d.ts +0 -2
  227. package/dist/components/text.native.js +1 -2
  228. package/dist/components/text.shared.d.ts +1 -3
  229. package/dist/components/text.shared.js +1 -2
  230. package/dist/components/textarea.d.ts +11 -3
  231. package/dist/components/textarea.js +51 -13
  232. package/dist/components/textarea.native.d.ts +1 -3
  233. package/dist/components/textarea.native.js +1 -2
  234. package/dist/components/textarea.shared.d.ts +1 -3
  235. package/dist/components/time-field.d.ts +25 -0
  236. package/dist/components/time-field.js +108 -0
  237. package/dist/components/toast.d.ts +0 -2
  238. package/dist/components/toast.js +1 -2
  239. package/dist/components/toggle-group.d.ts +0 -2
  240. package/dist/components/toggle-group.js +1 -2
  241. package/dist/components/toggle.d.ts +0 -2
  242. package/dist/components/toggle.js +1 -2
  243. package/dist/components/toolbar-icon-action.d.ts +0 -2
  244. package/dist/components/toolbar-icon-action.js +1 -2
  245. package/dist/components/tooltip-trigger-helper.d.ts +0 -2
  246. package/dist/components/tooltip-trigger-helper.js +1 -2
  247. package/dist/components/tooltip.d.ts +7 -3
  248. package/dist/components/tooltip.js +9 -5
  249. package/dist/components/truncated-text.d.ts +0 -2
  250. package/dist/components/truncated-text.js +1 -2
  251. package/dist/components/view-toolbar.d.ts +0 -2
  252. package/dist/components/view-toolbar.js +1 -2
  253. package/dist/components/workspace-shell.d.ts +0 -2
  254. package/dist/components/workspace-shell.js +1 -2
  255. package/dist/css.d.ts +0 -1
  256. package/dist/data-table/schema.d.ts +1 -3
  257. package/dist/data-table/schema.js +1 -2
  258. package/dist/data-table/table.d.ts +0 -2
  259. package/dist/data-table/table.js +1 -2
  260. package/dist/hooks/use-contained-handler.d.ts +0 -2
  261. package/dist/hooks/use-contained-handler.js +1 -2
  262. package/dist/hooks/use-content-dir.d.ts +0 -2
  263. package/dist/hooks/use-content-dir.js +1 -2
  264. package/dist/hooks/use-latest.d.ts +1 -3
  265. package/dist/hooks/use-latest.js +1 -2
  266. package/dist/hooks/use-mobile.d.ts +1 -3
  267. package/dist/hooks/use-mobile.js +1 -2
  268. package/dist/hooks/use-prefers-reduced-motion.d.ts +6 -0
  269. package/dist/hooks/use-prefers-reduced-motion.js +17 -0
  270. package/dist/hooks/use-viewport-width.d.ts +1 -3
  271. package/dist/hooks/use-viewport-width.js +1 -2
  272. package/dist/index.d.ts +5 -4
  273. package/dist/index.js +5 -4
  274. package/dist/inspector/chrome.d.ts +1 -3
  275. package/dist/inspector/chrome.js +1 -2
  276. package/dist/inspector/dock.d.ts +0 -2
  277. package/dist/inspector/dock.js +1 -2
  278. package/dist/inspector/entity-tab.d.ts +0 -2
  279. package/dist/inspector/entity-tab.js +1 -2
  280. package/dist/inspector/entity-tab.logic.d.ts +1 -3
  281. package/dist/inspector/entity-tab.logic.js +1 -2
  282. package/dist/inspector/facet-bar.d.ts +1 -3
  283. package/dist/inspector/facet-bar.js +1 -2
  284. package/dist/inspector/facet-bar.logic.d.ts +1 -3
  285. package/dist/inspector/facet-bar.logic.js +1 -2
  286. package/dist/inspector/layout-tokens.d.ts +1 -3
  287. package/dist/inspector/layout-tokens.js +1 -2
  288. package/dist/inspector/pane-width.d.ts +0 -2
  289. package/dist/inspector/pane-width.js +1 -2
  290. package/dist/inspector/use-pane-width.d.ts +0 -2
  291. package/dist/inspector/use-pane-width.js +1 -2
  292. package/dist/kanban/band-peek.d.ts +1 -3
  293. package/dist/kanban/band-peek.js +1 -2
  294. package/dist/kanban/card-properties.d.ts +1 -3
  295. package/dist/kanban/card-properties.js +1 -2
  296. package/dist/kanban/card-shell.d.ts +1 -3
  297. package/dist/kanban/card-shell.js +1 -2
  298. package/dist/kanban/cell-action.d.ts +1 -3
  299. package/dist/kanban/cell-action.js +1 -2
  300. package/dist/kanban/column-band-header.d.ts +1 -3
  301. package/dist/kanban/column-band-header.js +1 -2
  302. package/dist/kanban/column-bands.d.ts +1 -3
  303. package/dist/kanban/column-bands.js +1 -2
  304. package/dist/kanban/column-header.d.ts +1 -3
  305. package/dist/kanban/column-header.js +1 -2
  306. package/dist/kanban/drag-interactions.d.ts +0 -2
  307. package/dist/kanban/drag-interactions.js +1 -2
  308. package/dist/kanban/grouping.d.ts +1 -3
  309. package/dist/kanban/grouping.js +1 -2
  310. package/dist/kanban/layout-tokens.d.ts +1 -3
  311. package/dist/kanban/layout-tokens.js +1 -2
  312. package/dist/kanban/matrix.d.ts +1 -3
  313. package/dist/kanban/matrix.js +1 -2
  314. package/dist/kanban/sortable-edge.d.ts +0 -2
  315. package/dist/kanban/sortable-edge.js +1 -2
  316. package/dist/kanban/sortable-interactions.d.ts +0 -2
  317. package/dist/kanban/sortable-interactions.js +1 -2
  318. package/dist/kanban/sortable-interactions.logic.d.ts +0 -2
  319. package/dist/kanban/sortable-interactions.logic.js +1 -2
  320. package/dist/kanban/sticky-lane.d.ts +0 -2
  321. package/dist/kanban/sticky-lane.js +1 -2
  322. package/dist/kanban/subgroup-board.d.ts +0 -2
  323. package/dist/kanban/subgroup-board.js +1 -2
  324. package/dist/kanban/touch-identity.d.ts +0 -2
  325. package/dist/kanban/touch-identity.js +1 -2
  326. package/dist/kanban/virtual-cell.d.ts +1 -3
  327. package/dist/kanban/virtual-cell.js +1 -2
  328. package/dist/lib/button-disposition.d.ts +0 -2
  329. package/dist/lib/button-disposition.js +1 -2
  330. package/dist/lib/control-size.d.ts +0 -2
  331. package/dist/lib/control-size.js +1 -2
  332. package/dist/lib/field-trigger.d.ts +1 -3
  333. package/dist/lib/field-trigger.js +1 -2
  334. package/dist/lib/file-picker.d.ts +0 -2
  335. package/dist/lib/file-picker.js +1 -2
  336. package/dist/lib/initials.d.ts +1 -3
  337. package/dist/lib/initials.js +1 -2
  338. package/dist/lib/inline-reorder.d.ts +0 -2
  339. package/dist/lib/inline-reorder.js +1 -2
  340. package/dist/lib/matter-colors.d.ts +0 -2
  341. package/dist/lib/matter-colors.js +1 -2
  342. package/dist/lib/menu-row.d.ts +1 -3
  343. package/dist/lib/menu-row.js +1 -2
  344. package/dist/lib/option-color.d.ts +1 -3
  345. package/dist/lib/option-color.js +1 -2
  346. package/dist/lib/overlay-layer.d.ts +1 -3
  347. package/dist/lib/overlay-layer.js +1 -2
  348. package/dist/lib/panel-inset.d.ts +1 -3
  349. package/dist/lib/panel-inset.js +1 -2
  350. package/dist/lib/positioner-sizing.d.ts +1 -3
  351. package/dist/lib/positioner-sizing.js +1 -2
  352. package/dist/lib/renders-nothing.d.ts +8 -0
  353. package/dist/lib/renders-nothing.js +14 -0
  354. package/dist/lib/safe-area.d.ts +1 -3
  355. package/dist/lib/safe-area.js +1 -2
  356. package/dist/lib/scroll-edge-fade.d.ts +1 -3
  357. package/dist/lib/scroll-edge-fade.js +1 -2
  358. package/dist/lib/slot.d.ts +0 -2
  359. package/dist/lib/slot.js +1 -2
  360. package/dist/lib/tab-order.d.ts +0 -2
  361. package/dist/lib/tab-order.js +1 -2
  362. package/dist/lib/tooltip-content.d.ts +1 -3
  363. package/dist/lib/tooltip-content.js +1 -2
  364. package/dist/lib/typed-character.d.ts +1 -3
  365. package/dist/lib/typed-character.js +1 -2
  366. package/dist/lib/utils.d.ts +1 -3
  367. package/dist/lib/utils.js +1 -2
  368. package/dist/lib/week.d.ts +1 -3
  369. package/dist/lib/week.js +1 -2
  370. package/dist/review/review-author-avatar.d.ts +0 -2
  371. package/dist/review/review-author-avatar.js +1 -2
  372. package/dist/review/review-comment-card.d.ts +0 -2
  373. package/dist/review/review-comment-card.js +1 -2
  374. package/dist/review/review-decision-actions.d.ts +0 -2
  375. package/dist/review/review-decision-actions.js +1 -2
  376. package/dist/review/review-diff-text.d.ts +0 -2
  377. package/dist/review/review-diff-text.js +1 -2
  378. package/dist/review/review-out-of-date-notice.d.ts +0 -2
  379. package/dist/review/review-out-of-date-notice.js +1 -2
  380. package/dist/review/review-severity-dot.d.ts +0 -2
  381. package/dist/review/review-severity-dot.js +1 -2
  382. package/dist/review/review-status-badge.d.ts +0 -2
  383. package/dist/review/review-status-badge.js +1 -2
  384. package/dist/review/review-word-diff.d.ts +1 -3
  385. package/dist/review/review-word-diff.js +1 -2
  386. package/dist/review/text-mark.d.ts +0 -2
  387. package/dist/review/text-mark.js +1 -2
  388. package/dist/styles/theme.css +27 -0
  389. package/dist/testing/browser-clock.d.ts +1 -3
  390. package/dist/testing/browser-clock.js +1 -2
  391. package/package.json +37 -5
@@ -2,7 +2,7 @@ import { STELLA_MARK } from "./stella-mark.shared.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import Svg, { Path } from "react-native-svg";
4
4
  import { useCSSVariable } from "uniwind";
5
- //#region src/components/stella-mark.native.tsx
5
+ // src/components/stella-mark.native.tsx
6
6
  const BOX = STELLA_MARK.viewBox.split(" ").map(Number);
7
7
  const WIDTH = BOX[2] ?? 1;
8
8
  const HEIGHT = BOX[3] ?? 1;
@@ -24,5 +24,4 @@ const StellaMark = ({ size = 28 }) => {
24
24
  }, d))
25
25
  });
26
26
  };
27
- //#endregion
28
27
  export { StellaMark };
@@ -1,6 +1,4 @@
1
- //#region src/components/stella-mark.shared.d.ts
2
1
  export declare const STELLA_MARK: {
3
2
  readonly viewBox: "0 0 40 41";
4
3
  readonly paths: readonly ["M6.58 11.3 16.69 5.05a5.9 5.9 0 0 1 6.62.01l14.68 9.07V9.26L25.52 1.55A11.8 11.8 0 0 0 20 0c-1.97 0-3.88.54-5.53 1.56L4.37 7.81A9.3 9.3 0 0 0 0 15.61a9.3 9.3 0 0 0 4.37 7.8l3.26 2.02-.01.01 11.15 6.9c.14.09.27.16.39.2.68.26 1.42.19 2.03-.19l9.59-5.93.1-.07 2.07-1.28-2.82-1.72-1.1-.69-9.02 5.56-.41-.24-13.01-8.05a5.57 5.57 0 0 1-2.41-4.31c0-1.79.88-3.36 2.41-4.3Z", "M33.34 29.25 23.24 35.5a5.9 5.9 0 0 1-6.63-.01L1.94 26.43v4.86l12.47 7.71a11.8 11.8 0 0 0 5.52 1.55c1.97 0 3.88-.54 5.53-1.56l10.1-6.25a9.3 9.3 0 0 0 4.37-7.8 9.3 9.3 0 0 0-4.37-7.8l-3.26-2.02.01-.01-11.15-6.9a1.6 1.6 0 0 0-.39-.2 1.64 1.64 0 0 0-2.03.19l-9.59 5.93-.1.07-2.07 1.28 2.82 1.72 1.1.69 9.02-5.56.41.24 13.01 8.05a5.57 5.57 0 0 1 2.41 4.31c0 1.79-.88 3.36-2.41 4.3Z"];
5
- };
6
- //#endregion
4
+ };
@@ -1,7 +1,6 @@
1
- //#region src/components/stella-mark.shared.ts
1
+ // src/components/stella-mark.shared.ts
2
2
  const STELLA_MARK = {
3
3
  viewBox: "0 0 40 41",
4
4
  paths: ["M6.58 11.3 16.69 5.05a5.9 5.9 0 0 1 6.62.01l14.68 9.07V9.26L25.52 1.55A11.8 11.8 0 0 0 20 0c-1.97 0-3.88.54-5.53 1.56L4.37 7.81A9.3 9.3 0 0 0 0 15.61a9.3 9.3 0 0 0 4.37 7.8l3.26 2.02-.01.01 11.15 6.9c.14.09.27.16.39.2.68.26 1.42.19 2.03-.19l9.59-5.93.1-.07 2.07-1.28-2.82-1.72-1.1-.69-9.02 5.56-.41-.24-13.01-8.05a5.57 5.57 0 0 1-2.41-4.31c0-1.79.88-3.36 2.41-4.3Z", "M33.34 29.25 23.24 35.5a5.9 5.9 0 0 1-6.63-.01L1.94 26.43v4.86l12.47 7.71a11.8 11.8 0 0 0 5.52 1.55c1.97 0 3.88-.54 5.53-1.56l10.1-6.25a9.3 9.3 0 0 0 4.37-7.8 9.3 9.3 0 0 0-4.37-7.8l-3.26-2.02.01-.01-11.15-6.9a1.6 1.6 0 0 0-.39-.2 1.64 1.64 0 0 0-2.03.19l-9.59 5.93-.1.07-2.07 1.28 2.82 1.72 1.1.69 9.02-5.56.41.24 13.01 8.05a5.57 5.57 0 0 1 2.41 4.31c0 1.79-.88 3.36-2.41 4.3Z"]
5
5
  };
6
- //#endregion
7
6
  export { STELLA_MARK };
@@ -1,4 +1,2 @@
1
1
  import { SVGProps } from "react";
2
- //#region src/components/stella-wordmark.d.ts
3
- export declare const StellaWordmarkLatin: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
4
- //#endregion
2
+ export declare const StellaWordmarkLatin: (props: SVGProps<SVGSVGElement>) => import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { STELLA_WORDMARK } from "./stella-wordmark.shared.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
- //#region src/components/stella-wordmark.tsx
3
+ // src/components/stella-wordmark.tsx
4
4
  const StellaWordmarkLatin = (props) => /* @__PURE__ */ jsx("svg", {
5
5
  "aria-hidden": "true",
6
6
  fill: "currentColor",
@@ -9,5 +9,4 @@ const StellaWordmarkLatin = (props) => /* @__PURE__ */ jsx("svg", {
9
9
  ...props,
10
10
  children: STELLA_WORDMARK.paths.map((d) => /* @__PURE__ */ jsx("path", { d }, d))
11
11
  });
12
- //#endregion
13
12
  export { StellaWordmarkLatin };
@@ -1,9 +1,7 @@
1
- //#region src/components/stella-wordmark.native.d.ts
2
1
  /**
3
2
  * The web's `StellaWordmarkLatin` (./stella-wordmark.tsx) on a phone: the
4
3
  * same paths, in the foreground colour, `height` points tall.
5
4
  */
6
5
  export declare const StellaWordmarkLatin: ({ height }: {
7
6
  height?: number | undefined;
8
- }) => import("react").JSX.Element;
9
- //#endregion
7
+ }) => import("react").JSX.Element;
@@ -2,7 +2,7 @@ import { STELLA_WORDMARK } from "./stella-wordmark.shared.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import Svg, { Path } from "react-native-svg";
4
4
  import { useCSSVariable } from "uniwind";
5
- //#region src/components/stella-wordmark.native.tsx
5
+ // src/components/stella-wordmark.native.tsx
6
6
  const BOX = STELLA_WORDMARK.viewBox.split(" ").map(Number);
7
7
  const WIDTH = BOX[2] ?? 1;
8
8
  const HEIGHT = BOX[3] ?? 1;
@@ -23,5 +23,4 @@ const StellaWordmarkLatin = ({ height = 20 }) => {
23
23
  }, d))
24
24
  });
25
25
  };
26
- //#endregion
27
26
  export { StellaWordmarkLatin };
@@ -1,6 +1,4 @@
1
- //#region src/components/stella-wordmark.shared.d.ts
2
1
  export declare const STELLA_WORDMARK: {
3
2
  readonly viewBox: "0 0 573 151";
4
3
  readonly paths: readonly ["M23.54 44.93L59.65 22.32C63.19 20.1 67.28 18.94 71.49 18.94C75.7 18.94 79.79 20.1 83.32 22.32L135.77 55.14V37.56L91.2 9.63C85.32 5.96 78.5 3.99 71.49 3.99C64.48 3.99 57.63 5.93 51.74 9.63L15.63 32.24C5.85 38.39 0 48.96 0 60.52C0 72.08 5.85 82.65 15.63 88.77L27.27 96.05L67.11 121.04C67.63 121.36 68.08 121.59 68.5 121.75C70.94 122.68 73.58 122.42 75.77 121.07L110.05 99.62C110.05 99.62 110.3 99.46 110.4 99.36L117.8 94.72L107.73 88.48L103.78 86L71.55 106.13L70.07 105.26L23.57 76.11C18.11 72.66 14.95 66.99 14.95 60.52C14.95 54.05 18.11 48.38 23.57 44.93H23.54Z", "M119.18 109.86L83.07 132.47C79.53 134.7 75.44 135.85 71.23 135.85C67.02 135.85 62.93 134.7 59.4 132.47L6.91 99.65V117.24L51.49 145.13C57.37 148.8 64.19 150.77 71.2 150.77C78.21 150.77 85.06 148.84 90.94 145.13L127.06 122.52C136.83 116.4 142.69 105.84 142.69 94.27C142.69 82.71 136.83 72.15 127.06 66.03L115.42 58.75L75.57 33.75C75.06 33.43 74.61 33.21 74.19 33.05C71.75 32.11 69.11 32.37 66.92 33.72L32.64 55.17C32.64 55.17 32.38 55.33 32.29 55.43L24.89 60.07L34.96 66.32L38.91 68.8L71.13 48.67L72.61 49.54L119.12 78.69C124.58 82.13 127.73 87.8 127.73 94.27C127.73 100.75 124.58 106.42 119.12 109.86H119.18Z", "M230.38 123.02C212.11 123.02 195.46 115.06 189.49 98.78L200.89 89.91C203.96 99.87 213.55 109.82 230.92 109.82C241.23 109.82 248.11 105.84 248.11 98.06C248.11 90.1 240.15 87.56 229.83 85.21L218.26 82.5C205.77 79.6 192.2 73.63 192.2 57.53C192.2 41.61 204.51 31.84 223.5 31.84C241.96 31.84 254.8 41.61 259.69 53.19L247.75 62.05C243.4 51.74 235.08 45.23 222.6 45.23C213.55 45.23 207.04 49.21 207.04 56.63C207.04 64.41 212.83 67.12 224.77 70.01L235.99 72.91C255.71 77.61 262.22 85.75 262.22 97.88C262.22 115.24 247.38 123.02 230.38 123.02Z", "M304.21 123.2C289.92 123.2 279.79 113.8 279.79 98.78V45.95H265.67V33.65H279.79V22.43L295.52 10.85V33.65H324.29V45.95H295.52V94.08C295.52 105.29 300.77 108.01 307.65 108.01C315.43 108.01 320.85 101.49 323.21 96.07L328.45 111.63C324.65 117.6 316.33 123.2 304.21 123.2Z", "M371.45 123.02C346.66 123.02 329.48 105.29 329.48 77.43C329.48 49.75 346.48 31.84 370.54 31.84C395.33 31.84 410.34 48.3 410.34 73.99C410.34 76.71 409.98 79.42 409.62 81.05H344.67C345.58 99.5 355.89 110 371.45 110C389 110 396.05 100.41 399.49 92.81L409.08 103.66C402.57 114.16 390.44 123.02 371.45 123.02ZM370.54 45.05C356.43 45.05 347.02 53.37 345.03 69.65H396.23C394.6 53.55 385.2 45.05 370.54 45.05Z", "M442.77 121.21H427.03V0H442.77V121.21Z", "M478.55 121.21H462.81V0H478.55V121.21Z", "M516.68 123.02C501.84 123.02 493.52 114.52 493.52 102.94C493.52 91.18 502.39 83.76 514.87 78.16L546.53 64.04C545.99 53.73 541.1 46.13 527.35 46.13C514.87 46.13 506.55 53.37 502.02 62.96L491.35 51.92C496.6 42.88 509.62 31.84 529.16 31.84C550.69 31.84 562.27 44.69 562.27 65.49V101.49C562.27 105.66 563.9 106.92 567.15 106.92H572.76V121.21H562.63C553.58 121.21 547.07 116.87 547.07 104.57V98.42C544.18 110 534.77 123.02 516.68 123.02ZM509.44 100.41C509.44 106.38 513.6 110 521.74 110C536.58 110 547.07 100.23 547.07 87.56V75.44L521.56 87.38C513.24 91.36 509.44 94.98 509.44 100.41Z"];
5
- };
6
- //#endregion
4
+ };
@@ -1,4 +1,4 @@
1
- //#region src/components/stella-wordmark.shared.ts
1
+ // src/components/stella-wordmark.shared.ts
2
2
  const STELLA_WORDMARK = {
3
3
  viewBox: "0 0 573 151",
4
4
  paths: [
@@ -12,5 +12,4 @@ const STELLA_WORDMARK = {
12
12
  "M516.68 123.02C501.84 123.02 493.52 114.52 493.52 102.94C493.52 91.18 502.39 83.76 514.87 78.16L546.53 64.04C545.99 53.73 541.1 46.13 527.35 46.13C514.87 46.13 506.55 53.37 502.02 62.96L491.35 51.92C496.6 42.88 509.62 31.84 529.16 31.84C550.69 31.84 562.27 44.69 562.27 65.49V101.49C562.27 105.66 563.9 106.92 567.15 106.92H572.76V121.21H562.63C553.58 121.21 547.07 116.87 547.07 104.57V98.42C544.18 110 534.77 123.02 516.68 123.02ZM509.44 100.41C509.44 106.38 513.6 110 521.74 110C536.58 110 547.07 100.23 547.07 87.56V75.44L521.56 87.38C513.24 91.36 509.44 94.98 509.44 100.41Z"
13
13
  ]
14
14
  };
15
- //#endregion
16
15
  export { STELLA_WORDMARK };
@@ -1,6 +1,5 @@
1
1
  import * as React$1 from "react";
2
2
  import { VariantProps } from "class-variance-authority";
3
- //#region src/components/steps.d.ts
4
3
  declare const stepsVariants: (props?: ({
5
4
  variant?: "compact" | "default" | "progress" | null | undefined;
6
5
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
@@ -14,5 +13,4 @@ declare const stepVariants: (props?: ({
14
13
  } & import("class-variance-authority/types").ClassProp) | undefined) => string;
15
14
  type StepProps = React$1.ComponentProps<"li"> & VariantProps<typeof stepVariants>;
16
15
  declare const Step: ({ className, status, ...props }: StepProps) => React$1.JSX.Element;
17
- //#endregion
18
16
  export { Step, Steps };
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../lib/utils.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { cva } from "class-variance-authority";
4
- //#region src/components/steps.tsx
4
+ // src/components/steps.tsx
5
5
  const stepsVariants = cva("list-decimal ps-6 marker:font-medium", {
6
6
  variants: { variant: {
7
7
  default: "space-y-4",
@@ -30,5 +30,4 @@ const Step = ({ className, status, ...props }) => /* @__PURE__ */ jsx("li", {
30
30
  "data-slot": "step",
31
31
  ...props
32
32
  });
33
- //#endregion
34
33
  export { Step, Steps };
@@ -1,4 +1,3 @@
1
- //#region src/components/swap-text.d.ts
2
1
  /**
3
2
  * A short label that changes in place (a live status line): the old text
4
3
  * lifts out with a slight blur while the new one rises into the same cell,
@@ -12,5 +11,4 @@ declare const SwapText: ({ className, text }: {
12
11
  className?: string;
13
12
  text: string;
14
13
  }) => import("react").JSX.Element;
15
- //#endregion
16
14
  export { SwapText };
@@ -2,7 +2,7 @@
2
2
  import { cn } from "../lib/utils.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { useState } from "react";
5
- //#region src/components/swap-text.tsx
5
+ // src/components/swap-text.tsx
6
6
  /**
7
7
  * A short label that changes in place (a live status line): the old text
8
8
  * lifts out with a slight blur while the new one rises into the same cell,
@@ -48,5 +48,4 @@ const SwapText = ({ className, text }) => {
48
48
  }, `in-${state.generation}`)]
49
49
  });
50
50
  };
51
- //#endregion
52
51
  export { SwapText };
@@ -1,6 +1,5 @@
1
1
  import * as React$1 from "react";
2
2
  import { Switch as Switch$1 } from "@base-ui/react/switch";
3
- //#region src/components/switch.d.ts
4
3
  /**
5
4
  * `default` is a setting's own control; `sm` sits in a dense row or a menu
6
5
  * beside small type.
@@ -20,5 +19,4 @@ declare const SwitchField: ({ className, description, label, size, ...props }: S
20
19
  label: React$1.ReactNode;
21
20
  description?: React$1.ReactNode;
22
21
  }) => React$1.JSX.Element;
23
- //#endregion
24
22
  export { Switch, SwitchField, type SwitchProps, type SwitchSize };
@@ -3,7 +3,7 @@ import { cn } from "../lib/utils.js";
3
3
  import { jsx, jsxs } from "react/jsx-runtime";
4
4
  import { useId } from "react";
5
5
  import { Switch as Switch$1 } from "@base-ui/react/switch";
6
- //#region src/components/switch.tsx
6
+ // src/components/switch.tsx
7
7
  const SWITCH_ROOT_SIZE_CLASS_NAME = {
8
8
  default: "h-5 w-9",
9
9
  sm: "h-4 w-7"
@@ -51,5 +51,4 @@ const SwitchField = ({ className, description, label, size, ...props }) => {
51
51
  })]
52
52
  });
53
53
  };
54
- //#endregion
55
54
  export { Switch, SwitchField };
@@ -1,6 +1,5 @@
1
1
  import { SwitchContract } from "./switch.shared.js";
2
2
  import { SwitchProps } from "react-native";
3
- //#region src/components/switch.native.d.ts
4
3
  type SwitchProps$1 = Omit<SwitchProps, "value" | "onValueChange" | "disabled" | keyof SwitchContract> & SwitchContract;
5
4
  /**
6
5
  * The web's `Switch` (./switch.tsx) on a phone: the platform's own switch, in
@@ -9,5 +8,4 @@ type SwitchProps$1 = Omit<SwitchProps, "value" | "onValueChange" | "disabled" |
9
8
  * `defaultChecked`.
10
9
  */
11
10
  export declare const Switch: ({ checked, defaultChecked, disabled, onCheckedChange, ...props }: SwitchProps$1) => import("react").JSX.Element;
12
- //#endregion
13
11
  export {};
@@ -1,7 +1,7 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { useState } from "react";
3
3
  import { Switch as Switch$1 } from "react-native";
4
- //#region src/components/switch.native.tsx
4
+ // src/components/switch.native.tsx
5
5
  /**
6
6
  * The web's `Switch` (./switch.tsx) on a phone: the platform's own switch, in
7
7
  * the web's colours (the primary fill when on, the input fill when off).
@@ -29,5 +29,4 @@ const Switch = ({ checked, defaultChecked = false, disabled = false, onCheckedCh
29
29
  value
30
30
  });
31
31
  };
32
- //#endregion
33
32
  export { Switch };
@@ -1,9 +1,7 @@
1
- //#region src/components/switch.shared.d.ts
2
1
  /** The props every switch renderer accepts, with one meaning. */
3
2
  export type SwitchContract = {
4
3
  checked?: boolean;
5
4
  defaultChecked?: boolean;
6
5
  disabled?: boolean;
7
6
  onCheckedChange?: (checked: boolean) => void;
8
- };
9
- //#endregion
7
+ };
@@ -1,4 +1,3 @@
1
- //#region src/components/table-chart.d.ts
2
1
  export type TableChartKind = "bar" | "line" | "pie" | "scatter";
3
2
  export type TableChartPoint = {
4
3
  label: string;
@@ -16,5 +15,4 @@ export type TableChartProps = {
16
15
  xMode?: "numeric" | "category";
17
16
  formatNumber: (value: number) => string;
18
17
  };
19
- export declare const TableChart: ({ kind, points, title, summary, xLabel, yLabel, xMode, formatNumber }: TableChartProps) => import("react").JSX.Element;
20
- //#endregion
18
+ export declare const TableChart: ({ kind, points, title, summary, xLabel, yLabel, xMode, formatNumber }: TableChartProps) => import("react").JSX.Element;
@@ -2,7 +2,7 @@
2
2
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
3
3
  import { useId } from "react";
4
4
  import { panic } from "better-result";
5
- //#region src/components/table-chart.tsx
5
+ // src/components/table-chart.tsx
6
6
  const WIDTH = 640;
7
7
  const HEIGHT = 360;
8
8
  const PLOT = {
@@ -270,5 +270,4 @@ const TableChart = ({ kind, points, title, summary, xLabel, yLabel, xMode = "num
270
270
  ]
271
271
  });
272
272
  };
273
- //#endregion
274
273
  export { TableChart };
@@ -1,5 +1,4 @@
1
1
  import * as React$1 from "react";
2
- //#region src/components/table.d.ts
3
2
  /**
4
3
  * How far cells pad their content from the column edges.
5
4
  *
@@ -108,5 +107,4 @@ type SortableHeadProps = Omit<TableHeadProps, "onClick"> & {
108
107
  */
109
108
  declare const SortableHead: ({ children, sortDirection, onSort, trailing, className, align, numeric, ...props }: SortableHeadProps) => React$1.JSX.Element;
110
109
  declare const TableCaption: ({ className, ...props }: React$1.ComponentProps<"caption">) => React$1.JSX.Element;
111
- //#endregion
112
110
  export { type SortDirection, SortableHead, Table, type TableAlign, TableBody, TableCaption, TableCell, type TableCellProps, type TableDensity, TableFooter, TableHead, type TableHeadProps, TableHeader, type TableHeaderProps, type TableInset, type TableProps, TableRow, type TableScroll, type TableTone };
@@ -2,7 +2,7 @@ import { ArrowDownIcon, ArrowUpIcon } from "../icons.js";
2
2
  import { cn } from "../lib/utils.js";
3
3
  import { Button } from "./button.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
- //#region src/components/table.tsx
5
+ // src/components/table.tsx
6
6
  const Table = ({ className, density = "default", inset = "default", scroll = "self", ...props }) => {
7
7
  const table = /* @__PURE__ */ jsx("table", {
8
8
  className: cn("w-full caption-bottom text-sm in-data-[slot=frame]:border-separate in-data-[slot=frame]:border-spacing-0", className),
@@ -103,5 +103,4 @@ const TableCaption = ({ className, ...props }) => /* @__PURE__ */ jsx("caption",
103
103
  "data-slot": "table-caption",
104
104
  ...props
105
105
  });
106
- //#endregion
107
106
  export { SortableHead, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
@@ -1,5 +1,4 @@
1
1
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
2
- //#region src/components/tabs.d.ts
3
2
  type TabsVariant = "default" | "underline";
4
3
  declare const Tabs: ({ className, ...props }: Tabs$1.Root.Props) => import("react").JSX.Element;
5
4
  declare const TabsList: ({ variant, className, children, ref, ...props }: Tabs$1.List.Props & {
@@ -7,5 +6,4 @@ declare const TabsList: ({ variant, className, children, ref, ...props }: Tabs$1
7
6
  }) => import("react").JSX.Element;
8
7
  declare const TabsTab: ({ className, ...props }: Tabs$1.Tab.Props) => import("react").JSX.Element;
9
8
  declare const TabsPanel: ({ className, ...props }: Tabs$1.Panel.Props) => import("react").JSX.Element;
10
- //#endregion
11
9
  export { Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger };
@@ -4,7 +4,7 @@ import { hasTabOrderChanged, revealActiveTab } from "../lib/tab-order.js";
4
4
  import { jsx, jsxs } from "react/jsx-runtime";
5
5
  import { useEffect, useLayoutEffect, useRef, useState } from "react";
6
6
  import { Tabs as Tabs$1 } from "@base-ui/react/tabs";
7
- //#region src/components/tabs.tsx
7
+ // src/components/tabs.tsx
8
8
  const useIsoLayoutEffect = typeof window === "undefined" ? useEffect : useLayoutEffect;
9
9
  const Tabs = ({ className, ...props }) => /* @__PURE__ */ jsx(Tabs$1.Root, {
10
10
  className: cn("flex flex-col gap-2 data-[orientation=vertical]:flex-row", className),
@@ -53,5 +53,4 @@ const TabsPanel = ({ className, ...props }) => /* @__PURE__ */ jsx(Tabs$1.Panel,
53
53
  "data-slot": "tabs-content",
54
54
  ...props
55
55
  });
56
- //#endregion
57
56
  export { Tabs, TabsPanel as TabsContent, TabsPanel, TabsList, TabsTab, TabsTab as TabsTrigger };
@@ -1,11 +1,9 @@
1
1
  import { ComponentProps } from "react";
2
2
  import { TextContract, TextVariant } from "./text.shared.js";
3
- //#region src/components/text.d.ts
4
3
  /**
5
4
  * Text in one of the design system's roles (./text.shared.ts), the same role
6
5
  * the React Native renderer (./text.native.tsx) sets on a phone. Inline, so a
7
6
  * role can sit inside a paragraph; a block of prose is `Prose`.
8
7
  */
9
8
  declare const Text: ({ className, variant, ...props }: Omit<ComponentProps<"span">, keyof TextContract> & TextContract) => import("react").JSX.Element;
10
- //#endregion
11
9
  export { Text, type TextVariant };
@@ -1,7 +1,7 @@
1
1
  import { cn } from "../lib/utils.js";
2
2
  import { TEXT_VARIANT_CLASS_NAMES, TEXT_VARIANT_FACES } from "./text.shared.js";
3
3
  import { jsx } from "react/jsx-runtime";
4
- //#region src/components/text.tsx
4
+ // src/components/text.tsx
5
5
  const WEIGHT_CLASS_NAMES = {
6
6
  light: "font-light",
7
7
  regular: "font-normal",
@@ -21,5 +21,4 @@ const Text = ({ className, variant = "body", ...props }) => /* @__PURE__ */ jsx(
21
21
  "data-variant": variant,
22
22
  ...props
23
23
  });
24
- //#endregion
25
24
  export { Text };
@@ -1,6 +1,5 @@
1
1
  import { TextContract, TextVariant } from "./text.shared.js";
2
2
  import { TextProps } from "react-native";
3
- //#region src/components/text.native.d.ts
4
3
  /** The font a role is set in, for a native control that draws its own text. */
5
4
  export declare const textFontFamily: (variant: TextContract["variant"]) => string;
6
5
  /**
@@ -11,5 +10,4 @@ export declare const textFontFamily: (variant: TextContract["variant"]) => strin
11
10
  export declare const Text: ({ className, style, variant, ...props }: Omit<TextProps, keyof TextContract> & TextContract & {
12
11
  className?: string | undefined;
13
12
  }) => import("react").JSX.Element;
14
- //#endregion
15
13
  export type { TextVariant };
@@ -1,7 +1,7 @@
1
1
  import { TEXT_VARIANT_CLASS_NAMES, TEXT_VARIANT_FACES } from "./text.shared.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
3
  import { Text as Text$1 } from "react-native";
4
- //#region src/components/text.native.tsx
4
+ // src/components/text.native.tsx
5
5
  /**
6
6
  * The embedded DM Sans face, the web's typeface, for each weight, by the
7
7
  * name the app registers it under.
@@ -34,5 +34,4 @@ const Text = ({ className, style, variant = "body", ...props }) => /* @__PURE__
34
34
  style: [{ fontFamily: textFontFamily(variant) }, style],
35
35
  ...props
36
36
  });
37
- //#endregion
38
37
  export { Text, textFontFamily };
@@ -1,5 +1,4 @@
1
1
  import { ReactNode } from "react";
2
- //#region src/components/text.shared.d.ts
3
2
  /** Each role's size, colour and spacing, as Tailwind classes. */
4
3
  export declare const TEXT_VARIANT_CLASS_NAMES: {
5
4
  readonly body: "text-base";
@@ -45,5 +44,4 @@ export declare const TEXT_VARIANT_FACES: {
45
44
  export type TextContract = {
46
45
  variant?: TextVariant;
47
46
  children?: ReactNode;
48
- };
49
- //#endregion
47
+ };
@@ -1,4 +1,4 @@
1
- //#region src/components/text.shared.ts
1
+ // src/components/text.shared.ts
2
2
  /** Each role's size, colour and spacing, as Tailwind classes. */
3
3
  const TEXT_VARIANT_CLASS_NAMES = {
4
4
  body: "text-base",
@@ -37,5 +37,4 @@ const TEXT_VARIANT_FACES = {
37
37
  badge: sans("medium"),
38
38
  link: sans("regular")
39
39
  };
40
- //#endregion
41
40
  export { TEXT_VARIANT_CLASS_NAMES, TEXT_VARIANT_FACES };
@@ -1,6 +1,5 @@
1
1
  import * as React$1 from "react";
2
2
  import { ControlSize } from "../lib/control-size.js";
3
- //#region src/components/textarea.d.ts
4
3
  type TextareaProps = React$1.ComponentProps<"textarea"> & {
5
4
  size?: ControlSize | number;
6
5
  unstyled?: boolean;
@@ -17,7 +16,16 @@ type TextareaProps = React$1.ComponentProps<"textarea"> & {
17
16
  * table cell or a row must not push its neighbours around.
18
17
  */
19
18
  fieldSizing?: "content" | "fixed";
19
+ /**
20
+ * The most lines it grows to before it scrolls. Without it the field grows
21
+ * with its content without end.
22
+ */
23
+ maxRows?: number | undefined;
24
+ /**
25
+ * Shows `length / maxLength` under the end of the field. Needs `maxLength`;
26
+ * the browser still enforces the limit.
27
+ */
28
+ showCount?: boolean | undefined;
20
29
  };
21
- declare const Textarea: ({ className, size, unstyled, inline, fieldSizing, dir, onChange, ...props }: TextareaProps) => React$1.JSX.Element;
22
- //#endregion
30
+ declare const Textarea: ({ className, size, unstyled, inline, fieldSizing, maxRows, showCount, dir, onChange, style, ...props }: TextareaProps) => React$1.JSX.Element;
23
31
  export { Textarea, type TextareaProps };
@@ -3,42 +3,80 @@ import { cn } from "../lib/utils.js";
3
3
  import { CONTROL_SIZE } from "../lib/control-size.js";
4
4
  import { useContentDir } from "../hooks/use-content-dir.js";
5
5
  import { INLINE_FIELD_CLASS_NAME } from "./input-control.js";
6
- import { jsx } from "react/jsx-runtime";
6
+ import { jsx, jsxs } from "react/jsx-runtime";
7
+ import { useState } from "react";
7
8
  import { mergeProps } from "@base-ui/react/merge-props";
8
9
  import { Field } from "@base-ui/react/field";
9
- //#region src/components/textarea.tsx
10
- const Textarea = ({ className, size = CONTROL_SIZE.default, unstyled = false, inline = false, fieldSizing = "content", dir, onChange, ...props }) => {
10
+ // src/components/textarea.tsx
11
+ const Textarea = ({ className, size = CONTROL_SIZE.default, unstyled = false, inline = false, fieldSizing = "content", maxRows, showCount = false, dir, onChange, style, ...props }) => {
11
12
  const controlSize = typeof size === "number" ? CONTROL_SIZE.default : size;
12
13
  const contentDir = useContentDir({
13
14
  dir,
14
15
  value: props.value,
15
16
  defaultValue: props.defaultValue
16
17
  });
18
+ const [typedLength, setTypedLength] = useState(() => textLength(props.defaultValue));
19
+ const length = props.value === void 0 ? typedLength : textLength(props.value);
20
+ const counted = showCount && props.maxLength !== void 0;
17
21
  const handleChange = (event) => {
18
22
  contentDir.trackValue(event.currentTarget.value);
23
+ if (counted) setTypedLength(event.currentTarget.value.length);
19
24
  onChange?.(event);
20
25
  };
21
- return /* @__PURE__ */ jsx("span", {
22
- className: cn(inline && "relative inline-flex w-full", !unstyled && !inline && "border-input bg-background text-foreground ring-ring/24 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] has-focus-visible:ring-[3px] has-disabled:opacity-64 has-[:disabled,:focus-visible,[aria-invalid]]:shadow-none sm:text-sm dark:not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)]", className) || void 0,
26
+ const syncCountOnFormReset = (control) => {
27
+ const textarea = control?.querySelector("textarea");
28
+ const form = textarea?.form;
29
+ if (!counted || props.value !== void 0 || !textarea || !form) return;
30
+ const handleReset = () => {
31
+ setTimeout(() => {
32
+ contentDir.trackValue(textarea.value);
33
+ setTypedLength(textarea.value.length);
34
+ }, 0);
35
+ };
36
+ form.addEventListener("reset", handleReset);
37
+ return () => {
38
+ form.removeEventListener("reset", handleReset);
39
+ };
40
+ };
41
+ const textareaStyle = maxRows === void 0 ? style : {
42
+ ...style,
43
+ "--textarea-max-rows": maxRows
44
+ };
45
+ return /* @__PURE__ */ jsxs("span", {
46
+ className: cn(inline && "relative inline-flex w-full", counted && "relative", !unstyled && !inline && "border-input bg-background text-foreground ring-ring/24 has-focus-visible:border-ring has-aria-invalid:border-destructive/36 has-focus-visible:has-aria-invalid:border-destructive/64 has-focus-visible:has-aria-invalid:ring-destructive/16 dark:bg-input/32 dark:has-aria-invalid:ring-destructive/24 relative inline-flex w-full rounded-lg border text-base shadow-xs/5 not-dark:bg-clip-padding before:pointer-events-none before:absolute before:inset-0 before:rounded-[calc(var(--radius-lg)-1px)] not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_1px_--theme(--color-black/4%)] has-focus-visible:ring-[3px] has-disabled:opacity-64 has-[:disabled,:focus-visible,[aria-invalid]]:shadow-none sm:text-sm dark:not-has-disabled:has-not-focus-visible:not-has-aria-invalid:before:shadow-[0_-1px_--theme(--color-white/6%)]", className) || void 0,
23
47
  "data-size": size,
24
48
  "data-slot": "textarea-control",
25
- children: /* @__PURE__ */ jsx(Field.Control, { render: (defaultProps) => /* @__PURE__ */ jsx("textarea", {
26
- className: cn(inline ? cn(INLINE_FIELD_CLASS_NAME, "resize-none") : cn("w-full rounded-[inherit] px-[calc(--spacing(3)-1px)] py-[calc(--spacing(1.5)-1px)] outline-none", TEXTAREA_SIZE_CLASS_NAMES[controlSize], fieldSizing === "content" && TEXTAREA_FLOOR_CLASS_NAMES[controlSize]), fieldSizing === "content" ? "field-sizing-content" : "field-sizing-fixed resize-none"),
49
+ ref: syncCountOnFormReset,
50
+ children: [/* @__PURE__ */ jsx(Field.Control, { render: (defaultProps) => /* @__PURE__ */ jsx("textarea", {
51
+ className: cn(inline ? cn(INLINE_FIELD_CLASS_NAME, "resize-none [--textarea-pb:0px] [--textarea-pt:0px]") : cn("w-full rounded-[inherit] px-[calc(--spacing(3)-1px)] outline-none", TEXTAREA_SIZE_CLASS_NAMES[controlSize], fieldSizing === "content" && TEXTAREA_FLOOR_CLASS_NAMES[controlSize]), fieldSizing === "content" ? "field-sizing-content" : "field-sizing-fixed resize-none", "pt-(--textarea-pt) pb-(--textarea-pb)", counted && "[--textarea-pb:--spacing(6)]", maxRows !== void 0 && "max-h-[calc(var(--textarea-max-rows)*1lh+var(--textarea-pt)+var(--textarea-pb))] min-h-0 max-sm:min-h-0"),
27
52
  "data-slot": "textarea",
28
53
  ...mergeProps(defaultProps, props, { onChange: handleChange }),
29
- dir: contentDir.dir
30
- }) })
54
+ dir: contentDir.dir,
55
+ style: textareaStyle
56
+ }) }), counted ? /* @__PURE__ */ jsxs("span", {
57
+ className: "text-muted-foreground pointer-events-none absolute end-3 bottom-1.5 text-xs tabular-nums",
58
+ "data-slot": "textarea-count",
59
+ children: [
60
+ length,
61
+ "/",
62
+ props.maxLength
63
+ ]
64
+ }) : null]
31
65
  });
32
66
  };
67
+ /** Each size's block padding, as the variables the padding and cap read. */
33
68
  const TEXTAREA_SIZE_CLASS_NAMES = {
34
- [CONTROL_SIZE.sm]: "px-[calc(--spacing(2.5)-1px)] py-[calc(--spacing(1)-1px)]",
35
- [CONTROL_SIZE.default]: void 0,
36
- [CONTROL_SIZE.lg]: "py-[calc(--spacing(2)-1px)]"
69
+ [CONTROL_SIZE.sm]: "px-[calc(--spacing(2.5)-1px)] [--textarea-pb:calc(--spacing(1)-1px)] [--textarea-pt:calc(--spacing(1)-1px)]",
70
+ [CONTROL_SIZE.default]: "[--textarea-pb:calc(--spacing(1.5)-1px)] [--textarea-pt:calc(--spacing(1.5)-1px)]",
71
+ [CONTROL_SIZE.lg]: "[--textarea-pb:calc(--spacing(2)-1px)] [--textarea-pt:calc(--spacing(2)-1px)]"
37
72
  };
38
73
  const TEXTAREA_FLOOR_CLASS_NAMES = {
39
74
  [CONTROL_SIZE.sm]: "min-h-16.5 max-sm:min-h-19.5",
40
75
  [CONTROL_SIZE.default]: "min-h-17.5 max-sm:min-h-20.5",
41
76
  [CONTROL_SIZE.lg]: "min-h-18.5 max-sm:min-h-21.5"
42
77
  };
43
- //#endregion
78
+ function textLength(value) {
79
+ if (value === void 0) return 0;
80
+ return String(value).length;
81
+ }
44
82
  export { Textarea };
@@ -1,10 +1,8 @@
1
1
  import { ComponentProps } from "react";
2
2
  import { NativeField } from "./input.native.js";
3
- //#region src/components/textarea.native.d.ts
4
3
  /**
5
4
  * The web's `Textarea` (./textarea.tsx) on a phone: text that wraps and grows,
6
5
  * in the web's box, or none for a field inside a container that draws one
7
6
  * (the composer).
8
7
  */
9
- export declare const Textarea: ({ size, unstyled, ...props }: Omit<ComponentProps<typeof NativeField>, "box" | "multiline">) => import("react").JSX.Element;
10
- //#endregion
8
+ export declare const Textarea: ({ size, unstyled, ...props }: Omit<ComponentProps<typeof NativeField>, "box" | "multiline">) => import("react").JSX.Element;
@@ -1,6 +1,6 @@
1
1
  import { NativeField } from "./input.native.js";
2
2
  import { jsx } from "react/jsx-runtime";
3
- //#region src/components/textarea.native.tsx
3
+ // src/components/textarea.native.tsx
4
4
  /** The web textarea's box at each control size: its border and inset. */
5
5
  const BOX = {
6
6
  sm: "min-h-16 rounded-lg border border-input bg-card px-2.5 py-1.5",
@@ -24,5 +24,4 @@ const Textarea = ({ size = "default", unstyled = false, ...props }) => /* @__PUR
24
24
  multiline: true,
25
25
  size
26
26
  });
27
- //#endregion
28
27
  export { Textarea };
@@ -1,4 +1,2 @@
1
1
  import { TextFieldContract } from "./input.shared.js";
2
- //#region src/components/textarea.shared.d.ts
3
- export type TextareaContract = Omit<TextFieldContract, "onValueChange">;
4
- //#endregion
2
+ export type TextareaContract = Omit<TextFieldContract, "onValueChange">;
@@ -0,0 +1,25 @@
1
+ import * as React$1 from "react";
2
+ import { PickerClock } from "./date-picker-popover.logic.js";
3
+ /**
4
+ * Stacks time fields on one grid, so their labels, hours and minutes line up
5
+ * whatever each label's length. A lone TimeField makes its own group.
6
+ */
7
+ declare const TimeFieldGroup: ({ children, className, ...props }: React$1.ComponentProps<"div">) => React$1.JSX.Element;
8
+ type TimeFieldProps = {
9
+ className?: string | undefined;
10
+ disabled: boolean;
11
+ /** Ties the field to an error or hint shown next to it. */
12
+ describedBy?: string | undefined;
13
+ invalid?: boolean;
14
+ label: string;
15
+ locale: string;
16
+ onChange: (clock: PickerClock) => void;
17
+ /** A wall-clock `HH:mm` time, or `null` while there is none. */
18
+ time: string | null;
19
+ };
20
+ /**
21
+ * A wall-clock time to the minute: hour and minute selects in the locale's
22
+ * own clock and numerals, so `2 PM` and `14` read as each locale writes them.
23
+ */
24
+ declare const TimeField: ({ className, ...props }: TimeFieldProps) => React$1.JSX.Element;
25
+ export { TimeField, TimeFieldGroup, type TimeFieldProps };