@g9tm/lynxcontrols 0.0.0-stage → 1.4.2

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 (561) hide show
  1. package/README.md +29 -2
  2. package/dist/.tsbuildinfo +1 -0
  3. package/dist/base/base.css +16 -0
  4. package/dist/base/base.css.map +1 -0
  5. package/dist/base/control.d.ts +68 -0
  6. package/dist/base/control.d.ts.map +1 -0
  7. package/dist/base/control.jsx +36 -0
  8. package/dist/base/control.jsx.map +1 -0
  9. package/dist/base/corner-badge.d.ts +35 -0
  10. package/dist/base/corner-badge.d.ts.map +1 -0
  11. package/dist/base/corner-badge.jsx +45 -0
  12. package/dist/base/corner-badge.jsx.map +1 -0
  13. package/dist/base/disposer.d.ts +28 -0
  14. package/dist/base/disposer.d.ts.map +1 -0
  15. package/dist/base/disposer.jsx +61 -0
  16. package/dist/base/disposer.jsx.map +1 -0
  17. package/dist/base/index.d.ts +10 -0
  18. package/dist/base/index.d.ts.map +1 -0
  19. package/dist/base/index.jsx +9 -0
  20. package/dist/base/press.d.ts +38 -0
  21. package/dist/base/press.d.ts.map +1 -0
  22. package/dist/base/press.jsx +73 -0
  23. package/dist/base/press.jsx.map +1 -0
  24. package/dist/base/pressable.d.ts +25 -0
  25. package/dist/base/pressable.d.ts.map +1 -0
  26. package/dist/base/pressable.jsx +38 -0
  27. package/dist/base/pressable.jsx.map +1 -0
  28. package/dist/base/selection-item.d.ts +29 -0
  29. package/dist/base/selection-item.d.ts.map +1 -0
  30. package/dist/base/selection-item.jsx +6 -0
  31. package/dist/base/selection-item.jsx.map +1 -0
  32. package/dist/base/timers.d.ts +7 -0
  33. package/dist/base/timers.d.ts.map +1 -0
  34. package/dist/base/timers.jsx +10 -0
  35. package/dist/base/timers.jsx.map +1 -0
  36. package/dist/base/use-controllable-state.d.ts +30 -0
  37. package/dist/base/use-controllable-state.d.ts.map +1 -0
  38. package/dist/base/use-controllable-state.jsx +49 -0
  39. package/dist/base/use-controllable-state.jsx.map +1 -0
  40. package/dist/base/use-stable-callback.d.ts +8 -0
  41. package/dist/base/use-stable-callback.d.ts.map +1 -0
  42. package/dist/base/use-stable-callback.jsx +12 -0
  43. package/dist/base/use-stable-callback.jsx.map +1 -0
  44. package/dist/button/button.css +162 -0
  45. package/dist/button/button.css.map +1 -0
  46. package/dist/button/button.d.ts +52 -0
  47. package/dist/button/button.d.ts.map +1 -0
  48. package/dist/button/button.jsx +88 -0
  49. package/dist/button/button.jsx.map +1 -0
  50. package/dist/button/header-action-button.d.ts +34 -0
  51. package/dist/button/header-action-button.d.ts.map +1 -0
  52. package/dist/button/header-action-button.jsx +51 -0
  53. package/dist/button/header-action-button.jsx.map +1 -0
  54. package/dist/button/icon-button.d.ts +46 -0
  55. package/dist/button/icon-button.d.ts.map +1 -0
  56. package/dist/button/icon-button.jsx +69 -0
  57. package/dist/button/icon-button.jsx.map +1 -0
  58. package/dist/button/index.d.ts +9 -0
  59. package/dist/button/index.d.ts.map +1 -0
  60. package/dist/button/index.jsx +8 -0
  61. package/dist/button/nav-card.d.ts +58 -0
  62. package/dist/button/nav-card.d.ts.map +1 -0
  63. package/dist/button/nav-card.jsx +96 -0
  64. package/dist/button/nav-card.jsx.map +1 -0
  65. package/dist/button/safe-tap.d.ts +27 -0
  66. package/dist/button/safe-tap.d.ts.map +1 -0
  67. package/dist/button/safe-tap.jsx +46 -0
  68. package/dist/button/safe-tap.jsx.map +1 -0
  69. package/dist/button/safe.d.ts +84 -0
  70. package/dist/button/safe.d.ts.map +1 -0
  71. package/dist/button/safe.jsx +116 -0
  72. package/dist/button/safe.jsx.map +1 -0
  73. package/dist/button/vertical-icon-text-button.d.ts +18 -0
  74. package/dist/button/vertical-icon-text-button.d.ts.map +1 -0
  75. package/dist/button/vertical-icon-text-button.jsx +21 -0
  76. package/dist/button/vertical-icon-text-button.jsx.map +1 -0
  77. package/dist/button/visuals.d.ts +53 -0
  78. package/dist/button/visuals.d.ts.map +1 -0
  79. package/dist/button/visuals.jsx +92 -0
  80. package/dist/button/visuals.jsx.map +1 -0
  81. package/dist/cascade/cascade-panel.d.ts +80 -0
  82. package/dist/cascade/cascade-panel.d.ts.map +1 -0
  83. package/dist/cascade/cascade-panel.jsx +179 -0
  84. package/dist/cascade/cascade-panel.jsx.map +1 -0
  85. package/dist/cascade/cascade.css +70 -0
  86. package/dist/cascade/cascade.css.map +1 -0
  87. package/dist/cascade/index.d.ts +3 -0
  88. package/dist/cascade/index.d.ts.map +1 -0
  89. package/dist/cascade/index.jsx +2 -0
  90. package/dist/cascade/model.d.ts +68 -0
  91. package/dist/cascade/model.d.ts.map +1 -0
  92. package/dist/cascade/model.jsx +161 -0
  93. package/dist/cascade/model.jsx.map +1 -0
  94. package/dist/deferred/deferred-content.d.ts +82 -0
  95. package/dist/deferred/deferred-content.d.ts.map +1 -0
  96. package/dist/deferred/deferred-content.jsx +263 -0
  97. package/dist/deferred/deferred-content.jsx.map +1 -0
  98. package/dist/deferred/deferred.css +62 -0
  99. package/dist/deferred/deferred.css.map +1 -0
  100. package/dist/deferred/index.d.ts +3 -0
  101. package/dist/deferred/index.d.ts.map +1 -0
  102. package/dist/deferred/index.jsx +2 -0
  103. package/dist/deferred/readiness-signal.d.ts +16 -0
  104. package/dist/deferred/readiness-signal.d.ts.map +1 -0
  105. package/dist/deferred/readiness-signal.jsx +29 -0
  106. package/dist/deferred/readiness-signal.jsx.map +1 -0
  107. package/dist/display/activity-indicator.d.ts +21 -0
  108. package/dist/display/activity-indicator.d.ts.map +1 -0
  109. package/dist/display/activity-indicator.jsx +22 -0
  110. package/dist/display/activity-indicator.jsx.map +1 -0
  111. package/dist/display/culture-date-time-label.d.ts +64 -0
  112. package/dist/display/culture-date-time-label.d.ts.map +1 -0
  113. package/dist/display/culture-date-time-label.jsx +73 -0
  114. package/dist/display/culture-date-time-label.jsx.map +1 -0
  115. package/dist/display/display.css +217 -0
  116. package/dist/display/display.css.map +1 -0
  117. package/dist/display/index.d.ts +7 -0
  118. package/dist/display/index.d.ts.map +1 -0
  119. package/dist/display/index.jsx +6 -0
  120. package/dist/display/progress-bar.d.ts +38 -0
  121. package/dist/display/progress-bar.d.ts.map +1 -0
  122. package/dist/display/progress-bar.jsx +57 -0
  123. package/dist/display/progress-bar.jsx.map +1 -0
  124. package/dist/display/separator.d.ts +30 -0
  125. package/dist/display/separator.d.ts.map +1 -0
  126. package/dist/display/separator.jsx +55 -0
  127. package/dist/display/separator.jsx.map +1 -0
  128. package/dist/display/shimmer.d.ts +41 -0
  129. package/dist/display/shimmer.d.ts.map +1 -0
  130. package/dist/display/shimmer.jsx +41 -0
  131. package/dist/display/shimmer.jsx.map +1 -0
  132. package/dist/display/title-with-line.d.ts +13 -0
  133. package/dist/display/title-with-line.d.ts.map +1 -0
  134. package/dist/display/title-with-line.jsx +21 -0
  135. package/dist/display/title-with-line.jsx.map +1 -0
  136. package/dist/edge-panel/edge-panel.css +132 -0
  137. package/dist/edge-panel/edge-panel.css.map +1 -0
  138. package/dist/edge-panel/edge-panel.d.ts +87 -0
  139. package/dist/edge-panel/edge-panel.d.ts.map +1 -0
  140. package/dist/edge-panel/edge-panel.jsx +326 -0
  141. package/dist/edge-panel/edge-panel.jsx.map +1 -0
  142. package/dist/edge-panel/helper.d.ts +27 -0
  143. package/dist/edge-panel/helper.d.ts.map +1 -0
  144. package/dist/edge-panel/helper.jsx +118 -0
  145. package/dist/edge-panel/helper.jsx.map +1 -0
  146. package/dist/edge-panel/index.d.ts +4 -0
  147. package/dist/edge-panel/index.d.ts.map +1 -0
  148. package/dist/edge-panel/index.jsx +3 -0
  149. package/dist/edge-panel/types.d.ts +155 -0
  150. package/dist/edge-panel/types.d.ts.map +1 -0
  151. package/dist/edge-panel/types.jsx +139 -0
  152. package/dist/edge-panel/types.jsx.map +1 -0
  153. package/dist/expander/expander.css +54 -0
  154. package/dist/expander/expander.css.map +1 -0
  155. package/dist/expander/expander.d.ts +46 -0
  156. package/dist/expander/expander.d.ts.map +1 -0
  157. package/dist/expander/expander.jsx +112 -0
  158. package/dist/expander/expander.jsx.map +1 -0
  159. package/dist/expander/index.d.ts +2 -0
  160. package/dist/expander/index.d.ts.map +1 -0
  161. package/dist/expander/index.jsx +1 -0
  162. package/dist/fields/dictation.d.ts +43 -0
  163. package/dist/fields/dictation.d.ts.map +1 -0
  164. package/dist/fields/dictation.jsx +124 -0
  165. package/dist/fields/dictation.jsx.map +1 -0
  166. package/dist/fields/editor.d.ts +26 -0
  167. package/dist/fields/editor.d.ts.map +1 -0
  168. package/dist/fields/editor.jsx +46 -0
  169. package/dist/fields/editor.jsx.map +1 -0
  170. package/dist/fields/fields.css +164 -0
  171. package/dist/fields/fields.css.map +1 -0
  172. package/dist/fields/index.d.ts +13 -0
  173. package/dist/fields/index.d.ts.map +1 -0
  174. package/dist/fields/index.jsx +12 -0
  175. package/dist/fields/input-policy.d.ts +48 -0
  176. package/dist/fields/input-policy.d.ts.map +1 -0
  177. package/dist/fields/input-policy.jsx +215 -0
  178. package/dist/fields/input-policy.jsx.map +1 -0
  179. package/dist/fields/notch.d.ts +10 -0
  180. package/dist/fields/notch.d.ts.map +1 -0
  181. package/dist/fields/notch.jsx +9 -0
  182. package/dist/fields/notch.jsx.map +1 -0
  183. package/dist/fields/outlined-field.d.ts +152 -0
  184. package/dist/fields/outlined-field.d.ts.map +1 -0
  185. package/dist/fields/outlined-field.jsx +199 -0
  186. package/dist/fields/outlined-field.jsx.map +1 -0
  187. package/dist/fields/pin-entry.d.ts +65 -0
  188. package/dist/fields/pin-entry.d.ts.map +1 -0
  189. package/dist/fields/pin-entry.jsx +294 -0
  190. package/dist/fields/pin-entry.jsx.map +1 -0
  191. package/dist/fields/search-entry.d.ts +35 -0
  192. package/dist/fields/search-entry.d.ts.map +1 -0
  193. package/dist/fields/search-entry.jsx +118 -0
  194. package/dist/fields/search-entry.jsx.map +1 -0
  195. package/dist/fields/slot-layout.d.ts +33 -0
  196. package/dist/fields/slot-layout.d.ts.map +1 -0
  197. package/dist/fields/slot-layout.jsx +33 -0
  198. package/dist/fields/slot-layout.jsx.map +1 -0
  199. package/dist/fields/text-entry.d.ts +62 -0
  200. package/dist/fields/text-entry.d.ts.map +1 -0
  201. package/dist/fields/text-entry.jsx +82 -0
  202. package/dist/fields/text-entry.jsx.map +1 -0
  203. package/dist/fields/use-dictation.d.ts +34 -0
  204. package/dist/fields/use-dictation.d.ts.map +1 -0
  205. package/dist/fields/use-dictation.jsx +80 -0
  206. package/dist/fields/use-dictation.jsx.map +1 -0
  207. package/dist/fields/use-text-input.d.ts +150 -0
  208. package/dist/fields/use-text-input.d.ts.map +1 -0
  209. package/dist/fields/use-text-input.jsx +247 -0
  210. package/dist/fields/use-text-input.jsx.map +1 -0
  211. package/dist/fields/validator.d.ts +14 -0
  212. package/dist/fields/validator.d.ts.map +1 -0
  213. package/dist/fields/validator.jsx +20 -0
  214. package/dist/fields/validator.jsx.map +1 -0
  215. package/dist/host/back.d.ts +42 -0
  216. package/dist/host/back.d.ts.map +1 -0
  217. package/dist/host/back.jsx +47 -0
  218. package/dist/host/back.jsx.map +1 -0
  219. package/dist/host/hooks.d.ts +90 -0
  220. package/dist/host/hooks.d.ts.map +1 -0
  221. package/dist/host/hooks.jsx +166 -0
  222. package/dist/host/hooks.jsx.map +1 -0
  223. package/dist/host/host.css +81 -0
  224. package/dist/host/host.css.map +1 -0
  225. package/dist/host/host.d.ts +70 -0
  226. package/dist/host/host.d.ts.map +1 -0
  227. package/dist/host/host.jsx +229 -0
  228. package/dist/host/host.jsx.map +1 -0
  229. package/dist/host/index.d.ts +9 -0
  230. package/dist/host/index.d.ts.map +1 -0
  231. package/dist/host/index.jsx +8 -0
  232. package/dist/host/keyboard.d.ts +24 -0
  233. package/dist/host/keyboard.d.ts.map +1 -0
  234. package/dist/host/keyboard.jsx +28 -0
  235. package/dist/host/keyboard.jsx.map +1 -0
  236. package/dist/host/layers.d.ts +69 -0
  237. package/dist/host/layers.d.ts.map +1 -0
  238. package/dist/host/layers.jsx +111 -0
  239. package/dist/host/layers.jsx.map +1 -0
  240. package/dist/host/page-loading-overlay.d.ts +17 -0
  241. package/dist/host/page-loading-overlay.d.ts.map +1 -0
  242. package/dist/host/page-loading-overlay.jsx +16 -0
  243. package/dist/host/page-loading-overlay.jsx.map +1 -0
  244. package/dist/host/readiness.d.ts +57 -0
  245. package/dist/host/readiness.d.ts.map +1 -0
  246. package/dist/host/readiness.jsx +138 -0
  247. package/dist/host/readiness.jsx.map +1 -0
  248. package/dist/host/registry.d.ts +106 -0
  249. package/dist/host/registry.d.ts.map +1 -0
  250. package/dist/host/registry.jsx +93 -0
  251. package/dist/host/registry.jsx.map +1 -0
  252. package/dist/icon/icon.css +39 -0
  253. package/dist/icon/icon.css.map +1 -0
  254. package/dist/icon/icon.d.ts +57 -0
  255. package/dist/icon/icon.d.ts.map +1 -0
  256. package/dist/icon/icon.jsx +115 -0
  257. package/dist/icon/icon.jsx.map +1 -0
  258. package/dist/icon/index.d.ts +4 -0
  259. package/dist/icon/index.d.ts.map +1 -0
  260. package/dist/icon/index.jsx +3 -0
  261. package/dist/icon/slot.d.ts +45 -0
  262. package/dist/icon/slot.d.ts.map +1 -0
  263. package/dist/icon/slot.jsx +61 -0
  264. package/dist/icon/slot.jsx.map +1 -0
  265. package/dist/icon/swatch.d.ts +29 -0
  266. package/dist/icon/swatch.d.ts.map +1 -0
  267. package/dist/icon/swatch.jsx +25 -0
  268. package/dist/icon/swatch.jsx.map +1 -0
  269. package/dist/index.d.ts +23 -0
  270. package/dist/index.d.ts.map +1 -0
  271. package/dist/index.jsx +1 -0
  272. package/dist/pickers/combo-box.d.ts +42 -0
  273. package/dist/pickers/combo-box.d.ts.map +1 -0
  274. package/dist/pickers/combo-box.jsx +129 -0
  275. package/dist/pickers/combo-box.jsx.map +1 -0
  276. package/dist/pickers/date-time-picker.d.ts +63 -0
  277. package/dist/pickers/date-time-picker.d.ts.map +1 -0
  278. package/dist/pickers/date-time-picker.jsx +141 -0
  279. package/dist/pickers/date-time-picker.jsx.map +1 -0
  280. package/dist/pickers/date-time.d.ts +82 -0
  281. package/dist/pickers/date-time.d.ts.map +1 -0
  282. package/dist/pickers/date-time.jsx +130 -0
  283. package/dist/pickers/date-time.jsx.map +1 -0
  284. package/dist/pickers/index.d.ts +10 -0
  285. package/dist/pickers/index.d.ts.map +1 -0
  286. package/dist/pickers/index.jsx +9 -0
  287. package/dist/pickers/picker-sheet.d.ts +21 -0
  288. package/dist/pickers/picker-sheet.d.ts.map +1 -0
  289. package/dist/pickers/picker-sheet.jsx +61 -0
  290. package/dist/pickers/picker-sheet.jsx.map +1 -0
  291. package/dist/pickers/picker.d.ts +32 -0
  292. package/dist/pickers/picker.d.ts.map +1 -0
  293. package/dist/pickers/picker.jsx +72 -0
  294. package/dist/pickers/picker.jsx.map +1 -0
  295. package/dist/pickers/pickers.css +219 -0
  296. package/dist/pickers/pickers.css.map +1 -0
  297. package/dist/pickers/timespan-picker.d.ts +36 -0
  298. package/dist/pickers/timespan-picker.d.ts.map +1 -0
  299. package/dist/pickers/timespan-picker.jsx +99 -0
  300. package/dist/pickers/timespan-picker.jsx.map +1 -0
  301. package/dist/pickers/timespan.d.ts +38 -0
  302. package/dist/pickers/timespan.d.ts.map +1 -0
  303. package/dist/pickers/timespan.jsx +49 -0
  304. package/dist/pickers/timespan.jsx.map +1 -0
  305. package/dist/pickers/trigger.d.ts +34 -0
  306. package/dist/pickers/trigger.d.ts.map +1 -0
  307. package/dist/pickers/trigger.jsx +77 -0
  308. package/dist/pickers/trigger.jsx.map +1 -0
  309. package/dist/pickers/wheel-column.d.ts +32 -0
  310. package/dist/pickers/wheel-column.d.ts.map +1 -0
  311. package/dist/pickers/wheel-column.jsx +99 -0
  312. package/dist/pickers/wheel-column.jsx.map +1 -0
  313. package/dist/plus-button/index.d.ts +3 -0
  314. package/dist/plus-button/index.d.ts.map +1 -0
  315. package/dist/plus-button/index.jsx +2 -0
  316. package/dist/plus-button/model.d.ts +65 -0
  317. package/dist/plus-button/model.d.ts.map +1 -0
  318. package/dist/plus-button/model.jsx +86 -0
  319. package/dist/plus-button/model.jsx.map +1 -0
  320. package/dist/plus-button/plus-button.css +67 -0
  321. package/dist/plus-button/plus-button.css.map +1 -0
  322. package/dist/plus-button/plus-button.d.ts +38 -0
  323. package/dist/plus-button/plus-button.d.ts.map +1 -0
  324. package/dist/plus-button/plus-button.jsx +155 -0
  325. package/dist/plus-button/plus-button.jsx.map +1 -0
  326. package/dist/popup/frame.d.ts +101 -0
  327. package/dist/popup/frame.d.ts.map +1 -0
  328. package/dist/popup/frame.jsx +252 -0
  329. package/dist/popup/frame.jsx.map +1 -0
  330. package/dist/popup/index.d.ts +8 -0
  331. package/dist/popup/index.d.ts.map +1 -0
  332. package/dist/popup/index.jsx +7 -0
  333. package/dist/popup/input-form.d.ts +35 -0
  334. package/dist/popup/input-form.d.ts.map +1 -0
  335. package/dist/popup/input-form.jsx +160 -0
  336. package/dist/popup/input-form.jsx.map +1 -0
  337. package/dist/popup/input.d.ts +175 -0
  338. package/dist/popup/input.d.ts.map +1 -0
  339. package/dist/popup/input.jsx +176 -0
  340. package/dist/popup/input.jsx.map +1 -0
  341. package/dist/popup/popup-view.d.ts +25 -0
  342. package/dist/popup/popup-view.d.ts.map +1 -0
  343. package/dist/popup/popup-view.jsx +67 -0
  344. package/dist/popup/popup-view.jsx.map +1 -0
  345. package/dist/popup/popup.css +203 -0
  346. package/dist/popup/popup.css.map +1 -0
  347. package/dist/popup/queue.d.ts +90 -0
  348. package/dist/popup/queue.d.ts.map +1 -0
  349. package/dist/popup/queue.jsx +309 -0
  350. package/dist/popup/queue.jsx.map +1 -0
  351. package/dist/popup/service.d.ts +60 -0
  352. package/dist/popup/service.d.ts.map +1 -0
  353. package/dist/popup/service.jsx +350 -0
  354. package/dist/popup/service.jsx.map +1 -0
  355. package/dist/popup/types.d.ts +222 -0
  356. package/dist/popup/types.d.ts.map +1 -0
  357. package/dist/popup/types.jsx +218 -0
  358. package/dist/popup/types.jsx.map +1 -0
  359. package/dist/provider/contexts.d.ts +41 -0
  360. package/dist/provider/contexts.d.ts.map +1 -0
  361. package/dist/provider/contexts.jsx +11 -0
  362. package/dist/provider/contexts.jsx.map +1 -0
  363. package/dist/provider/global-events.d.ts +8 -0
  364. package/dist/provider/global-events.d.ts.map +1 -0
  365. package/dist/provider/global-events.jsx +17 -0
  366. package/dist/provider/global-events.jsx.map +1 -0
  367. package/dist/provider/hooks.d.ts +49 -0
  368. package/dist/provider/hooks.d.ts.map +1 -0
  369. package/dist/provider/hooks.jsx +72 -0
  370. package/dist/provider/hooks.jsx.map +1 -0
  371. package/dist/provider/index.d.ts +5 -0
  372. package/dist/provider/index.d.ts.map +1 -0
  373. package/dist/provider/index.jsx +3 -0
  374. package/dist/provider/provider.css +18 -0
  375. package/dist/provider/provider.css.map +1 -0
  376. package/dist/provider/provider.d.ts +51 -0
  377. package/dist/provider/provider.d.ts.map +1 -0
  378. package/dist/provider/provider.jsx +290 -0
  379. package/dist/provider/provider.jsx.map +1 -0
  380. package/dist/provider/settings.d.ts +99 -0
  381. package/dist/provider/settings.d.ts.map +1 -0
  382. package/dist/provider/settings.jsx +45 -0
  383. package/dist/provider/settings.jsx.map +1 -0
  384. package/dist/provider/theme-css.d.ts +12 -0
  385. package/dist/provider/theme-css.d.ts.map +1 -0
  386. package/dist/provider/theme-css.jsx +19 -0
  387. package/dist/provider/theme-css.jsx.map +1 -0
  388. package/dist/provider/theme-root.d.ts +10 -0
  389. package/dist/provider/theme-root.d.ts.map +1 -0
  390. package/dist/provider/theme-root.jsx +24 -0
  391. package/dist/provider/theme-root.jsx.map +1 -0
  392. package/dist/provider/theme.css +473 -0
  393. package/dist/provider/theme.css.map +1 -0
  394. package/dist/range-slider/index.d.ts +3 -0
  395. package/dist/range-slider/index.d.ts.map +1 -0
  396. package/dist/range-slider/index.jsx +2 -0
  397. package/dist/range-slider/math.d.ts +23 -0
  398. package/dist/range-slider/math.d.ts.map +1 -0
  399. package/dist/range-slider/math.jsx +71 -0
  400. package/dist/range-slider/math.jsx.map +1 -0
  401. package/dist/range-slider/range-slider.css +90 -0
  402. package/dist/range-slider/range-slider.css.map +1 -0
  403. package/dist/range-slider/range-slider.d.ts +52 -0
  404. package/dist/range-slider/range-slider.d.ts.map +1 -0
  405. package/dist/range-slider/range-slider.jsx +159 -0
  406. package/dist/range-slider/range-slider.jsx.map +1 -0
  407. package/dist/selection/index.d.ts +5 -0
  408. package/dist/selection/index.d.ts.map +1 -0
  409. package/dist/selection/index.jsx +3 -0
  410. package/dist/selection/model.d.ts +53 -0
  411. package/dist/selection/model.d.ts.map +1 -0
  412. package/dist/selection/model.jsx +69 -0
  413. package/dist/selection/model.jsx.map +1 -0
  414. package/dist/selection/selection-sheet.d.ts +80 -0
  415. package/dist/selection/selection-sheet.d.ts.map +1 -0
  416. package/dist/selection/selection-sheet.jsx +366 -0
  417. package/dist/selection/selection-sheet.jsx.map +1 -0
  418. package/dist/selection/selection.css +76 -0
  419. package/dist/selection/selection.css.map +1 -0
  420. package/dist/selection/use-selection-model.d.ts +9 -0
  421. package/dist/selection/use-selection-model.d.ts.map +1 -0
  422. package/dist/selection/use-selection-model.jsx +22 -0
  423. package/dist/selection/use-selection-model.jsx.map +1 -0
  424. package/dist/sheet/frame.d.ts +47 -0
  425. package/dist/sheet/frame.d.ts.map +1 -0
  426. package/dist/sheet/frame.jsx +270 -0
  427. package/dist/sheet/frame.jsx.map +1 -0
  428. package/dist/sheet/gesture.d.ts +51 -0
  429. package/dist/sheet/gesture.d.ts.map +1 -0
  430. package/dist/sheet/gesture.jsx +107 -0
  431. package/dist/sheet/gesture.jsx.map +1 -0
  432. package/dist/sheet/handoff.d.ts +32 -0
  433. package/dist/sheet/handoff.d.ts.map +1 -0
  434. package/dist/sheet/handoff.jsx +33 -0
  435. package/dist/sheet/handoff.jsx.map +1 -0
  436. package/dist/sheet/header.d.ts +46 -0
  437. package/dist/sheet/header.d.ts.map +1 -0
  438. package/dist/sheet/header.jsx +158 -0
  439. package/dist/sheet/header.jsx.map +1 -0
  440. package/dist/sheet/height-memo.d.ts +47 -0
  441. package/dist/sheet/height-memo.d.ts.map +1 -0
  442. package/dist/sheet/height-memo.jsx +100 -0
  443. package/dist/sheet/height-memo.jsx.map +1 -0
  444. package/dist/sheet/index.d.ts +12 -0
  445. package/dist/sheet/index.d.ts.map +1 -0
  446. package/dist/sheet/index.jsx +11 -0
  447. package/dist/sheet/loadable.d.ts +35 -0
  448. package/dist/sheet/loadable.d.ts.map +1 -0
  449. package/dist/sheet/loadable.jsx +65 -0
  450. package/dist/sheet/loadable.jsx.map +1 -0
  451. package/dist/sheet/motion.d.ts +59 -0
  452. package/dist/sheet/motion.d.ts.map +1 -0
  453. package/dist/sheet/motion.jsx +59 -0
  454. package/dist/sheet/motion.jsx.map +1 -0
  455. package/dist/sheet/options.d.ts +252 -0
  456. package/dist/sheet/options.d.ts.map +1 -0
  457. package/dist/sheet/options.jsx +92 -0
  458. package/dist/sheet/options.jsx.map +1 -0
  459. package/dist/sheet/processing.d.ts +22 -0
  460. package/dist/sheet/processing.d.ts.map +1 -0
  461. package/dist/sheet/processing.jsx +66 -0
  462. package/dist/sheet/processing.jsx.map +1 -0
  463. package/dist/sheet/service.d.ts +55 -0
  464. package/dist/sheet/service.d.ts.map +1 -0
  465. package/dist/sheet/service.jsx +143 -0
  466. package/dist/sheet/service.jsx.map +1 -0
  467. package/dist/sheet/sheet.css +246 -0
  468. package/dist/sheet/sheet.css.map +1 -0
  469. package/dist/sheet/sheet.d.ts +19 -0
  470. package/dist/sheet/sheet.d.ts.map +1 -0
  471. package/dist/sheet/sheet.jsx +40 -0
  472. package/dist/sheet/sheet.jsx.map +1 -0
  473. package/dist/sheet/sizing.d.ts +87 -0
  474. package/dist/sheet/sizing.d.ts.map +1 -0
  475. package/dist/sheet/sizing.jsx +159 -0
  476. package/dist/sheet/sizing.jsx.map +1 -0
  477. package/dist/sheet/stack.d.ts +161 -0
  478. package/dist/sheet/stack.d.ts.map +1 -0
  479. package/dist/sheet/stack.jsx +378 -0
  480. package/dist/sheet/stack.jsx.map +1 -0
  481. package/dist/swipe/index.d.ts +3 -0
  482. package/dist/swipe/index.d.ts.map +1 -0
  483. package/dist/swipe/index.jsx +2 -0
  484. package/dist/swipe/model.d.ts +72 -0
  485. package/dist/swipe/model.d.ts.map +1 -0
  486. package/dist/swipe/model.jsx +66 -0
  487. package/dist/swipe/model.jsx.map +1 -0
  488. package/dist/swipe/swipe-view.d.ts +40 -0
  489. package/dist/swipe/swipe-view.d.ts.map +1 -0
  490. package/dist/swipe/swipe-view.jsx +163 -0
  491. package/dist/swipe/swipe-view.jsx.map +1 -0
  492. package/dist/swipe/swipe.css +34 -0
  493. package/dist/swipe/swipe.css.map +1 -0
  494. package/dist/tab-bar/index.d.ts +4 -0
  495. package/dist/tab-bar/index.d.ts.map +1 -0
  496. package/dist/tab-bar/index.jsx +3 -0
  497. package/dist/tab-bar/metrics.d.ts +230 -0
  498. package/dist/tab-bar/metrics.d.ts.map +1 -0
  499. package/dist/tab-bar/metrics.jsx +221 -0
  500. package/dist/tab-bar/metrics.jsx.map +1 -0
  501. package/dist/tab-bar/model.d.ts +170 -0
  502. package/dist/tab-bar/model.d.ts.map +1 -0
  503. package/dist/tab-bar/model.jsx +349 -0
  504. package/dist/tab-bar/model.jsx.map +1 -0
  505. package/dist/tab-bar/tab-bar.css +173 -0
  506. package/dist/tab-bar/tab-bar.css.map +1 -0
  507. package/dist/tab-bar/tab-bar.d.ts +61 -0
  508. package/dist/tab-bar/tab-bar.d.ts.map +1 -0
  509. package/dist/tab-bar/tab-bar.jsx +346 -0
  510. package/dist/tab-bar/tab-bar.jsx.map +1 -0
  511. package/dist/tabs/index.d.ts +3 -0
  512. package/dist/tabs/index.d.ts.map +1 -0
  513. package/dist/tabs/index.jsx +2 -0
  514. package/dist/tabs/model.d.ts +83 -0
  515. package/dist/tabs/model.d.ts.map +1 -0
  516. package/dist/tabs/model.jsx +113 -0
  517. package/dist/tabs/model.jsx.map +1 -0
  518. package/dist/tabs/tab-view.d.ts +47 -0
  519. package/dist/tabs/tab-view.d.ts.map +1 -0
  520. package/dist/tabs/tab-view.jsx +227 -0
  521. package/dist/tabs/tab-view.jsx.map +1 -0
  522. package/dist/tabs/tabs.css +182 -0
  523. package/dist/tabs/tabs.css.map +1 -0
  524. package/dist/toast/index.d.ts +3 -0
  525. package/dist/toast/index.d.ts.map +1 -0
  526. package/dist/toast/index.jsx +2 -0
  527. package/dist/toast/service.d.ts +48 -0
  528. package/dist/toast/service.d.ts.map +1 -0
  529. package/dist/toast/service.jsx +238 -0
  530. package/dist/toast/service.jsx.map +1 -0
  531. package/dist/toast/store.d.ts +176 -0
  532. package/dist/toast/store.d.ts.map +1 -0
  533. package/dist/toast/store.jsx +355 -0
  534. package/dist/toast/store.jsx.map +1 -0
  535. package/dist/toast/toast.css +159 -0
  536. package/dist/toast/toast.css.map +1 -0
  537. package/dist/toggle/checkbox-math.d.ts +52 -0
  538. package/dist/toggle/checkbox-math.d.ts.map +1 -0
  539. package/dist/toggle/checkbox-math.jsx +111 -0
  540. package/dist/toggle/checkbox-math.jsx.map +1 -0
  541. package/dist/toggle/checkbox.d.ts +56 -0
  542. package/dist/toggle/checkbox.d.ts.map +1 -0
  543. package/dist/toggle/checkbox.jsx +152 -0
  544. package/dist/toggle/checkbox.jsx.map +1 -0
  545. package/dist/toggle/chip-group.d.ts +50 -0
  546. package/dist/toggle/chip-group.d.ts.map +1 -0
  547. package/dist/toggle/chip-group.jsx +107 -0
  548. package/dist/toggle/chip-group.jsx.map +1 -0
  549. package/dist/toggle/index.d.ts +5 -0
  550. package/dist/toggle/index.d.ts.map +1 -0
  551. package/dist/toggle/index.jsx +4 -0
  552. package/dist/toggle/switch.d.ts +52 -0
  553. package/dist/toggle/switch.d.ts.map +1 -0
  554. package/dist/toggle/switch.jsx +192 -0
  555. package/dist/toggle/switch.jsx.map +1 -0
  556. package/dist/toggle/toggle.css +188 -0
  557. package/dist/toggle/toggle.css.map +1 -0
  558. package/package.json +155 -4
  559. package/rspeedy/index.d.ts +21 -0
  560. package/rspeedy/index.mjs +75 -0
  561. package/rspeedy/index.test.mjs +52 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display/progress-bar.jsx","sources":["../../src/display/progress-bar.tsx"],"sourcesContent":["import './display.css';\nimport {\n formatColor,\n type G9ProgressLabelPlacement,\n type G9ProgressType,\n lighten,\n resolveProgressColor,\n} from '@g9tm/lynxcontrols-foundation';\nimport type { ReactNode } from '@lynx-js/react';\nimport { type G9ControlBaseProps, useG9Control } from '../base/control';\nimport { useG9Theme } from '../provider/hooks';\n\n/** Props of {@link G9ProgressBar} (MAUI `G9ProgressBar`). */\nexport interface G9ProgressBarProps extends G9ControlBaseProps {\n /** 0–1; only the display is clamped. Changes animate over 300 ms. Default 0. */\n readonly value?: number;\n /** Default `var(--g9-surface-variant)`. */\n readonly trackColor?: string | null;\n /** Fill and label colour; default the `progressType` colour. Must be a colour literal (it is lightened). */\n readonly progressColor?: string | null;\n /** Capped at half the bar height. Default 999 (pill). */\n readonly cornerRadius?: number;\n /** Default 10. */\n readonly barHeight?: number;\n /** `'above'` and `'end'` both show `NN%` above the bar, end-aligned (as MAUI). Default `'none'`. */\n readonly labelPlacement?: G9ProgressLabelPlacement;\n /** A 20 % segment sweeps left to right (≈ 1.33 s) instead of a fill. Default false. */\n readonly isIndeterminate?: boolean;\n /** Four dots at 1/5 … 4/5. Default false. */\n readonly showSegments?: boolean;\n /** Default `'primary'`. */\n readonly progressType?: G9ProgressType;\n /** Freezes the sweep and hides the stripes; disabled behaves as paused. Default false. */\n readonly isPaused?: boolean;\n}\n\n/** The progress label: `round(clamp(value) × 100)%`, Latin digits (MAUI formats with .NET, which keeps them). */\nexport function progressLabel(value: number): string {\n return `${Math.round(clampProgress(value) * 100)}%`;\n}\n\n/** Clamps a progress value to [0, 1]; NaN is 0. */\nexport function clampProgress(value: number): number {\n if (!(value > 0)) return 0;\n return value > 1 ? 1 : value;\n}\n\n/**\n * Linear progress (MAUI `G9ProgressBar`): gradient fill (colour → 24 % lighter), diagonal stripes while running,\n * optional segments and label, indeterminate sweep. All motion is CSS (transition on the width, keyframes for the\n * sweep and the stripes); the stored value is never changed.\n */\nexport function G9ProgressBar(props: G9ProgressBarProps): ReactNode {\n const control = useG9Control(props, 'g9-progress');\n const palette = useG9Theme().palette;\n const height = props.barHeight ?? 10;\n const radius = Math.min(props.cornerRadius ?? 999, height / 2);\n const color = props.progressColor ?? resolveProgressColor(props.progressType ?? 'primary', palette);\n const fill = `linear-gradient(to right, ${color}, ${formatColor(lighten(color, 0.24))})`;\n const paused = props.isPaused === true || control.disabled;\n const indeterminate = props.isIndeterminate === true;\n const placement = props.labelPlacement ?? 'none';\n const value = clampProgress(props.value ?? 0);\n return (\n <view className={control.className} {...control.idProps}>\n {placement !== 'none' ? (\n <text className=\"g9-progress__label\" style={{ color }}>\n {progressLabel(value)}\n </text>\n ) : null}\n <view\n className=\"g9-progress__track g9-dir-ltr\"\n style={{\n height: `${height}px`,\n borderRadius: `${radius}px`,\n backgroundColor: props.trackColor ?? palette.SurfaceVariant,\n }}\n accessibility-element={true}\n {...(props.accessibilityLabel ? { 'accessibility-label': props.accessibilityLabel } : {})}\n accessibility-value={indeterminate ? '' : progressLabel(value)}\n >\n <view\n className={`g9-progress__fill${indeterminate ? ' g9-progress__fill--indeterminate' : ''}${indeterminate && !paused ? ' g9-progress__fill--sweep' : ''}`}\n style={{ width: indeterminate ? '20%' : `${value * 100}%`, borderRadius: `${radius}px`, background: fill }}\n >\n {!paused ? <view className=\"g9-progress__stripes\" /> : null}\n </view>\n {props.showSegments\n ? [1, 2, 3, 4].map((i) => <view key={i} className=\"g9-progress__segment\" style={{ left: `${i * 20}%` }} />)\n : null}\n </view>\n </view>\n );\n}\n"],"names":["progressLabel","value","Math","clampProgress","G9ProgressBar","props","_props_barHeight","_props_cornerRadius","_props_progressColor","_props_progressType","_props_labelPlacement","_props_value","_props_trackColor","control","useG9Control","palette","useG9Theme","height","radius","color","resolveProgressColor","fill","formatColor","lighten","paused","indeterminate","placement","view","text","i"],"mappings":";;;;AAqCO,SAASA,cAAcC,KAAa;IACzC,OAAO,GAAGC,KAAK,KAAK,CAACC,AAAuB,MAAvBA,cAAcF,QAAc,CAAC,CAAC;AACrD;AAGO,SAASE,cAAcF,KAAa;IACzC,IAAI,CAAEA,CAAAA,QAAQ,IAAI,OAAO;IACzB,OAAOA,QAAQ,IAAI,IAAIA;AACzB;AAOO,SAASG,cAAcC,KAAyB;QAGtCC,kBACSC,qBACVC,sBAA4CC,qBAIxCC,uBACUC,cAaHC;IAtBzB,MAAMC,UAAUC,aAAaT,OAAO;IACpC,MAAMU,UAAUC,aAAa,OAAO;IACpC,MAAMC,SAAS,QAAAX,CAAAA,mBAAAA,MAAM,SAAS,AAAD,IAAdA,mBAAmB;IAClC,MAAMY,SAAShB,KAAK,GAAG,CAAC,QAAAK,CAAAA,sBAAAA,MAAM,YAAY,AAAD,IAAjBA,sBAAsB,KAAKU,SAAS;IAC5D,MAAME,QAAQ,QAAAX,CAAAA,uBAAAA,MAAM,aAAa,AAAD,IAAlBA,uBAAuBY,qBAAqB,QAAAX,CAAAA,sBAAAA,MAAM,YAAY,AAAD,IAAjBA,sBAAsB,WAAWM;IAC3F,MAAMM,OAAO,CAAC,0BAA0B,EAAEF,MAAM,EAAE,EAAEG,YAAYC,QAAQJ,OAAO,OAAO,CAAC,CAAC;IACxF,MAAMK,SAASnB,AAAmB,SAAnBA,MAAM,QAAQ,IAAaQ,QAAQ,QAAQ;IAC1D,MAAMY,gBAAgBpB,AAA0B,SAA1BA,MAAM,eAAe;IAC3C,MAAMqB,YAAY,QAAAhB,CAAAA,wBAAAA,MAAM,cAAc,AAAD,IAAnBA,wBAAwB;IAC1C,MAAMT,QAAQE,cAAc,QAAAQ,CAAAA,eAAAA,MAAM,KAAK,AAAD,IAAVA,eAAe;IAC3C,QACGgB,KAAK,WAAWd,QAAQ,SAAS,GAAG,GAAGA,QAAQ,OAAO,EAAE;MACvD,CAACa,AAAc,WAAdA,aACEE,KAAK,UAAU,qBAAqB,OAAO;QAAET;IAAM,GAAG;UACrD,CAACnB,cAAcC,OAAO;QACxB,EAAE2B,QACA,KAAK;MACT,CAACD,KACC,UAAU,gCACV,OAAO;QACL,QAAQ,GAAGV,OAAO,EAAE,CAAC;QACrB,cAAc,GAAGC,OAAO,EAAE,CAAC;QAC3B,iBAAiB,QAAAN,CAAAA,oBAAAA,MAAM,UAAU,AAAD,IAAfA,oBAAoBG,QAAQ,cAAc;IAC7D,GACA,uBAAuB,OACtB,GAAIV,MAAM,kBAAkB,GAAG;QAAE,uBAAuBA,MAAM,kBAAkB;IAAC,IAAI,CAAC,CAAC,EACxF,qBAAqBoB,gBAAgB,KAAKzB,cAAcC,QACzD;QACC,CAAC0B,KACC,WAAW,CAAC,iBAAiB,EAAEF,gBAAgB,sCAAsC,KAAKA,iBAAiB,CAACD,SAAS,8BAA8B,IAAI,EACvJ,OAAO;QAAE,OAAOC,gBAAgB,QAAQ,GAAGxB,AAAQ,MAARA,MAAY,CAAC,CAAC;QAAE,cAAc,GAAGiB,OAAO,EAAE,CAAC;QAAE,YAAYG;IAAK,GAC1G;UACC,CAAC,CAACG,UAAUG,KAAK,UAAU,2BAA4B,KAAK;QAC9D,EAAEA,KAAK;QACP,CAACtB,MAAM,YAAY,GACf;QAAC;QAAG;QAAG;QAAG;KAAE,CAAC,GAAG,CAAC,CAACwB,KAAOF,KAAK,KAAKE,GAAG,UAAU,uBAAuB,OAAO;YAAE,MAAM,GAAGA,AAAI,KAAJA,EAAO,CAAC,CAAC;QAAC,QACnG,KAAK;MACX,EAAEF,KAAK;IACT,EAAEA;AAEN"}
@@ -0,0 +1,30 @@
1
+ import './display.css';
2
+ import type { G9ImageSource, G9SeparatorTitleAlignment } from '@g9tm/lynxcontrols-foundation';
3
+ import type { ReactNode } from '@lynx-js/react';
4
+ import { type G9ControlBaseProps } from '../base/control.js';
5
+ import type { G9IconInput } from '../icon/icon.js';
6
+ /** Props of {@link G9Separator} (MAUI `G9Separator`). */
7
+ export interface G9SeparatorProps extends G9ControlBaseProps {
8
+ /** Upper-cased bold 10 label; empty = one full-width line. */
9
+ readonly title?: string | null;
10
+ /** `'auto'` (default) is start. */
11
+ readonly titleAlignment?: G9SeparatorTitleAlignment;
12
+ /** Title and icon colour. Default `var(--g9-text-tertiary)`. */
13
+ readonly titleColor?: string | null;
14
+ /** Default `var(--g9-divider)`. */
15
+ readonly lineColor?: string | null;
16
+ /** Line thickness. Default 1. */
17
+ readonly thickness?: number;
18
+ readonly iconEmoji?: string | null;
19
+ readonly icon?: G9IconInput;
20
+ readonly iconPath?: string | null;
21
+ readonly iconImage?: G9ImageSource | null;
22
+ }
23
+ /** Upper-cases a separator title without `Intl` (Lynx has none): the runtime's default `toUpperCase`. */
24
+ export declare function separatorTitleText(title: string): string;
25
+ /**
26
+ * Section separator (MAUI `G9Separator`): a line, or a title with lines at the start, end or both sides (reading
27
+ * order: start/end swap in RTL). Padding 14 top, 8 bottom; 10 px between title and line.
28
+ */
29
+ export declare function G9Separator(props: G9SeparatorProps): ReactNode;
30
+ //# sourceMappingURL=separator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"separator.d.ts","sourceRoot":"","sources":["../../src/display/separator.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,aAAa,EAAE,yBAAyB,EAAE,MAAM,+BAA+B,CAAC;AAC9F,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,kBAAkB,EAAgB,MAAM,iBAAiB,CAAC;AACxE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,yDAAyD;AACzD,MAAM,WAAW,gBAAiB,SAAQ,kBAAkB;IAC1D,8DAA8D;IAC9D,QAAQ,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,mCAAmC;IACnC,QAAQ,CAAC,cAAc,CAAC,EAAE,yBAAyB,CAAC;IACpD,gEAAgE;IAChE,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACpC,mCAAmC;IACnC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,iCAAiC;IACjC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACnC,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,QAAQ,CAAC,SAAS,CAAC,EAAE,aAAa,GAAG,IAAI,CAAC;CAC3C;AAED,yGAAyG;AACzG,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAExD;AAED;;;GAGG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CAwC9D"}
@@ -0,0 +1,55 @@
1
+ import "./display.css";
2
+ import { useG9Control } from "../base/control.jsx";
3
+ import { G9IconSlot, hasIconSlot } from "../icon/slot.jsx";
4
+ function separatorTitleText(title) {
5
+ return title.toUpperCase();
6
+ }
7
+ function G9Separator(props) {
8
+ var _props_thickness, _props_titleColor, _props_titleAlignment;
9
+ const control = useG9Control(props, 'g9-separator');
10
+ const thickness = null != (_props_thickness = props.thickness) ? _props_thickness : 1;
11
+ const line = (key)=>{
12
+ var _props_lineColor;
13
+ return <view key={key} className="g9-separator__line" style={{
14
+ height: `${thickness}px`,
15
+ backgroundColor: null != (_props_lineColor = props.lineColor) ? _props_lineColor : 'var(--g9-divider)'
16
+ }}/>;
17
+ };
18
+ const title = props.title && '' !== props.title.trim() ? props.title : null;
19
+ if (!title) return <view className={control.className} {...control.idProps} accessibility-element={false}>
20
+ {line('only')}
21
+ </view>;
22
+ const color = null != (_props_titleColor = props.titleColor) ? _props_titleColor : 'var(--g9-text-tertiary)';
23
+ const icon = {
24
+ emoji: props.iconEmoji,
25
+ icon: props.icon,
26
+ imagePath: props.iconPath,
27
+ image: props.iconImage
28
+ };
29
+ const label = <view key="title" className="g9-separator__title">
30
+ {hasIconSlot(icon) ? <G9IconSlot {...icon} size={12} color={color}/> : null}
31
+ <text className="g9-separator__text" style={{
32
+ color
33
+ }}>
34
+ {separatorTitleText(title)}
35
+ </text>
36
+ </view>;
37
+ const alignment = null != (_props_titleAlignment = props.titleAlignment) ? _props_titleAlignment : 'auto';
38
+ const children = 'center' === alignment ? [
39
+ line('a'),
40
+ label,
41
+ line('b')
42
+ ] : 'end' === alignment ? [
43
+ line('a'),
44
+ label
45
+ ] : [
46
+ label,
47
+ line('b')
48
+ ];
49
+ return <view className={control.className} {...control.idProps} accessibility-element={true} accessibility-label={title}>
50
+ {children}
51
+ </view>;
52
+ }
53
+ export { G9Separator, separatorTitleText };
54
+
55
+ //# sourceMappingURL=separator.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display/separator.jsx","sources":["../../src/display/separator.tsx"],"sourcesContent":["import './display.css';\nimport type { G9ImageSource, G9SeparatorTitleAlignment } from '@g9tm/lynxcontrols-foundation';\nimport type { ReactNode } from '@lynx-js/react';\nimport { type G9ControlBaseProps, useG9Control } from '../base/control';\nimport type { G9IconInput } from '../icon/icon';\nimport { G9IconSlot, hasIconSlot } from '../icon/slot';\n\n/** Props of {@link G9Separator} (MAUI `G9Separator`). */\nexport interface G9SeparatorProps extends G9ControlBaseProps {\n /** Upper-cased bold 10 label; empty = one full-width line. */\n readonly title?: string | null;\n /** `'auto'` (default) is start. */\n readonly titleAlignment?: G9SeparatorTitleAlignment;\n /** Title and icon colour. Default `var(--g9-text-tertiary)`. */\n readonly titleColor?: string | null;\n /** Default `var(--g9-divider)`. */\n readonly lineColor?: string | null;\n /** Line thickness. Default 1. */\n readonly thickness?: number;\n readonly iconEmoji?: string | null;\n readonly icon?: G9IconInput;\n readonly iconPath?: string | null;\n readonly iconImage?: G9ImageSource | null;\n}\n\n/** Upper-cases a separator title without `Intl` (Lynx has none): the runtime's default `toUpperCase`. */\nexport function separatorTitleText(title: string): string {\n return title.toUpperCase();\n}\n\n/**\n * Section separator (MAUI `G9Separator`): a line, or a title with lines at the start, end or both sides (reading\n * order: start/end swap in RTL). Padding 14 top, 8 bottom; 10 px between title and line.\n */\nexport function G9Separator(props: G9SeparatorProps): ReactNode {\n const control = useG9Control(props, 'g9-separator');\n const thickness = props.thickness ?? 1;\n const line = (key: string) => (\n <view\n key={key}\n className=\"g9-separator__line\"\n style={{ height: `${thickness}px`, backgroundColor: props.lineColor ?? 'var(--g9-divider)' }}\n />\n );\n const title = props.title && props.title.trim() !== '' ? props.title : null;\n if (!title) {\n return (\n <view className={control.className} {...control.idProps} accessibility-element={false}>\n {line('only')}\n </view>\n );\n }\n const color = props.titleColor ?? 'var(--g9-text-tertiary)';\n const icon = { emoji: props.iconEmoji, icon: props.icon, imagePath: props.iconPath, image: props.iconImage };\n const label = (\n <view key=\"title\" className=\"g9-separator__title\">\n {hasIconSlot(icon) ? <G9IconSlot {...icon} size={12} color={color} /> : null}\n <text className=\"g9-separator__text\" style={{ color }}>\n {separatorTitleText(title)}\n </text>\n </view>\n );\n const alignment = props.titleAlignment ?? 'auto';\n const children =\n alignment === 'center'\n ? [line('a'), label, line('b')]\n : alignment === 'end'\n ? [line('a'), label]\n : [label, line('b')];\n return (\n <view className={control.className} {...control.idProps} accessibility-element={true} accessibility-label={title}>\n {children}\n </view>\n );\n}\n"],"names":["separatorTitleText","title","G9Separator","props","_props_thickness","_props_titleColor","_props_titleAlignment","control","useG9Control","thickness","line","key","_props_lineColor","view","color","icon","label","hasIconSlot","G9IconSlot","text","alignment","children"],"mappings":";;;AA0BO,SAASA,mBAAmBC,KAAa;IAC9C,OAAOA,MAAM,WAAW;AAC1B;AAMO,SAASC,YAAYC,KAAuB;QAE/BC,kBAgBJC,mBAUIC;IA3BlB,MAAMC,UAAUC,aAAaL,OAAO;IACpC,MAAMM,YAAY,QAAAL,CAAAA,mBAAAA,MAAM,SAAS,AAAD,IAAdA,mBAAmB;IACrC,MAAMM,OAAO,CAACC;YAI0CC;gBAHrDC,KACC,KAAKF,KACL,UAAU,qBACV,OAAO;YAAE,QAAQ,GAAGF,UAAU,EAAE,CAAC;YAAE,iBAAiB,QAAAG,CAAAA,mBAAAA,MAAM,SAAS,AAAD,IAAdA,mBAAmB;QAAoB;;IAG/F,MAAMX,QAAQE,MAAM,KAAK,IAAIA,AAAuB,OAAvBA,MAAM,KAAK,CAAC,IAAI,KAAYA,MAAM,KAAK,GAAG;IACvE,IAAI,CAACF,OACH,QACGY,KAAK,WAAWN,QAAQ,SAAS,GAAG,GAAGA,QAAQ,OAAO,EAAE,uBAAuB,OAAO;QACrF,CAACG,KAAK,QAAQ;MAChB,EAAEG;IAGN,MAAMC,QAAQ,QAAAT,CAAAA,oBAAAA,MAAM,UAAU,AAAD,IAAfA,oBAAoB;IAClC,MAAMU,OAAO;QAAE,OAAOZ,MAAM,SAAS;QAAE,MAAMA,MAAM,IAAI;QAAE,WAAWA,MAAM,QAAQ;QAAE,OAAOA,MAAM,SAAS;IAAC;IAC3G,MAAMa,SACHH,KAAK,IAAI,QAAQ,UAAU,sBAAsB;MAChD,CAACI,YAAYF,SAASG,YAAY,GAAGH,IAAI,EAAE,MAAM,IAAI,OAAOD,WAAY,KAAK;MAC7E,CAACK,KAAK,UAAU,qBAAqB,OAAO;QAAEL;IAAM,GAAG;QACrD,CAACd,mBAAmBC,OAAO;MAC7B,EAAEkB,KAAK;IACT,EAAEN;IAEJ,MAAMO,YAAY,QAAAd,CAAAA,wBAAAA,MAAM,cAAc,AAAD,IAAnBA,wBAAwB;IAC1C,MAAMe,WACJD,AAAc,aAAdA,YACI;QAACV,KAAK;QAAMM;QAAON,KAAK;KAAK,GAC7BU,AAAc,UAAdA,YACE;QAACV,KAAK;QAAMM;KAAM,GAClB;QAACA;QAAON,KAAK;KAAK;IAC1B,QACGG,KAAK,WAAWN,QAAQ,SAAS,GAAG,GAAGA,QAAQ,OAAO,EAAE,uBAAuB,MAAM,qBAAqBN,OAAO;MAChH,CAACoB,SAAS;IACZ,EAAER;AAEN"}
@@ -0,0 +1,41 @@
1
+ import './display.css';
2
+ import type { ReactNode } from '@lynx-js/react';
3
+ /** Shape of a sheet's loading placeholder (MAUI `G9BottomSheetLoadingSkeleton`; sheets use it in WP05). */
4
+ export declare const G9BottomSheetLoadingSkeleton: {
5
+ /** No skeleton: the sheet shows its spinner. */
6
+ readonly None: "none";
7
+ /** Field-shaped bars (48 high). */
8
+ readonly FormFields: "formFields";
9
+ /** List rows: a circle and a bar (52 high). */
10
+ readonly ListRows: "listRows";
11
+ };
12
+ export type G9BottomSheetLoadingSkeleton = (typeof G9BottomSheetLoadingSkeleton)[keyof typeof G9BottomSheetLoadingSkeleton];
13
+ /** Props of {@link G9ShimmerBand}. */
14
+ export interface G9ShimmerBandProps {
15
+ /** Sweeping; false stops the animation (hidden content does no work). Default true. */
16
+ readonly active?: boolean;
17
+ }
18
+ /**
19
+ * The highlight band that sweeps over skeleton shapes (MAUI `G9ShimmerBandView`): left to right every 1100 ms, white
20
+ * (peak 0.38) in light themes and black (peak 0.20) in dark ones, input-transparent. CSS keyframes only: no work on
21
+ * the JavaScript threads, and none at all when inactive or unmounted.
22
+ */
23
+ export declare function G9ShimmerBand(props: G9ShimmerBandProps): ReactNode;
24
+ /** Rows of a sheet skeleton: `rowCount` > 0, else 4 (form fields) or 5; clamped to 2–10. */
25
+ export declare function sheetSkeletonRowCount(skeleton: G9BottomSheetLoadingSkeleton, rowCount: number): number;
26
+ /** Props of {@link G9SheetSkeleton}. */
27
+ export interface G9SheetSkeletonProps {
28
+ readonly skeleton: G9BottomSheetLoadingSkeleton;
29
+ /** Rows; ≤ 0 → the default for the shape. */
30
+ readonly rowCount?: number;
31
+ /** Opaque background. Default `var(--g9-background)`. */
32
+ readonly backgroundColor?: string | null;
33
+ /** Sweep the band. Default true. */
34
+ readonly active?: boolean;
35
+ }
36
+ /**
37
+ * A sheet's loading skeleton with the shimmer band (MAUI `G9Shimmer.CreateSheetSkeleton`): form-field bars, or list
38
+ * rows (`'none'` renders list rows too, as MAUI). Fills its parent, input-transparent.
39
+ */
40
+ export declare function G9SheetSkeleton(props: G9SheetSkeletonProps): ReactNode;
41
+ //# sourceMappingURL=shimmer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"shimmer.d.ts","sourceRoot":"","sources":["../../src/display/shimmer.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAGhD,2GAA2G;AAC3G,eAAO,MAAM,4BAA4B;IACvC,gDAAgD;;IAEhD,mCAAmC;;IAEnC,+CAA+C;;CAEvC,CAAC;AACX,MAAM,MAAM,4BAA4B,GACtC,CAAC,OAAO,4BAA4B,CAAC,CAAC,MAAM,OAAO,4BAA4B,CAAC,CAAC;AAEnF,sCAAsC;AACtC,MAAM,WAAW,kBAAkB;IACjC,uFAAuF;IACvF,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,GAAG,SAAS,CAelE;AAED,4FAA4F;AAC5F,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,4BAA4B,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAGtG;AAED,wCAAwC;AACxC,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,QAAQ,EAAE,4BAA4B,CAAC;IAChD,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAC3B,yDAAyD;IACzD,QAAQ,CAAC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzC,oCAAoC;IACpC,QAAQ,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;CAC3B;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,SAAS,CAsBtE"}
@@ -0,0 +1,41 @@
1
+ import "./display.css";
2
+ import { useG9Theme } from "../provider/hooks.jsx";
3
+ const G9BottomSheetLoadingSkeleton = {
4
+ None: 'none',
5
+ FormFields: 'formFields',
6
+ ListRows: 'listRows'
7
+ };
8
+ function G9ShimmerBand(props) {
9
+ const dark = 'dark' === useG9Theme().scheme;
10
+ const peak = dark ? 'rgba(0,0,0,0.2)' : 'rgba(255,255,255,0.38)';
11
+ const clear = dark ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)';
12
+ const active = false !== props.active;
13
+ return <view className="g9-shimmer__band-host">
14
+ {active ? <view className="g9-shimmer__band" style={{
15
+ background: `linear-gradient(to right, ${clear} 35%, ${peak} 50%, ${clear} 65%)`
16
+ }}/> : null}
17
+ </view>;
18
+ }
19
+ function sheetSkeletonRowCount(skeleton, rowCount) {
20
+ const n = rowCount > 0 ? rowCount : 'formFields' === skeleton ? 4 : 5;
21
+ return Math.min(10, Math.max(2, Math.floor(n)));
22
+ }
23
+ function G9SheetSkeleton(props) {
24
+ var _props_rowCount, _props_backgroundColor;
25
+ const rows = sheetSkeletonRowCount(props.skeleton, null != (_props_rowCount = props.rowCount) ? _props_rowCount : 0);
26
+ const form = 'formFields' === props.skeleton;
27
+ const items = [];
28
+ for(let i = 0; i < rows; i++)items.push(form ? <view key={i} className="g9-skeleton__bar g9-skeleton__field"/> : <view key={i} className="g9-skeleton__row">
29
+ <view className="g9-skeleton__circle"/>
30
+ <view className="g9-skeleton__bar g9-skeleton__line"/>
31
+ </view>);
32
+ return <view className="g9-skeleton" style={{
33
+ backgroundColor: null != (_props_backgroundColor = props.backgroundColor) ? _props_backgroundColor : 'var(--g9-background)'
34
+ }}>
35
+ <view className={`g9-skeleton__rows${form ? ' g9-skeleton__rows--form' : ''}`}>{items}</view>
36
+ <G9ShimmerBand active={false !== props.active}/>
37
+ </view>;
38
+ }
39
+ export { G9BottomSheetLoadingSkeleton, G9SheetSkeleton, G9ShimmerBand, sheetSkeletonRowCount };
40
+
41
+ //# sourceMappingURL=shimmer.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display/shimmer.jsx","sources":["../../src/display/shimmer.tsx"],"sourcesContent":["import './display.css';\nimport type { ReactNode } from '@lynx-js/react';\nimport { useG9Theme } from '../provider/hooks';\n\n/** Shape of a sheet's loading placeholder (MAUI `G9BottomSheetLoadingSkeleton`; sheets use it in WP05). */\nexport const G9BottomSheetLoadingSkeleton = {\n /** No skeleton: the sheet shows its spinner. */\n None: 'none',\n /** Field-shaped bars (48 high). */\n FormFields: 'formFields',\n /** List rows: a circle and a bar (52 high). */\n ListRows: 'listRows',\n} as const;\nexport type G9BottomSheetLoadingSkeleton =\n (typeof G9BottomSheetLoadingSkeleton)[keyof typeof G9BottomSheetLoadingSkeleton];\n\n/** Props of {@link G9ShimmerBand}. */\nexport interface G9ShimmerBandProps {\n /** Sweeping; false stops the animation (hidden content does no work). Default true. */\n readonly active?: boolean;\n}\n\n/**\n * The highlight band that sweeps over skeleton shapes (MAUI `G9ShimmerBandView`): left to right every 1100 ms, white\n * (peak 0.38) in light themes and black (peak 0.20) in dark ones, input-transparent. CSS keyframes only: no work on\n * the JavaScript threads, and none at all when inactive or unmounted.\n */\nexport function G9ShimmerBand(props: G9ShimmerBandProps): ReactNode {\n const dark = useG9Theme().scheme === 'dark';\n const peak = dark ? 'rgba(0,0,0,0.2)' : 'rgba(255,255,255,0.38)';\n const clear = dark ? 'rgba(0,0,0,0)' : 'rgba(255,255,255,0)';\n const active = props.active !== false;\n return (\n <view className=\"g9-shimmer__band-host\">\n {active ? (\n <view\n className=\"g9-shimmer__band\"\n style={{ background: `linear-gradient(to right, ${clear} 35%, ${peak} 50%, ${clear} 65%)` }}\n />\n ) : null}\n </view>\n );\n}\n\n/** Rows of a sheet skeleton: `rowCount` > 0, else 4 (form fields) or 5; clamped to 2–10. */\nexport function sheetSkeletonRowCount(skeleton: G9BottomSheetLoadingSkeleton, rowCount: number): number {\n const n = rowCount > 0 ? rowCount : skeleton === 'formFields' ? 4 : 5;\n return Math.min(10, Math.max(2, Math.floor(n)));\n}\n\n/** Props of {@link G9SheetSkeleton}. */\nexport interface G9SheetSkeletonProps {\n readonly skeleton: G9BottomSheetLoadingSkeleton;\n /** Rows; ≤ 0 → the default for the shape. */\n readonly rowCount?: number;\n /** Opaque background. Default `var(--g9-background)`. */\n readonly backgroundColor?: string | null;\n /** Sweep the band. Default true. */\n readonly active?: boolean;\n}\n\n/**\n * A sheet's loading skeleton with the shimmer band (MAUI `G9Shimmer.CreateSheetSkeleton`): form-field bars, or list\n * rows (`'none'` renders list rows too, as MAUI). Fills its parent, input-transparent.\n */\nexport function G9SheetSkeleton(props: G9SheetSkeletonProps): ReactNode {\n const rows = sheetSkeletonRowCount(props.skeleton, props.rowCount ?? 0);\n const form = props.skeleton === 'formFields';\n const items: ReactNode[] = [];\n for (let i = 0; i < rows; i++) {\n items.push(\n form ? (\n <view key={i} className=\"g9-skeleton__bar g9-skeleton__field\" />\n ) : (\n <view key={i} className=\"g9-skeleton__row\">\n <view className=\"g9-skeleton__circle\" />\n <view className=\"g9-skeleton__bar g9-skeleton__line\" />\n </view>\n ),\n );\n }\n return (\n <view className=\"g9-skeleton\" style={{ backgroundColor: props.backgroundColor ?? 'var(--g9-background)' }}>\n <view className={`g9-skeleton__rows${form ? ' g9-skeleton__rows--form' : ''}`}>{items}</view>\n <G9ShimmerBand active={props.active !== false} />\n </view>\n );\n}\n"],"names":["G9BottomSheetLoadingSkeleton","G9ShimmerBand","props","dark","useG9Theme","peak","clear","active","view","sheetSkeletonRowCount","skeleton","rowCount","n","Math","G9SheetSkeleton","_props_rowCount","_props_backgroundColor","rows","form","items","i"],"mappings":";;AAKO,MAAMA,+BAA+B;IAE1C,MAAM;IAEN,YAAY;IAEZ,UAAU;AACZ;AAeO,SAASC,cAAcC,KAAyB;IACrD,MAAMC,OAAOC,AAAwB,WAAxBA,aAAa,MAAM;IAChC,MAAMC,OAAOF,OAAO,oBAAoB;IACxC,MAAMG,QAAQH,OAAO,kBAAkB;IACvC,MAAMI,SAASL,AAAiB,UAAjBA,MAAM,MAAM;IAC3B,QACGM,KAAK,UAAU,wBAAwB;MACtC,CAACD,UACEC,KACC,UAAU,mBACV,OAAO;QAAE,YAAY,CAAC,0BAA0B,EAAEF,MAAM,MAAM,EAAED,KAAK,MAAM,EAAEC,MAAM,KAAK,CAAC;IAAC,OAE1F,KAAK;IACX,EAAEE;AAEN;AAGO,SAASC,sBAAsBC,QAAsC,EAAEC,QAAgB;IAC5F,MAAMC,IAAID,WAAW,IAAIA,WAAWD,AAAa,iBAAbA,WAA4B,IAAI;IACpE,OAAOG,KAAK,GAAG,CAAC,IAAIA,KAAK,GAAG,CAAC,GAAGA,KAAK,KAAK,CAACD;AAC7C;AAiBO,SAASE,gBAAgBZ,KAA2B;QACNa,iBAgBOC;IAhB1D,MAAMC,OAAOR,sBAAsBP,MAAM,QAAQ,EAAE,QAAAa,CAAAA,kBAAAA,MAAM,QAAQ,AAAD,IAAbA,kBAAkB;IACrE,MAAMG,OAAOhB,AAAmB,iBAAnBA,MAAM,QAAQ;IAC3B,MAAMiB,QAAqB,EAAE;IAC7B,IAAK,IAAIC,IAAI,GAAGA,IAAIH,MAAMG,IACxBD,MAAM,IAAI,CACRD,QACGV,KAAK,KAAKY,GAAG,UAAU,2CAEvBZ,KAAK,KAAKY,GAAG,UAAU,mBAAmB;UACzC,CAACZ,KAAK,UAAU,uBAAwB;UACxC,CAACA,KAAK,UAAU,sCAAuC;QACzD,EAAEA;IAIR,QACGA,KAAK,UAAU,cAAc,OAAO;QAAE,iBAAiB,QAAAQ,CAAAA,yBAAAA,MAAM,eAAe,AAAD,IAApBA,yBAAyB;IAAuB,GAAG;MACzG,CAACR,KAAK,WAAW,CAAC,iBAAiB,EAAEU,OAAO,6BAA6B,IAAI,GAAGC,QAAQX,KAAK;MAC7F,CAACP,cAAc,QAAQC,AAAiB,UAAjBA,MAAM,MAAM,GAAc;IACnD,EAAEM;AAEN"}
@@ -0,0 +1,13 @@
1
+ import './display.css';
2
+ import type { ReactNode } from '@lynx-js/react';
3
+ import { type G9ControlBaseProps } from '../base/control.js';
4
+ /** Props of {@link G9TitleWithLine} (MAUI `G9TitleWithLine`). */
5
+ export interface G9TitleWithLineProps extends G9ControlBaseProps {
6
+ /** Default `'ابزار'` (MAUI's hard-coded Persian "tools"). */
7
+ readonly text?: string;
8
+ /** Padding `[left, top, right, bottom]`. Default `[18, 3, 18, 0]`. */
9
+ readonly padding?: readonly [number, number, number, number];
10
+ }
11
+ /** A 16 px title over a 1 px line (MAUI `G9TitleWithLine`). */
12
+ export declare function G9TitleWithLine(props: G9TitleWithLineProps): ReactNode;
13
+ //# sourceMappingURL=title-with-line.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title-with-line.d.ts","sourceRoot":"","sources":["../../src/display/title-with-line.tsx"],"names":[],"mappings":"AAAA,OAAO,eAAe,CAAC;AACvB,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EAAE,KAAK,kBAAkB,EAAgB,MAAM,iBAAiB,CAAC;AAExE,iEAAiE;AACjE,MAAM,WAAW,oBAAqB,SAAQ,kBAAkB;IAC9D,6DAA6D;IAC7D,QAAQ,CAAC,IAAI,CAAC,EAAE,MAAM,CAAC;IACvB,sEAAsE;IACtE,QAAQ,CAAC,OAAO,CAAC,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;CAC9D;AAED,+DAA+D;AAC/D,wBAAgB,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,SAAS,CAStE"}
@@ -0,0 +1,21 @@
1
+ import "./display.css";
2
+ import { useG9Control } from "../base/control.jsx";
3
+ function G9TitleWithLine(props) {
4
+ var _props_padding, _props_text;
5
+ const control = useG9Control(props, 'g9-title-line');
6
+ const [l, t, r, b] = null != (_props_padding = props.padding) ? _props_padding : [
7
+ 18,
8
+ 3,
9
+ 18,
10
+ 0
11
+ ];
12
+ return <view className={control.className} {...control.idProps} style={{
13
+ padding: `${t}px ${r}px ${b}px ${l}px`
14
+ }}>
15
+ <text className="g9-title-line__text">{null != (_props_text = props.text) ? _props_text : 'ابزار'}</text>
16
+ <view className="g9-title-line__line"/>
17
+ </view>;
18
+ }
19
+ export { G9TitleWithLine };
20
+
21
+ //# sourceMappingURL=title-with-line.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"display/title-with-line.jsx","sources":["../../src/display/title-with-line.tsx"],"sourcesContent":["import './display.css';\nimport type { ReactNode } from '@lynx-js/react';\nimport { type G9ControlBaseProps, useG9Control } from '../base/control';\n\n/** Props of {@link G9TitleWithLine} (MAUI `G9TitleWithLine`). */\nexport interface G9TitleWithLineProps extends G9ControlBaseProps {\n /** Default `'ابزار'` (MAUI's hard-coded Persian \"tools\"). */\n readonly text?: string;\n /** Padding `[left, top, right, bottom]`. Default `[18, 3, 18, 0]`. */\n readonly padding?: readonly [number, number, number, number];\n}\n\n/** A 16 px title over a 1 px line (MAUI `G9TitleWithLine`). */\nexport function G9TitleWithLine(props: G9TitleWithLineProps): ReactNode {\n const control = useG9Control(props, 'g9-title-line');\n const [l, t, r, b] = props.padding ?? [18, 3, 18, 0];\n return (\n <view className={control.className} {...control.idProps} style={{ padding: `${t}px ${r}px ${b}px ${l}px` }}>\n <text className=\"g9-title-line__text\">{props.text ?? 'ابزار'}</text>\n <view className=\"g9-title-line__line\" />\n </view>\n );\n}\n"],"names":["G9TitleWithLine","props","_props_padding","_props_text","control","useG9Control","l","t","r","b","view","text"],"mappings":";;AAaO,SAASA,gBAAgBC,KAA2B;QAEpCC,gBAGsBC;IAJ3C,MAAMC,UAAUC,aAAaJ,OAAO;IACpC,MAAM,CAACK,GAAGC,GAAGC,GAAGC,EAAE,GAAG,QAAAP,CAAAA,iBAAAA,MAAM,OAAO,AAAD,IAAZA,iBAAiB;QAAC;QAAI;QAAG;QAAI;KAAE;IACpD,QACGQ,KAAK,WAAWN,QAAQ,SAAS,GAAG,GAAGA,QAAQ,OAAO,EAAE,OAAO;QAAE,SAAS,GAAGG,EAAE,GAAG,EAAEC,EAAE,GAAG,EAAEC,EAAE,GAAG,EAAEH,EAAE,EAAE,CAAC;IAAC,GAAG;MAC1G,CAACK,KAAK,UAAU,uBAAuB,QAAAR,CAAAA,cAAAA,MAAM,IAAI,AAAD,IAATA,cAAc,UAAUQ,KAAK;MACpE,CAACD,KAAK,UAAU,uBAAwB;IAC1C,EAAEA;AAEN"}
@@ -0,0 +1,132 @@
1
+ .g9-edge-panel {
2
+ pointer-events: none;
3
+ position: absolute;
4
+ top: 0;
5
+ bottom: 0;
6
+ left: 0;
7
+ right: 0;
8
+ }
9
+
10
+ .g9-edge-panel__backdrop {
11
+ pointer-events: auto;
12
+ position: absolute;
13
+ top: 0;
14
+ bottom: 0;
15
+ left: 0;
16
+ right: 0;
17
+ }
18
+
19
+ .g9-edge-panel__card {
20
+ pointer-events: auto;
21
+ border: 1px solid var(--g9-outline-variant);
22
+ flex-direction: column;
23
+ display: flex;
24
+ position: absolute;
25
+ overflow: hidden;
26
+ }
27
+
28
+ .g9-edge-panel__card--left {
29
+ border-radius: 0 24px 24px 0;
30
+ }
31
+
32
+ .g9-edge-panel__card--right {
33
+ border-radius: 24px 0 0 24px;
34
+ }
35
+
36
+ .g9-edge-panel__tab {
37
+ pointer-events: auto;
38
+ border: 1px solid var(--g9-outline-variant);
39
+ justify-content: center;
40
+ align-items: center;
41
+ width: 48px;
42
+ height: 64px;
43
+ display: flex;
44
+ position: absolute;
45
+ }
46
+
47
+ .g9-edge-panel__tab--left {
48
+ border-radius: 0 18px 18px 0;
49
+ }
50
+
51
+ .g9-edge-panel__tab--right {
52
+ border-radius: 18px 0 0 18px;
53
+ }
54
+
55
+ .g9-edge-panel__close {
56
+ pointer-events: auto;
57
+ border: 1px solid var(--g9-outline-variant);
58
+ border-radius: 20px;
59
+ justify-content: center;
60
+ align-items: center;
61
+ width: 40px;
62
+ height: 40px;
63
+ display: flex;
64
+ position: absolute;
65
+ }
66
+
67
+ .g9-edge-panel__body {
68
+ flex-direction: column;
69
+ flex-shrink: 1;
70
+ min-height: 64px;
71
+ display: flex;
72
+ }
73
+
74
+ .g9-edge-panel__header {
75
+ padding: 16px 16px 8px;
76
+ }
77
+
78
+ .g9-edge-panel__title {
79
+ color: var(--g9-on-surface);
80
+ font-size: 16px;
81
+ font-weight: 700;
82
+ }
83
+
84
+ .g9-edge-panel__scroll {
85
+ flex-shrink: 1;
86
+ }
87
+
88
+ .g9-edge-panel__menu {
89
+ flex-direction: column;
90
+ gap: 8px;
91
+ padding: 8px;
92
+ display: flex;
93
+ }
94
+
95
+ .g9-edge-panel__back {
96
+ flex-direction: row;
97
+ align-items: center;
98
+ gap: 8px;
99
+ height: 44px;
100
+ padding: 0 12px;
101
+ display: flex;
102
+ }
103
+
104
+ .g9-edge-panel__back-text {
105
+ color: var(--g9-on-surface);
106
+ font-size: 14px;
107
+ }
108
+
109
+ .g9-edge-panel__row {
110
+ border-radius: 12px;
111
+ flex-direction: row;
112
+ align-items: center;
113
+ gap: 12px;
114
+ height: 52px;
115
+ padding: 0 12px;
116
+ display: flex;
117
+ }
118
+
119
+ .g9-edge-panel__row-text {
120
+ text-overflow: ellipsis;
121
+ flex: 1;
122
+ font-size: 15px;
123
+ }
124
+
125
+ .g9-edge-panel__divider {
126
+ background-color: var(--g9-divider);
127
+ height: 1px;
128
+ margin: 4px 12px 0;
129
+ }
130
+
131
+
132
+ /*# sourceMappingURL=edge-panel.css.map */
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["webpack://./src/edge-panel/edge-panel.css"],"names":[],"mappings":"AACA;EAAE,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,QAAQ;AACV;;AAIA;EADE,oBAAoB;EACpB,kBAAkB;EAClB,MAAM;EACN,SAAS;EACT,OAAO;EACP,QAAQ;AACV;;AAIA;EADE,oBAAoB;EACpB,2CAA2C;EAC3C,sBAAsB;EACtB,aAAa;EACb,kBAAkB;EAClB,gBAAgB;AAClB;;AAIA;EADE,4BAA4B;AAC9B;;AAIA;EADE,4BAA4B;AAC9B;;AAIA;EADE,oBAAoB;EACpB,2CAA2C;EAC3C,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,kBAAkB;AACpB;;AAIA;EADE,4BAA4B;AAC9B;;AAIA;EADE,4BAA4B;AAC9B;;AAIA;EADE,oBAAoB;EACpB,2CAA2C;EAC3C,mBAAmB;EACnB,uBAAuB;EACvB,mBAAmB;EACnB,WAAW;EACX,YAAY;EACZ,aAAa;EACb,kBAAkB;AACpB;;AAIA;EADE,sBAAsB;EACtB,cAAc;EACd,gBAAgB;EAChB,aAAa;AACf;;AAIA;EADE,sBAAsB;AACxB;;AAIA;EADE,2BAA2B;EAC3B,eAAe;EACf,gBAAgB;AAClB;;AAIA;EADE,cAAc;AAChB;;AAIA;EADE,sBAAsB;EACtB,QAAQ;EACR,YAAY;EACZ,aAAa;AACf;;AAIA;EADE,mBAAmB;EACnB,mBAAmB;EACnB,QAAQ;EACR,YAAY;EACZ,eAAe;EACf,aAAa;AACf;;AAIA;EADE,2BAA2B;EAC3B,eAAe;AACjB;;AAIA;EADE,mBAAmB;EACnB,mBAAmB;EACnB,mBAAmB;EACnB,SAAS;EACT,YAAY;EACZ,eAAe;EACf,aAAa;AACf;;AAIA;EADE,uBAAuB;EACvB,OAAO;EACP,eAAe;AACjB;;AAIA;EADE,mCAAmC;EACnC,WAAW;EACX,kBAAkB;AACpB","sourcesContent":["/* G9EdgePanel (MAUI G9EdgePanel): edge-anchored card, peek tab, close button, list menu. No shadows. */\n.g9-edge-panel {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: none;\n}\n\n/* Only the backdrop (modal), the card and the tab take touches; empty areas pass through to the page. */\n.g9-edge-panel__backdrop {\n position: absolute;\n top: 0;\n right: 0;\n bottom: 0;\n left: 0;\n pointer-events: auto;\n}\n\n.g9-edge-panel__card {\n position: absolute;\n display: flex;\n flex-direction: column;\n overflow: hidden;\n pointer-events: auto;\n border: 1px solid var(--g9-outline-variant);\n}\n\n.g9-edge-panel__card--left {\n border-radius: 0 24px 24px 0;\n}\n\n.g9-edge-panel__card--right {\n border-radius: 24px 0 0 24px;\n}\n\n.g9-edge-panel__tab {\n position: absolute;\n width: 48px;\n height: 64px;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n border: 1px solid var(--g9-outline-variant);\n}\n\n.g9-edge-panel__tab--left {\n border-radius: 0 18px 18px 0;\n}\n\n.g9-edge-panel__tab--right {\n border-radius: 18px 0 0 18px;\n}\n\n.g9-edge-panel__close {\n position: absolute;\n width: 40px;\n height: 40px;\n border-radius: 20px;\n display: flex;\n align-items: center;\n justify-content: center;\n pointer-events: auto;\n border: 1px solid var(--g9-outline-variant);\n}\n\n.g9-edge-panel__body {\n display: flex;\n flex-direction: column;\n flex-shrink: 1;\n min-height: 64px;\n}\n\n.g9-edge-panel__header {\n padding: 16px 16px 8px 16px;\n}\n\n.g9-edge-panel__title {\n font-size: 16px;\n font-weight: 700;\n color: var(--g9-on-surface);\n}\n\n.g9-edge-panel__scroll {\n flex-shrink: 1;\n}\n\n.g9-edge-panel__menu {\n display: flex;\n flex-direction: column;\n padding: 8px;\n gap: 8px;\n}\n\n.g9-edge-panel__back {\n height: 44px;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 8px;\n padding: 0 12px;\n}\n\n.g9-edge-panel__back-text {\n font-size: 14px;\n color: var(--g9-on-surface);\n}\n\n.g9-edge-panel__row {\n height: 52px;\n border-radius: 12px;\n display: flex;\n flex-direction: row;\n align-items: center;\n gap: 12px;\n padding: 0 12px;\n}\n\n.g9-edge-panel__row-text {\n flex: 1;\n font-size: 15px;\n text-overflow: ellipsis;\n}\n\n.g9-edge-panel__divider {\n height: 1px;\n margin: 4px 12px 0 12px;\n background-color: var(--g9-divider);\n}\n"],"sourceRoot":""}
@@ -0,0 +1,87 @@
1
+ import './edge-panel.css';
2
+ import { type ReactNode } from '@lynx-js/react';
3
+ import type { G9IconInput } from '../icon/icon.js';
4
+ import { type G9EdgeCloseButtonPlacement, type G9EdgeMenuHeader, type G9EdgeMenuHeaderAlignment, type G9EdgeMenuItem, G9EdgeMenuNavigator, type G9EdgePanelContentDirection, type G9EdgeSide } from './types.js';
5
+ /** Imperative handle of an edge panel (MAUI `G9EdgePanel` methods), from {@link useEdgePanel} or the helper. */
6
+ export interface G9EdgePanelController {
7
+ open(): void;
8
+ close(): void;
9
+ toggle(): void;
10
+ readonly isOpen: boolean;
11
+ /** Closes an open panel and reports whether the press was consumed (MAUI `HandleHardwareBackPressed`). */
12
+ handleHardwareBackPressed(): boolean;
13
+ navigateToSubList(items: readonly G9EdgeMenuItem[], header?: G9EdgeMenuHeader | null): void;
14
+ navigateToRoot(): void;
15
+ refreshMenuItems(): void;
16
+ /** `true` while a panel is mounted on this controller. */
17
+ readonly isMounted: boolean;
18
+ /** @internal set by the mounted panel */
19
+ bind(target: G9EdgePanelTarget): () => void;
20
+ }
21
+ interface G9EdgePanelTarget {
22
+ setOpen(open: boolean): void;
23
+ isOpen(): boolean;
24
+ navigator: G9EdgeMenuNavigator;
25
+ renderNav(): void;
26
+ }
27
+ /** Creates a controller outside React. */
28
+ export declare function createEdgePanelController(): G9EdgePanelController;
29
+ /** A stable controller for a `G9EdgePanel`. */
30
+ export declare function useEdgePanel(): G9EdgePanelController;
31
+ /** Props of {@link G9EdgePanel} (MAUI bindable properties and events). */
32
+ export interface G9EdgePanelProps {
33
+ /** Absolute edge (MAUI `Side`). Default `'left'`. */
34
+ readonly side?: G9EdgeSide;
35
+ /** Panel width as a share of the host width (MAUI `WidthRatio`). Default 0.35. */
36
+ readonly widthRatio?: number;
37
+ /** Distance from the top (MAUI `TopGap`). Default 112. */
38
+ readonly topGap?: number;
39
+ /** Absolute height cap; 0 = none (MAUI `MaxPanelHeight`). */
40
+ readonly maxPanelHeight?: number;
41
+ /** Height cap as a share of the host height (MAUI `MaxPanelHeightRatio`). Default 0.69. */
42
+ readonly maxPanelHeightRatio?: number;
43
+ /** Controlled open state (MAUI `IsOpen`, two-way). */
44
+ readonly open?: boolean;
45
+ readonly defaultOpen?: boolean;
46
+ readonly onOpenChange?: (open: boolean) => void;
47
+ /** Custom content (MAUI `PanelContent`); wins over `menuItems`. */
48
+ readonly panelContent?: ReactNode;
49
+ /** A navigable list menu (MAUI `MenuItems`). */
50
+ readonly menuItems?: readonly G9EdgeMenuItem[] | null;
51
+ readonly panelBackgroundColor?: string | null;
52
+ readonly tabBackgroundColor?: string | null;
53
+ /** Icon of the collapsed tab. Default: a chevron pointing into the screen. */
54
+ readonly collapsedTabIcon?: G9IconInput;
55
+ /** Sets both durations (MAUI `AnimationDuration`); the specific ones win. */
56
+ readonly animationDuration?: number;
57
+ /** Slide-in duration (MAUI `OpenAnimationDuration`). Default 450. */
58
+ readonly openAnimationDuration?: number;
59
+ /** Slide-out duration (MAUI `CloseAnimationDuration`). Default 450. */
60
+ readonly closeAnimationDuration?: number;
61
+ /** A backdrop tap closes the panel (needs `useBackdrop`). Default true. */
62
+ readonly enableOutsideTapToClose?: boolean;
63
+ /** Modal: a dimmed backdrop takes every tap outside the panel. Default true. Off = non-modal: only the panel and its tab take touches. */
64
+ readonly useBackdrop?: boolean;
65
+ /** Show the peek tab while closed. Default false. */
66
+ readonly showCollapsedTab?: boolean;
67
+ readonly contentFlowDirection?: G9EdgePanelContentDirection;
68
+ readonly menuHeader?: G9EdgeMenuHeader | null;
69
+ readonly menuHeaderAlignment?: G9EdgeMenuHeaderAlignment;
70
+ readonly closeButtonPlacement?: G9EdgeCloseButtonPlacement;
71
+ /** After the open slide (MAUI `Opened`). */
72
+ readonly onOpened?: () => void;
73
+ /** When the close slide starts (MAUI `Closing`). */
74
+ readonly onClosing?: () => void;
75
+ /** After the close slide (MAUI `Closed`). */
76
+ readonly onClosed?: () => void;
77
+ readonly controller?: G9EdgePanelController;
78
+ }
79
+ /**
80
+ * A panel that slides in from a screen edge (MAUI `G9EdgePanel`), mounted in the host's `edgePanel` layer whatever
81
+ * its place in the tree. Modal by default (a dimmed backdrop that closes on tap); with `useBackdrop={false}` it is
82
+ * non-modal: the page stays interactive and only the panel and its tab receive touches. Content is a custom view or a
83
+ * list menu with nested levels (Back row, per-level header). Hardware back closes it.
84
+ */
85
+ export declare function G9EdgePanel(props: G9EdgePanelProps): ReactNode;
86
+ export {};
87
+ //# sourceMappingURL=edge-panel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"edge-panel.d.ts","sourceRoot":"","sources":["../../src/edge-panel/edge-panel.tsx"],"names":[],"mappings":"AAAA,OAAO,kBAAkB,CAAC;AAE1B,OAAO,EAAE,KAAK,SAAS,EAAwC,MAAM,gBAAgB,CAAC;AAKtF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAUhD,OAAO,EACL,KAAK,0BAA0B,EAC/B,KAAK,gBAAgB,EACrB,KAAK,yBAAyB,EAC9B,KAAK,cAAc,EACnB,mBAAmB,EACnB,KAAK,2BAA2B,EAChC,KAAK,UAAU,EAIhB,MAAM,SAAS,CAAC;AAEjB,gHAAgH;AAChH,MAAM,WAAW,qBAAqB;IACpC,IAAI,IAAI,IAAI,CAAC;IACb,KAAK,IAAI,IAAI,CAAC;IACd,MAAM,IAAI,IAAI,CAAC;IACf,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,0GAA0G;IAC1G,yBAAyB,IAAI,OAAO,CAAC;IACrC,iBAAiB,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,EAAE,MAAM,CAAC,EAAE,gBAAgB,GAAG,IAAI,GAAG,IAAI,CAAC;IAC5F,cAAc,IAAI,IAAI,CAAC;IACvB,gBAAgB,IAAI,IAAI,CAAC;IACzB,0DAA0D;IAC1D,QAAQ,CAAC,SAAS,EAAE,OAAO,CAAC;IAC5B,yCAAyC;IACzC,IAAI,CAAC,MAAM,EAAE,iBAAiB,GAAG,MAAM,IAAI,CAAC;CAC7C;AAED,UAAU,iBAAiB;IACzB,OAAO,CAAC,IAAI,EAAE,OAAO,GAAG,IAAI,CAAC;IAC7B,MAAM,IAAI,OAAO,CAAC;IAClB,SAAS,EAAE,mBAAmB,CAAC;IAC/B,SAAS,IAAI,IAAI,CAAC;CACnB;AAED,0CAA0C;AAC1C,wBAAgB,yBAAyB,IAAI,qBAAqB,CAuCjE;AAED,+CAA+C;AAC/C,wBAAgB,YAAY,IAAI,qBAAqB,CAIpD;AAED,0EAA0E;AAC1E,MAAM,WAAW,gBAAgB;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,IAAI,CAAC,EAAE,UAAU,CAAC;IAC3B,kFAAkF;IAClF,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,0DAA0D;IAC1D,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,6DAA6D;IAC7D,QAAQ,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IACjC,2FAA2F;IAC3F,QAAQ,CAAC,mBAAmB,CAAC,EAAE,MAAM,CAAC;IACtC,sDAAsD;IACtD,QAAQ,CAAC,IAAI,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IAChD,mEAAmE;IACnE,QAAQ,CAAC,YAAY,CAAC,EAAE,SAAS,CAAC;IAClC,gDAAgD;IAChD,QAAQ,CAAC,SAAS,CAAC,EAAE,SAAS,cAAc,EAAE,GAAG,IAAI,CAAC;IACtD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,kBAAkB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5C,8EAA8E;IAC9E,QAAQ,CAAC,gBAAgB,CAAC,EAAE,WAAW,CAAC;IACxC,6EAA6E;IAC7E,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,CAAC;IACpC,qEAAqE;IACrE,QAAQ,CAAC,qBAAqB,CAAC,EAAE,MAAM,CAAC;IACxC,uEAAuE;IACvE,QAAQ,CAAC,sBAAsB,CAAC,EAAE,MAAM,CAAC;IACzC,2EAA2E;IAC3E,QAAQ,CAAC,uBAAuB,CAAC,EAAE,OAAO,CAAC;IAC3C,0IAA0I;IAC1I,QAAQ,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC;IAC/B,qDAAqD;IACrD,QAAQ,CAAC,gBAAgB,CAAC,EAAE,OAAO,CAAC;IACpC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,2BAA2B,CAAC;IAC5D,QAAQ,CAAC,UAAU,CAAC,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9C,QAAQ,CAAC,mBAAmB,CAAC,EAAE,yBAAyB,CAAC;IACzD,QAAQ,CAAC,oBAAoB,CAAC,EAAE,0BAA0B,CAAC;IAC3D,4CAA4C;IAC5C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,oDAAoD;IACpD,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,IAAI,CAAC;IAChC,6CAA6C;IAC7C,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,IAAI,CAAC;IAC/B,QAAQ,CAAC,UAAU,CAAC,EAAE,qBAAqB,CAAC;CAC7C;AAMD;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,SAAS,CA0G9D"}