react-material-design 0.0.0-stage → 0.5.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 (292) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +12 -2
  3. package/dist/_virtual/_rolldown/runtime.cjs +1 -0
  4. package/dist/components/Button/context.cjs +1 -0
  5. package/dist/components/Button/context.d.ts +29 -0
  6. package/dist/components/Button/context.js +41 -0
  7. package/dist/components/Button/default/index.cjs +1 -0
  8. package/dist/components/Button/default/index.d.ts +26 -0
  9. package/dist/components/Button/default/index.js +22 -0
  10. package/dist/components/Button/default/render.cjs +1 -0
  11. package/dist/components/Button/default/render.d.ts +3 -0
  12. package/dist/components/Button/default/render.js +203 -0
  13. package/dist/components/Button/default/style.css +1 -0
  14. package/dist/components/Button/group/index.cjs +1 -0
  15. package/dist/components/Button/group/index.d.ts +2 -0
  16. package/dist/components/Button/group/index.js +1 -0
  17. package/dist/components/Button/group/render.cjs +1 -0
  18. package/dist/components/Button/group/render.d.ts +49 -0
  19. package/dist/components/Button/group/render.js +100 -0
  20. package/dist/components/Button/group/style.css +1 -0
  21. package/dist/components/Button/icon/index.cjs +1 -0
  22. package/dist/components/Button/icon/index.d.ts +22 -0
  23. package/dist/components/Button/icon/index.js +23 -0
  24. package/dist/components/Button/icon/render.cjs +1 -0
  25. package/dist/components/Button/icon/render.d.ts +4 -0
  26. package/dist/components/Button/icon/render.js +178 -0
  27. package/dist/components/Button/icon/style.css +1 -0
  28. package/dist/components/Button/index.cjs +1 -0
  29. package/dist/components/Button/index.d.ts +1 -0
  30. package/dist/components/Button/index.js +55 -0
  31. package/dist/components/Button/split/index.cjs +1 -0
  32. package/dist/components/Button/split/index.d.ts +6 -0
  33. package/dist/components/Button/split/index.js +33 -0
  34. package/dist/components/Button/split/style.css +1 -0
  35. package/dist/components/Button/types.d.ts +19 -0
  36. package/dist/components/Card/index.d.ts +1 -0
  37. package/dist/components/Chip/index.cjs +1 -0
  38. package/dist/components/Chip/index.d.ts +50 -0
  39. package/dist/components/Chip/index.js +156 -0
  40. package/dist/components/Chip/style.css +1 -0
  41. package/dist/components/ContextMenu/index.cjs +1 -0
  42. package/dist/components/ContextMenu/index.d.ts +2 -0
  43. package/dist/components/ContextMenu/index.js +19 -0
  44. package/dist/components/ContextMenu/render.cjs +1 -0
  45. package/dist/components/ContextMenu/render.d.ts +4 -0
  46. package/dist/components/ContextMenu/render.js +59 -0
  47. package/dist/components/Dialog/Dialog.cjs +1 -0
  48. package/dist/components/Dialog/Dialog.d.ts +23 -0
  49. package/dist/components/Dialog/Dialog.js +182 -0
  50. package/dist/components/Dialog/DialogActions.cjs +1 -0
  51. package/dist/components/Dialog/DialogActions.d.ts +3 -0
  52. package/dist/components/Dialog/DialogActions.js +17 -0
  53. package/dist/components/Dialog/index.cjs +1 -0
  54. package/dist/components/Dialog/index.d.ts +4 -0
  55. package/dist/components/Dialog/index.js +3 -0
  56. package/dist/components/Dialog/style.css +1 -0
  57. package/dist/components/Divider/index.cjs +1 -0
  58. package/dist/components/Divider/index.d.ts +6 -0
  59. package/dist/components/Divider/index.js +29 -0
  60. package/dist/components/Divider/style.css +1 -0
  61. package/dist/components/Font/index.d.ts +9 -0
  62. package/dist/components/Icon/Icon.cjs +1 -0
  63. package/dist/components/Icon/Icon.d.ts +18 -0
  64. package/dist/components/Icon/Icon.js +47 -0
  65. package/dist/components/Icon/index.cjs +1 -0
  66. package/dist/components/Icon/index.d.ts +2 -0
  67. package/dist/components/Icon/index.js +1 -0
  68. package/dist/components/Icon/style.css +1 -0
  69. package/dist/components/Menu/Menu.cjs +1 -0
  70. package/dist/components/Menu/Menu.d.ts +4 -0
  71. package/dist/components/Menu/Menu.js +10 -0
  72. package/dist/components/Menu/Menu.render.cjs +1 -0
  73. package/dist/components/Menu/Menu.render.d.ts +15 -0
  74. package/dist/components/Menu/Menu.render.js +55 -0
  75. package/dist/components/Menu/MenuContainer.cjs +1 -0
  76. package/dist/components/Menu/MenuContainer.d.ts +7 -0
  77. package/dist/components/Menu/MenuContainer.js +46 -0
  78. package/dist/components/Menu/MenuGroup.cjs +1 -0
  79. package/dist/components/Menu/MenuGroup.d.ts +11 -0
  80. package/dist/components/Menu/MenuGroup.js +34 -0
  81. package/dist/components/Menu/MenuGroup.render.cjs +1 -0
  82. package/dist/components/Menu/MenuGroup.render.d.ts +6 -0
  83. package/dist/components/Menu/MenuGroup.render.js +31 -0
  84. package/dist/components/Menu/MenuItem.cjs +1 -0
  85. package/dist/components/Menu/MenuItem.d.ts +19 -0
  86. package/dist/components/Menu/MenuItem.js +30 -0
  87. package/dist/components/Menu/MenuItem.render.cjs +1 -0
  88. package/dist/components/Menu/MenuItem.render.d.ts +7 -0
  89. package/dist/components/Menu/MenuItem.render.js +75 -0
  90. package/dist/components/Menu/index.cjs +1 -0
  91. package/dist/components/Menu/index.d.ts +3 -0
  92. package/dist/components/Menu/index.js +4 -0
  93. package/dist/components/Menu/style.css +1 -0
  94. package/dist/components/Menubar/MenuSection.d.ts +8 -0
  95. package/dist/components/Menubar/index.cjs +1 -0
  96. package/dist/components/Menubar/index.d.ts +2 -0
  97. package/dist/components/Menubar/index.js +19 -0
  98. package/dist/components/Menubar/render.cjs +1 -0
  99. package/dist/components/Menubar/render.d.ts +3 -0
  100. package/dist/components/Menubar/render.js +58 -0
  101. package/dist/components/Menubar/style.css +1 -0
  102. package/dist/components/NumberField/NumberField.cjs +1 -0
  103. package/dist/components/NumberField/NumberField.d.ts +2 -0
  104. package/dist/components/NumberField/NumberField.js +19 -0
  105. package/dist/components/NumberField/NumberField.render.cjs +1 -0
  106. package/dist/components/NumberField/NumberField.render.d.ts +10 -0
  107. package/dist/components/NumberField/NumberField.render.js +268 -0
  108. package/dist/components/NumberField/index.cjs +1 -0
  109. package/dist/components/NumberField/index.d.ts +2 -0
  110. package/dist/components/NumberField/index.js +1 -0
  111. package/dist/components/NumberField/style.css +1 -0
  112. package/dist/components/ProgressIndicator/index.d.ts +9 -0
  113. package/dist/components/Select/Option.cjs +1 -0
  114. package/dist/components/Select/Option.d.ts +10 -0
  115. package/dist/components/Select/Option.js +24 -0
  116. package/dist/components/Select/Select.cjs +1 -0
  117. package/dist/components/Select/Select.d.ts +32 -0
  118. package/dist/components/Select/Select.js +265 -0
  119. package/dist/components/Select/index.cjs +1 -0
  120. package/dist/components/Select/index.d.ts +4 -0
  121. package/dist/components/Select/index.js +3 -0
  122. package/dist/components/Select/style.css +1 -0
  123. package/dist/components/Slider/Slider.cjs +1 -0
  124. package/dist/components/Slider/Slider.d.ts +26 -0
  125. package/dist/components/Slider/Slider.js +342 -0
  126. package/dist/components/Slider/index.cjs +1 -0
  127. package/dist/components/Slider/index.d.ts +1 -0
  128. package/dist/components/Slider/index.js +1 -0
  129. package/dist/components/Slider/style.css +1 -0
  130. package/dist/components/TextField/TextField.cjs +1 -0
  131. package/dist/components/TextField/TextField.d.ts +2 -0
  132. package/dist/components/TextField/TextField.js +19 -0
  133. package/dist/components/TextField/TextField.render.cjs +1 -0
  134. package/dist/components/TextField/TextField.render.d.ts +19 -0
  135. package/dist/components/TextField/TextField.render.js +159 -0
  136. package/dist/components/TextField/index.cjs +1 -0
  137. package/dist/components/TextField/index.d.ts +2 -0
  138. package/dist/components/TextField/index.js +1 -0
  139. package/dist/components/TextField/style.css +1 -0
  140. package/dist/components/Theme/Theme.cjs +4 -0
  141. package/dist/components/Theme/Theme.d.ts +14 -0
  142. package/dist/components/Theme/Theme.js +183 -0
  143. package/dist/components/Theme/index.cjs +1 -0
  144. package/dist/components/Theme/index.d.ts +1 -0
  145. package/dist/components/Theme/index.js +1 -0
  146. package/dist/components/Theme/style.css +1 -0
  147. package/dist/components/Theme/types.d.ts +29 -0
  148. package/dist/components/Toolbar/Toolbar.cjs +1 -0
  149. package/dist/components/Toolbar/Toolbar.d.ts +3 -0
  150. package/dist/components/Toolbar/Toolbar.js +19 -0
  151. package/dist/components/Toolbar/Toolbar.render.cjs +1 -0
  152. package/dist/components/Toolbar/Toolbar.render.d.ts +14 -0
  153. package/dist/components/Toolbar/Toolbar.render.js +64 -0
  154. package/dist/components/Toolbar/index.cjs +1 -0
  155. package/dist/components/Toolbar/index.d.ts +2 -0
  156. package/dist/components/Toolbar/index.js +1 -0
  157. package/dist/components/Toolbar/style.css +1 -0
  158. package/dist/components/Tooltip/Tooltip.cjs +1 -0
  159. package/dist/components/Tooltip/Tooltip.d.ts +12 -0
  160. package/dist/components/Tooltip/Tooltip.js +52 -0
  161. package/dist/components/Tooltip/index.cjs +1 -0
  162. package/dist/components/Tooltip/index.d.ts +1 -0
  163. package/dist/components/Tooltip/index.js +1 -0
  164. package/dist/components/Tooltip/style.css +1 -0
  165. package/dist/components/containers/FilledField/index.cjs +1 -0
  166. package/dist/components/containers/FilledField/index.d.ts +9 -0
  167. package/dist/components/containers/FilledField/index.js +40 -0
  168. package/dist/components/containers/FilledField/style.css +1 -0
  169. package/dist/components/containers/OutlinedField/index.cjs +1 -0
  170. package/dist/components/containers/OutlinedField/index.d.ts +9 -0
  171. package/dist/components/containers/OutlinedField/index.js +59 -0
  172. package/dist/components/containers/OutlinedField/style.css +1 -0
  173. package/dist/components/misc/FloatingElement/index.cjs +1 -0
  174. package/dist/components/misc/FloatingElement/index.d.ts +17 -0
  175. package/dist/components/misc/FloatingElement/index.js +106 -0
  176. package/dist/components/misc/FloatingElement/style.css +1 -0
  177. package/dist/components/misc/OrderedCollection/index.cjs +1 -0
  178. package/dist/components/misc/OrderedCollection/index.d.ts +27 -0
  179. package/dist/components/misc/OrderedCollection/index.js +98 -0
  180. package/dist/components/misc/OrderedCollection/style.css +1 -0
  181. package/dist/components/misc/Polymorphic.cjs +1 -0
  182. package/dist/components/misc/Polymorphic.d.ts +15 -0
  183. package/dist/components/misc/Polymorphic.js +51 -0
  184. package/dist/components/misc/StateLayer/index.cjs +1 -0
  185. package/dist/components/misc/StateLayer/index.d.ts +7 -0
  186. package/dist/components/misc/StateLayer/index.js +67 -0
  187. package/dist/components/misc/StateLayer/style.css +1 -0
  188. package/dist/components/misc/Transitionable/index.cjs +1 -0
  189. package/dist/components/misc/Transitionable/index.d.ts +6 -0
  190. package/dist/components/misc/Transitionable/index.js +54 -0
  191. package/dist/components/misc/Transitionable/style.css +1 -0
  192. package/dist/components/types.cjs +1 -0
  193. package/dist/components/types.d.ts +20 -0
  194. package/dist/components/types.js +13 -0
  195. package/dist/hooks/useFloating/autoUpdate.cjs +1 -0
  196. package/dist/hooks/useFloating/autoUpdate.d.ts +9 -0
  197. package/dist/hooks/useFloating/autoUpdate.js +64 -0
  198. package/dist/hooks/useFloating/index.cjs +1 -0
  199. package/dist/hooks/useFloating/index.d.ts +30 -0
  200. package/dist/hooks/useFloating/index.js +97 -0
  201. package/dist/hooks/useFloating/middleware/flip.cjs +1 -0
  202. package/dist/hooks/useFloating/middleware/flip.d.ts +2 -0
  203. package/dist/hooks/useFloating/middleware/flip.js +88 -0
  204. package/dist/hooks/useFloating/middleware/offset.cjs +1 -0
  205. package/dist/hooks/useFloating/middleware/offset.d.ts +2 -0
  206. package/dist/hooks/useFloating/middleware/offset.js +42 -0
  207. package/dist/hooks/useFloating/middleware/shift.cjs +1 -0
  208. package/dist/hooks/useFloating/middleware/shift.d.ts +2 -0
  209. package/dist/hooks/useFloating/middleware/shift.js +11 -0
  210. package/dist/hooks/useFloating/middleware/size.cjs +1 -0
  211. package/dist/hooks/useFloating/middleware/size.d.ts +6 -0
  212. package/dist/hooks/useFloating/middleware/size.js +7 -0
  213. package/dist/hooks/useFloating/utils.cjs +1 -0
  214. package/dist/hooks/useFloating/utils.d.ts +22 -0
  215. package/dist/hooks/useFloating/utils.js +145 -0
  216. package/dist/layouts/Content.cjs +1 -0
  217. package/dist/layouts/Content.d.ts +3 -0
  218. package/dist/layouts/Content.js +17 -0
  219. package/dist/layouts/Page/index.cjs +1 -0
  220. package/dist/layouts/Page/index.d.ts +7 -0
  221. package/dist/layouts/Page/index.js +135 -0
  222. package/dist/layouts/Page/style.css +1 -0
  223. package/dist/layouts/Panes/Pane.cjs +1 -0
  224. package/dist/layouts/Panes/Pane.d.ts +11 -0
  225. package/dist/layouts/Panes/Pane.js +27 -0
  226. package/dist/layouts/Panes/Pane.render.cjs +1 -0
  227. package/dist/layouts/Panes/Pane.render.d.ts +6 -0
  228. package/dist/layouts/Panes/Pane.render.js +36 -0
  229. package/dist/layouts/Panes/Panes.cjs +1 -0
  230. package/dist/layouts/Panes/Panes.d.ts +28 -0
  231. package/dist/layouts/Panes/Panes.js +182 -0
  232. package/dist/layouts/Panes/index.cjs +1 -0
  233. package/dist/layouts/Panes/index.d.ts +2 -0
  234. package/dist/layouts/Panes/index.js +3 -0
  235. package/dist/layouts/Panes/style.css +1 -0
  236. package/dist/layouts/Tabs/Tab.d.ts +13 -0
  237. package/dist/layouts/Tabs/Tabs.d.ts +9 -0
  238. package/dist/layouts/Tabs/index.cjs +1 -0
  239. package/dist/layouts/Tabs/index.d.ts +1 -0
  240. package/dist/layouts/Tabs/index.js +0 -0
  241. package/dist/layouts/Toolbox/index.cjs +1 -0
  242. package/dist/layouts/Toolbox/index.d.ts +5 -0
  243. package/dist/layouts/Toolbox/index.js +129 -0
  244. package/dist/layouts/Toolbox/style.css +1 -0
  245. package/dist/style/motions.d.ts +37 -0
  246. package/dist/style/shapes/12_sided_cookie.d.ts +3 -0
  247. package/dist/style/shapes/4_leaf_clover.d.ts +3 -0
  248. package/dist/style/shapes/4_sided_cookie.d.ts +3 -0
  249. package/dist/style/shapes/6_sided_cookie.d.ts +3 -0
  250. package/dist/style/shapes/7_sided_cookie.d.ts +3 -0
  251. package/dist/style/shapes/8_leaf_clover.d.ts +3 -0
  252. package/dist/style/shapes/9_sided_cookie.d.ts +3 -0
  253. package/dist/style/shapes/arch.d.ts +3 -0
  254. package/dist/style/shapes/arrow.d.ts +3 -0
  255. package/dist/style/shapes/boom.d.ts +3 -0
  256. package/dist/style/shapes/bun.d.ts +3 -0
  257. package/dist/style/shapes/burst.d.ts +3 -0
  258. package/dist/style/shapes/circle.d.ts +3 -0
  259. package/dist/style/shapes/clamshell.d.ts +3 -0
  260. package/dist/style/shapes/diamond.d.ts +3 -0
  261. package/dist/style/shapes/fan.d.ts +3 -0
  262. package/dist/style/shapes/flower.d.ts +3 -0
  263. package/dist/style/shapes/gem.d.ts +3 -0
  264. package/dist/style/shapes/ghost_ish.d.ts +3 -0
  265. package/dist/style/shapes/heart.d.ts +3 -0
  266. package/dist/style/shapes/index.d.ts +109 -0
  267. package/dist/style/shapes/oval.d.ts +3 -0
  268. package/dist/style/shapes/pentagon.d.ts +3 -0
  269. package/dist/style/shapes/pill.d.ts +3 -0
  270. package/dist/style/shapes/pixel_circle.d.ts +3 -0
  271. package/dist/style/shapes/pixel_triangle.d.ts +3 -0
  272. package/dist/style/shapes/puffy.d.ts +3 -0
  273. package/dist/style/shapes/puffy_diamond.d.ts +3 -0
  274. package/dist/style/shapes/semicircle.d.ts +3 -0
  275. package/dist/style/shapes/slanted.d.ts +3 -0
  276. package/dist/style/shapes/soft_boom.d.ts +3 -0
  277. package/dist/style/shapes/soft_burst.d.ts +3 -0
  278. package/dist/style/shapes/square.d.ts +3 -0
  279. package/dist/style/shapes/sunny.d.ts +3 -0
  280. package/dist/style/shapes/triangle.d.ts +3 -0
  281. package/dist/style/shapes/very_sunny.d.ts +3 -0
  282. package/dist/style/symbols.d.ts +2 -0
  283. package/dist/utils/dom.cjs +1 -0
  284. package/dist/utils/dom.d.ts +2 -0
  285. package/dist/utils/dom.js +53 -0
  286. package/dist/utils/hooks.cjs +1 -0
  287. package/dist/utils/hooks.d.ts +17 -0
  288. package/dist/utils/hooks.js +9 -0
  289. package/dist/utils/index.cjs +1 -0
  290. package/dist/utils/index.d.ts +44 -0
  291. package/dist/utils/index.js +74 -0
  292. package/package.json +169 -4
@@ -0,0 +1,17 @@
1
+ import { DependencyList, RefObject, useLayoutEffect } from 'react';
2
+ export declare function useAsyncMemo<T>(factory: () => Promise<T> | undefined | null, deps: DependencyList): T | undefined;
3
+ export declare function useAsyncMemo<T>(factory: () => Promise<T> | undefined | null, deps: DependencyList, initial: T): T;
4
+ export declare function usePrevious<S = undefined>(): S | undefined;
5
+ export declare function usePrevious<S>(value: S, init?: boolean): S;
6
+ export declare function useResizeObserver<T extends Element | null>(target: T | T[], callback: ResizeObserverCallback, options?: ResizeObserverOptions): void;
7
+ export declare function useIntersectionObserver<T extends Element | null>(target: T | T[], callback: IntersectionObserverCallback, options?: IntersectionObserverInit): void;
8
+ export declare function useEventListener<K extends keyof HTMLElementEventMap, T extends HTMLElement | Element | null | undefined>(target: T | T[], type: K, listener: (this: HTMLElement, ev: HTMLElementEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
9
+ export declare function useEventListener<K extends keyof WindowEventMap, T extends Window | null | undefined>(target: T | T[], type: K, listener: (this: HTMLElement, ev: WindowEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
10
+ export declare function useEventListener<K extends keyof DocumentEventMap, T extends Document | null | undefined>(target: T | T[], type: K, listener: (this: HTMLElement, ev: DocumentEventMap[K]) => void, options?: boolean | AddEventListenerOptions): void;
11
+ export declare function useEventListener<K extends keyof MediaQueryListEventMap, T extends MediaQueryList | null | undefined>(target: T | T[], type: K, listener: (this: MediaQueryList, ev: MediaQueryListEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
12
+ export declare function useEventListener<K extends keyof (HTMLElementEventMap | DocumentEventMap | WindowEventMap | MediaQueryListEventMap), T extends HTMLElement | Element | Document | Window | MediaQueryList | null | undefined>(target: T | T[], type: K, listener: (object: Event) => void, options?: boolean | AddEventListenerOptions): void;
13
+ export declare function useFollowElement(target: RefObject<Element | null>, callback: (rect: DOMRect | undefined, visible: boolean) => void): () => void;
14
+ export declare function useViewTransitions(callback?: (viewTransition?: ViewTransition) => void): () => void;
15
+ export declare const useIsomorphicLayoutEffect: typeof useLayoutEffect;
16
+ export declare function useMount(effect: () => void): void;
17
+ export declare function useUnmount(effect: () => void): void;
@@ -0,0 +1,9 @@
1
+ import { isBrowser as e } from "./index.js";
2
+ import "react/compiler-runtime";
3
+ import { useEffect as t, useLayoutEffect as n } from "react";
4
+ import "react-dom";
5
+ import "react-dom-event-hooks";
6
+ //#region lib/utils/hooks.ts
7
+ var r = e() ? n : t;
8
+ //#endregion
9
+ export { r as useIsomorphicLayoutEffect };
@@ -0,0 +1 @@
1
+ function e(){return typeof window<`u`}var t=(e,t,n)=>e<t?t:e>n?n:e,n=(e,n,r,i,a)=>t((e-n)*(a-i)/(r-n)+i,i,a);function r(e,t){let n=/\b\w+\b/g,r=0;for(;n.exec(e)!==null;)if(r++,r>=t)return e.slice(0,n.lastIndex);return e}async function i(e,t){return new Promise(n=>{let r=null,i=a=>{t(a)&&(e?.removeEventListener(`animationend`,i),r&&clearInterval(r),n())};if(!e||window.getComputedStyle(e).animationName.includes(`none`))return n();r=setInterval(()=>{window.getComputedStyle(e).animationName.includes(`none`)&&(r&&clearInterval(r),n())},100),e.addEventListener(`animationend`,i)})}async function a(e,t){return i(e,n=>n.target===e?typeof t==`string`?n.animationName===t:t(n.animationName):!1)}function o(e,t,n=0){if(e==null)return n;if(typeof e==`string`){if(e.endsWith(`%`))return parseFloat(e)/100*t;if(e.endsWith(`px`))return parseFloat(e)}return Number(e)||n}function s(e,t,n){if(typeof t==`string`){if(t.endsWith(`%`))return`${e/n*100}%`;if(t.endsWith(`px`))return`${e}px`}return e}function c(e,t,n,r){let i,a;if(!e)return r;if(e.computedStyleMap?(a=e.computedStyleMap().get(t),a instanceof CSSUnparsedValue&&(a=CSSNumericValue.parse(a.toString()))):(i=/^(?<value>\d+)(?<unit>[a-zA-Z]+)?$/.exec(window.getComputedStyle(e).getPropertyValue(t)||`0`))!==null&&(a={value:parseFloat(i.groups?.value??``),unit:i.groups?.unit??``}),a&&`value`in a&&`unit`in a&&typeof a.value==`number`&&typeof a.unit==`string`){if([`ms`,`s`].includes(a.unit.toLowerCase())){if(n?.toLowerCase()===`ms`&&a.unit.toLowerCase()===`s`)return a.value*1e3;if(n?.toLowerCase()===`s`&&a.unit.toLowerCase()===`ms`)return a.value/1e3}return a.value}return r}function l(e,t){return c(e,`--md-comp-${t}`)??0}function u(e,t){let n,r;if(Object.is(e,t))return!0;if(typeof e!=`object`||!e||typeof t!=`object`||!t||(n=Object.keys(e),r=Object.keys(t),n.length!==r.length))return!1;for(let r=0;r<n.length;r++)if(!Object.prototype.hasOwnProperty.call(t,n[r])||!Object.is(e[n[r]],t[n[r]]))return!1;return!0}function d(e){let t=[],n=e.parentElement;for(;n;){let e=window.getComputedStyle(n);/(auto|scroll|overlay)/.test(e.overflow+e.overflowY+e.overflowX)&&t.push(n),n=n.parentElement}return t}exports.clamp=t,exports.formatSizeFromPx=s,exports.getComponentTokenValue=l,exports.getMaxWords=r,exports.getPropertyValue=c,exports.getScrollParents=d,exports.isBrowser=e,exports.mapRange=n,exports.parseSizeToPx=o,exports.shallowEqual=u,exports.waitAnimationEndEvent=i,exports.waitAnimationNameEndEvent=a;
@@ -0,0 +1,44 @@
1
+ export declare const setTimeout: (delay?: number) => Promise<unknown>;
2
+ export declare function isBrowser(): boolean;
3
+ export declare function randomUUID(): ReturnType<typeof crypto["randomUUID"]>;
4
+ export declare function onPageLoading(loading: boolean): void;
5
+ export declare function compareDeps<T>(target: T, previous: T): boolean;
6
+ export declare function hex2rgb(hex: string): {
7
+ r: number;
8
+ g: number;
9
+ b: number;
10
+ };
11
+ export declare function isLight(color?: string | {
12
+ r: number;
13
+ g: number;
14
+ b: number;
15
+ }): boolean;
16
+ export declare const compareRect: (a?: DOMRect, b?: DOMRect) => boolean;
17
+ export declare function isDeepEqual(object1: any, object2: any): boolean;
18
+ export declare const isObject: (object: any) => boolean;
19
+ export declare const clamp: (input: number, min: number, max: number) => number;
20
+ export declare const mapRange: (current: number, inMin: number, inMax: number, outMin: number, outMax: number) => number;
21
+ export declare function getMaxWords(str: string, max: number): string;
22
+ export declare function waitAnimationFrame(frame?: number): Promise<number>;
23
+ export declare const waitAnimationFrameTimeout: (delay?: number) => Promise<number>;
24
+ export declare function waitTransitionEndEvent(element: HTMLElement | null | undefined, condition: (event: TransitionEvent) => boolean, targetOnly?: boolean): Promise<void>;
25
+ export declare function waitTransitionNameEndEvent(element: HTMLElement | null | undefined, name: string | ((name: string) => boolean), targetOnly?: boolean): Promise<void>;
26
+ export declare function waitAnimationEndEvent(element: HTMLElement | null | undefined, condition: (event: AnimationEvent) => boolean): Promise<void>;
27
+ export declare function waitAnimationNameEndEvent(element: HTMLElement | null | undefined, name: string | ((name: string) => boolean)): Promise<void>;
28
+ export type SizeUnit = string | number;
29
+ export declare function parseSizeToPx(val: SizeUnit | undefined, containerSize: number, fallback?: number): number;
30
+ export declare function formatSizeFromPx(pxValue: number, originalUnit: SizeUnit, containerSize: number): SizeUnit;
31
+ export declare function getPropertyValue(element: HTMLElement | SVGElement | undefined | null, property: string, unit?: string): number | undefined;
32
+ export declare function getPropertyValue<D extends string | number>(element: HTMLElement | SVGElement | undefined | null, property: string, unit: string | undefined, defaultValue: D): D;
33
+ export declare function getPropertyValue<D extends string | number>(element: HTMLElement | SVGElement | undefined | null, property: string, unit?: string, defaultValue?: D): D | number | undefined;
34
+ export declare function getComponentTokenValue(element: HTMLElement | SVGElement | undefined | null, token: string): number;
35
+ export declare function getRelativeRect(target?: HTMLElement | DOMRect | null, relativeTo?: HTMLElement | DOMRect | null): DOMRect;
36
+ export declare function isRectInside(rectA: DOMRect, rectB: DOMRect): boolean;
37
+ export declare function shallowEqual(objA: any, objB: any): boolean;
38
+ export declare function getScrollParents(node: Element): Element[];
39
+ export declare function getViewportRect(): {
40
+ width: number;
41
+ height: number;
42
+ offsetLeft: number;
43
+ offsetTop: number;
44
+ };
@@ -0,0 +1,74 @@
1
+ //#region lib/utils/index.tsx
2
+ function e() {
3
+ return typeof window < "u";
4
+ }
5
+ var t = (e, t, n) => e < t ? t : e > n ? n : e, n = (e, n, r, i, a) => t((e - n) * (a - i) / (r - n) + i, i, a);
6
+ function r(e, t) {
7
+ let n = /\b\w+\b/g, r = 0;
8
+ for (; n.exec(e) !== null;) if (r++, r >= t) return e.slice(0, n.lastIndex);
9
+ return e;
10
+ }
11
+ async function i(e, t) {
12
+ return new Promise((n) => {
13
+ let r = null, i = (a) => {
14
+ t(a) && (e?.removeEventListener("animationend", i), r && clearInterval(r), n());
15
+ };
16
+ if (!e || window.getComputedStyle(e).animationName.includes("none")) return n();
17
+ r = setInterval(() => {
18
+ window.getComputedStyle(e).animationName.includes("none") && (r && clearInterval(r), n());
19
+ }, 100), e.addEventListener("animationend", i);
20
+ });
21
+ }
22
+ async function a(e, t) {
23
+ return i(e, (n) => n.target === e ? typeof t == "string" ? n.animationName === t : t(n.animationName) : !1);
24
+ }
25
+ function o(e, t, n = 0) {
26
+ if (e == null) return n;
27
+ if (typeof e == "string") {
28
+ if (e.endsWith("%")) return parseFloat(e) / 100 * t;
29
+ if (e.endsWith("px")) return parseFloat(e);
30
+ }
31
+ return Number(e) || n;
32
+ }
33
+ function s(e, t, n) {
34
+ if (typeof t == "string") {
35
+ if (t.endsWith("%")) return `${e / n * 100}%`;
36
+ if (t.endsWith("px")) return `${e}px`;
37
+ }
38
+ return e;
39
+ }
40
+ function c(e, t, n, r) {
41
+ let i, a;
42
+ if (!e) return r;
43
+ if (e.computedStyleMap ? (a = e.computedStyleMap().get(t), a instanceof CSSUnparsedValue && (a = CSSNumericValue.parse(a.toString()))) : (i = /^(?<value>\d+)(?<unit>[a-zA-Z]+)?$/.exec(window.getComputedStyle(e).getPropertyValue(t) || "0")) !== null && (a = {
44
+ value: parseFloat(i.groups?.value ?? ""),
45
+ unit: i.groups?.unit ?? ""
46
+ }), a && "value" in a && "unit" in a && typeof a.value == "number" && typeof a.unit == "string") {
47
+ if (["ms", "s"].includes(a.unit.toLowerCase())) {
48
+ if (n?.toLowerCase() === "ms" && a.unit.toLowerCase() === "s") return a.value * 1e3;
49
+ if (n?.toLowerCase() === "s" && a.unit.toLowerCase() === "ms") return a.value / 1e3;
50
+ }
51
+ return a.value;
52
+ }
53
+ return r;
54
+ }
55
+ function l(e, t) {
56
+ return c(e, `--md-comp-${t}`) ?? 0;
57
+ }
58
+ function u(e, t) {
59
+ let n, r;
60
+ if (Object.is(e, t)) return !0;
61
+ if (typeof e != "object" || !e || typeof t != "object" || !t || (n = Object.keys(e), r = Object.keys(t), n.length !== r.length)) return !1;
62
+ for (let r = 0; r < n.length; r++) if (!Object.prototype.hasOwnProperty.call(t, n[r]) || !Object.is(e[n[r]], t[n[r]])) return !1;
63
+ return !0;
64
+ }
65
+ function d(e) {
66
+ let t = [], n = e.parentElement;
67
+ for (; n;) {
68
+ let e = window.getComputedStyle(n);
69
+ /(auto|scroll|overlay)/.test(e.overflow + e.overflowY + e.overflowX) && t.push(n), n = n.parentElement;
70
+ }
71
+ return t;
72
+ }
73
+ //#endregion
74
+ export { t as clamp, s as formatSizeFromPx, l as getComponentTokenValue, r as getMaxWords, c as getPropertyValue, d as getScrollParents, e as isBrowser, n as mapRange, o as parseSizeToPx, u as shallowEqual, i as waitAnimationEndEvent, a as waitAnimationNameEndEvent };
package/package.json CHANGED
@@ -1,6 +1,171 @@
1
1
  {
2
- "name": "react-material-design",
3
- "version": "0.0.0-stage",
4
- "stub": true,
5
- "description": "Temporary package placeholder for staged publishing"
2
+ "name": "react-material-design",
3
+ "version": "0.5.0",
4
+ "type": "module",
5
+ "license": "MIT",
6
+ "author": {
7
+ "name": "Mondemen"
8
+ },
9
+ "repository": {
10
+ "url": "git+https://github.com/Mondemen/react-material-design.git"
11
+ },
12
+ "scripts": {
13
+ "dev": "vite --clearScreen",
14
+ "build": "vite build --mode lib",
15
+ "prepublishOnly": "npm run build",
16
+ "lint": "oxlint",
17
+ "preview": "vite preview"
18
+ },
19
+ "dependencies": {
20
+ "@material/material-color-utilities": "^0.4.0",
21
+ "bezier-easing": "^3.2.0",
22
+ "classnames": "^2.5.1",
23
+ "react-dom-event-hooks": "^1.2.2"
24
+ },
25
+ "peerDependencies": {
26
+ "@fontsource/roboto": "*",
27
+ "@fontsource/roboto-flex": "*",
28
+ "@fontsource/roboto-mono": "*",
29
+ "material-symbols": ">=0.4.0",
30
+ "react": ">=19.3.0",
31
+ "react-dom": ">=19.3.0"
32
+ },
33
+ "devDependencies": {
34
+ "@babel/core": "^7.29.7",
35
+ "@rolldown/plugin-babel": "^0.2.4",
36
+ "@types/babel__core": "^7.20.5",
37
+ "@types/node": "^24.19.2",
38
+ "@types/react": "^19.3.0",
39
+ "@types/react-dom": "^19.3.0",
40
+ "@vitejs/plugin-react": "^6.1.2",
41
+ "babel-plugin-react-compiler": "^1.0.0",
42
+ "commander": "^15.0.0",
43
+ "globals": "^17.13.0",
44
+ "oxlint": "^1.88.0",
45
+ "sass": "^1.105.2",
46
+ "sass-alias": "^2.0.1",
47
+ "tsx": "^4.23.15",
48
+ "typescript": "^6.0.3",
49
+ "unplugin-dts": "^1.1.2",
50
+ "vite": "^8.3.4",
51
+ "vite-plugin-lib-inject-css": "^2.2.2",
52
+ "vite-tsconfig-paths": "^6.1.1"
53
+ },
54
+ "exports": {
55
+ "./Theme": {
56
+ "types": "./dist/components/Theme/index.d.ts",
57
+ "import": "./dist/components/Theme/index.js",
58
+ "require": "./dist/components/Theme/index.cjs"
59
+ },
60
+ "./Button": {
61
+ "types": "./dist/components/Button/default/index.d.ts",
62
+ "import": "./dist/components/Button/default/index.js",
63
+ "require": "./dist/components/Button/default/index.cjs"
64
+ },
65
+ "./ButtonIcon": {
66
+ "types": "./dist/components/Button/icon/index.d.ts",
67
+ "import": "./dist/components/Button/icon/index.js",
68
+ "require": "./dist/components/Button/icon/index.cjs"
69
+ },
70
+ "./ButtonGroup": {
71
+ "types": "./dist/components/Button/group/index.d.ts",
72
+ "import": "./dist/components/Button/group/index.js",
73
+ "require": "./dist/components/Button/group/index.cjs"
74
+ },
75
+ "./SplitButton": {
76
+ "types": "./dist/components/Button/split/index.d.ts",
77
+ "import": "./dist/components/Button/split/index.js",
78
+ "require": "./dist/components/Button/split/index.cjs"
79
+ },
80
+ "./Chip": {
81
+ "types": "./dist/components/Chip/index.d.ts",
82
+ "import": "./dist/components/Chip/index.js",
83
+ "require": "./dist/components/Chip/index.cjs"
84
+ },
85
+ "./ContextMenu": {
86
+ "types": "./dist/components/ContextMenu/index.d.ts",
87
+ "import": "./dist/components/ContextMenu/index.js",
88
+ "require": "./dist/components/ContextMenu/index.cjs"
89
+ },
90
+ "./Dialog": {
91
+ "types": "./dist/components/Dialog/index.d.ts",
92
+ "import": "./dist/components/Dialog/index.js",
93
+ "require": "./dist/components/Dialog/index.cjs"
94
+ },
95
+ "./Divider": {
96
+ "types": "./dist/components/Divider/index.d.ts",
97
+ "import": "./dist/components/Divider/index.js",
98
+ "require": "./dist/components/Divider/index.cjs"
99
+ },
100
+ "./Icon": {
101
+ "types": "./dist/components/Icon/index.d.ts",
102
+ "import": "./dist/components/Icon/index.js",
103
+ "require": "./dist/components/Icon/index.cjs"
104
+ },
105
+ "./Menu": {
106
+ "types": "./dist/components/Menu/index.d.ts",
107
+ "import": "./dist/components/Menu/index.js",
108
+ "require": "./dist/components/Menu/index.cjs"
109
+ },
110
+ "./Menubar": {
111
+ "types": "./dist/components/Menubar/index.d.ts",
112
+ "import": "./dist/components/Menubar/index.js",
113
+ "require": "./dist/components/Menubar/index.cjs"
114
+ },
115
+ "./NumberField": {
116
+ "types": "./dist/components/NumberField/index.d.ts",
117
+ "import": "./dist/components/NumberField/index.js",
118
+ "require": "./dist/components/NumberField/index.cjs"
119
+ },
120
+ "./Select": {
121
+ "types": "./dist/components/Select/index.d.ts",
122
+ "import": "./dist/components/Select/index.js",
123
+ "require": "./dist/components/Select/index.cjs"
124
+ },
125
+ "./Slider": {
126
+ "types": "./dist/components/Slider/index.d.ts",
127
+ "import": "./dist/components/Slider/index.js",
128
+ "require": "./dist/components/Slider/index.cjs"
129
+ },
130
+ "./TextField": {
131
+ "types": "./dist/components/TextField/index.d.ts",
132
+ "import": "./dist/components/TextField/index.js",
133
+ "require": "./dist/components/TextField/index.cjs"
134
+ },
135
+ "./Toolbar": {
136
+ "types": "./dist/components/Toolbar/index.d.ts",
137
+ "import": "./dist/components/Toolbar/index.js",
138
+ "require": "./dist/components/Toolbar/index.cjs"
139
+ },
140
+ "./Tooltip": {
141
+ "types": "./dist/components/Tooltip/index.d.ts",
142
+ "import": "./dist/components/Tooltip/index.js",
143
+ "require": "./dist/components/Tooltip/index.cjs"
144
+ },
145
+ "./Page": {
146
+ "types": "./dist/layouts/Page/index.d.ts",
147
+ "import": "./dist/layouts/Page/index.js",
148
+ "require": "./dist/layouts/Page/index.cjs"
149
+ },
150
+ "./Panes": {
151
+ "types": "./dist/layouts/Panes/index.d.ts",
152
+ "import": "./dist/layouts/Panes/index.js",
153
+ "require": "./dist/layouts/Panes/index.cjs"
154
+ },
155
+ "./Tabs": {
156
+ "types": "./dist/layouts/Tabs/index.d.ts",
157
+ "import": "./dist/layouts/Tabs/index.js",
158
+ "require": "./dist/layouts/Tabs/index.cjs"
159
+ },
160
+ "./Toolbox": {
161
+ "types": "./dist/layouts/Toolbox/index.d.ts",
162
+ "import": "./dist/layouts/Toolbox/index.js",
163
+ "require": "./dist/layouts/Toolbox/index.cjs"
164
+ },
165
+ "./Content": {
166
+ "types": "./dist/layouts/Content.d.ts",
167
+ "import": "./dist/layouts/Content.js",
168
+ "require": "./dist/layouts/Content.cjs"
169
+ }
170
+ }
6
171
  }