@aglyn/shared-ui-jsx 1.0.0-beta.143

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 (261) hide show
  1. package/LICENSE +201 -0
  2. package/README.md +7 -0
  3. package/package.json +63 -0
  4. package/src/index.d.ts +48 -0
  5. package/src/index.js +179 -0
  6. package/src/index.js.map +1 -0
  7. package/src/lib/components/aglyn-text.d.ts +86 -0
  8. package/src/lib/components/aglyn-text.js +44 -0
  9. package/src/lib/components/aglyn-text.js.map +1 -0
  10. package/src/lib/components/app-link.d.ts +74 -0
  11. package/src/lib/components/app-link.js +139 -0
  12. package/src/lib/components/app-link.js.map +1 -0
  13. package/src/lib/components/aspect-ratio.d.ts +59 -0
  14. package/src/lib/components/aspect-ratio.js +153 -0
  15. package/src/lib/components/aspect-ratio.js.map +1 -0
  16. package/src/lib/components/background-image.component.d.ts +30 -0
  17. package/src/lib/components/background-image.component.js +42 -0
  18. package/src/lib/components/background-image.component.js.map +1 -0
  19. package/src/lib/components/card-columns.d.ts +86 -0
  20. package/src/lib/components/card-columns.js +148 -0
  21. package/src/lib/components/card-columns.js.map +1 -0
  22. package/src/lib/components/card-display.d.ts +36 -0
  23. package/src/lib/components/card-display.js +158 -0
  24. package/src/lib/components/card-display.js.map +1 -0
  25. package/src/lib/components/card-list-item.d.ts +35 -0
  26. package/src/lib/components/card-list-item.js +137 -0
  27. package/src/lib/components/card-list-item.js.map +1 -0
  28. package/src/lib/components/children-function-prop.d.ts +25 -0
  29. package/src/lib/components/children-function-prop.js +29 -0
  30. package/src/lib/components/children-function-prop.js.map +1 -0
  31. package/src/lib/components/confirmation-provider.component.d.ts +19 -0
  32. package/src/lib/components/confirmation-provider.component.js +83 -0
  33. package/src/lib/components/confirmation-provider.component.js.map +1 -0
  34. package/src/lib/components/container.d.ts +25 -0
  35. package/src/lib/components/container.js +62 -0
  36. package/src/lib/components/container.js.map +1 -0
  37. package/src/lib/components/data-table.component.d.ts +54 -0
  38. package/src/lib/components/data-table.component.js +211 -0
  39. package/src/lib/components/data-table.component.js.map +1 -0
  40. package/src/lib/components/dialog-confirm.d.ts +36 -0
  41. package/src/lib/components/dialog-confirm.js +74 -0
  42. package/src/lib/components/dialog-confirm.js.map +1 -0
  43. package/src/lib/components/ellipsis-pulse.component.d.ts +22 -0
  44. package/src/lib/components/ellipsis-pulse.component.js +51 -0
  45. package/src/lib/components/ellipsis-pulse.component.js.map +1 -0
  46. package/src/lib/components/emotion-cache-provider.d.ts +31 -0
  47. package/src/lib/components/emotion-cache-provider.js +40 -0
  48. package/src/lib/components/emotion-cache-provider.js.map +1 -0
  49. package/src/lib/components/empty-state.component.d.ts +63 -0
  50. package/src/lib/components/empty-state.component.js +214 -0
  51. package/src/lib/components/empty-state.component.js.map +1 -0
  52. package/src/lib/components/error-boundary.component.d.ts +28 -0
  53. package/src/lib/components/error-boundary.component.js +86 -0
  54. package/src/lib/components/error-boundary.component.js.map +1 -0
  55. package/src/lib/components/grid-buttons.d.ts +26 -0
  56. package/src/lib/components/grid-buttons.js +45 -0
  57. package/src/lib/components/grid-buttons.js.map +1 -0
  58. package/src/lib/components/grid-items.d.ts +103 -0
  59. package/src/lib/components/grid-items.js +336 -0
  60. package/src/lib/components/grid-items.js.map +1 -0
  61. package/src/lib/components/grid-list.d.ts +37 -0
  62. package/src/lib/components/grid-list.js +156 -0
  63. package/src/lib/components/grid-list.js.map +1 -0
  64. package/src/lib/components/help-tip.component.d.ts +30 -0
  65. package/src/lib/components/help-tip.component.js +139 -0
  66. package/src/lib/components/help-tip.component.js.map +1 -0
  67. package/src/lib/components/link-navigation-reporter.d.ts +24 -0
  68. package/src/lib/components/link-navigation-reporter.js +64 -0
  69. package/src/lib/components/link-navigation-reporter.js.map +1 -0
  70. package/src/lib/components/list-pagination.component.d.ts +57 -0
  71. package/src/lib/components/list-pagination.component.js +90 -0
  72. package/src/lib/components/list-pagination.component.js.map +1 -0
  73. package/src/lib/components/list-table.component.d.ts +155 -0
  74. package/src/lib/components/list-table.component.js +369 -0
  75. package/src/lib/components/list-table.component.js.map +1 -0
  76. package/src/lib/components/loading-layout-app.component.d.ts +35 -0
  77. package/src/lib/components/loading-layout-app.component.js +42 -0
  78. package/src/lib/components/loading-layout-app.component.js.map +1 -0
  79. package/src/lib/components/loading-modal-overlay.d.ts +30 -0
  80. package/src/lib/components/loading-modal-overlay.js +156 -0
  81. package/src/lib/components/loading-modal-overlay.js.map +1 -0
  82. package/src/lib/components/loading-modal.d.ts +19 -0
  83. package/src/lib/components/loading-modal.js +113 -0
  84. package/src/lib/components/loading-modal.js.map +1 -0
  85. package/src/lib/components/loading-text.component.d.ts +21 -0
  86. package/src/lib/components/loading-text.component.js +40 -0
  87. package/src/lib/components/loading-text.component.js.map +1 -0
  88. package/src/lib/components/mdi-icon/index.d.ts +2 -0
  89. package/src/lib/components/mdi-icon/index.js +4 -0
  90. package/src/lib/components/mdi-icon/index.js.map +1 -0
  91. package/src/lib/components/mdi-icon/md-icon-stack.d.ts +31 -0
  92. package/src/lib/components/mdi-icon/md-icon-stack.js +101 -0
  93. package/src/lib/components/mdi-icon/md-icon-stack.js.map +1 -0
  94. package/src/lib/components/mdi-icon/md-icon.d.ts +32 -0
  95. package/src/lib/components/mdi-icon/md-icon.js +147 -0
  96. package/src/lib/components/mdi-icon/md-icon.js.map +1 -0
  97. package/src/lib/components/mdi-icon/mdi-icon-from-id.d.ts +23 -0
  98. package/src/lib/components/mdi-icon/mdi-icon-from-id.js +35 -0
  99. package/src/lib/components/mdi-icon/mdi-icon-from-id.js.map +1 -0
  100. package/src/lib/components/mdi-icon/mdi-icon.d.ts +24 -0
  101. package/src/lib/components/mdi-icon/mdi-icon.js +46 -0
  102. package/src/lib/components/mdi-icon/mdi-icon.js.map +1 -0
  103. package/src/lib/components/measured-figures.component.d.ts +64 -0
  104. package/src/lib/components/measured-figures.component.js +161 -0
  105. package/src/lib/components/measured-figures.component.js.map +1 -0
  106. package/src/lib/components/menu.d.ts +45 -0
  107. package/src/lib/components/menu.js +229 -0
  108. package/src/lib/components/menu.js.map +1 -0
  109. package/src/lib/components/mui-shadow-dom.d.ts +38 -0
  110. package/src/lib/components/mui-shadow-dom.js +161 -0
  111. package/src/lib/components/mui-shadow-dom.js.map +1 -0
  112. package/src/lib/components/navigation-drawer.component.d.ts +31 -0
  113. package/src/lib/components/navigation-drawer.component.js +76 -0
  114. package/src/lib/components/navigation-drawer.component.js.map +1 -0
  115. package/src/lib/components/navigation-intent.d.ts +18 -0
  116. package/src/lib/components/navigation-intent.js +56 -0
  117. package/src/lib/components/navigation-intent.js.map +1 -0
  118. package/src/lib/components/navigation-view/index.d.ts +18 -0
  119. package/src/lib/components/navigation-view/index.js +19 -0
  120. package/src/lib/components/navigation-view/index.js.map +1 -0
  121. package/src/lib/components/navigation-view/navigation-view.d.ts +35 -0
  122. package/src/lib/components/navigation-view/navigation-view.js +175 -0
  123. package/src/lib/components/navigation-view/navigation-view.js.map +1 -0
  124. package/src/lib/components/next-link.d.ts +27 -0
  125. package/src/lib/components/next-link.js +88 -0
  126. package/src/lib/components/next-link.js.map +1 -0
  127. package/src/lib/components/popper-styled.component.d.ts +25 -0
  128. package/src/lib/components/popper-styled.component.js +129 -0
  129. package/src/lib/components/popper-styled.component.js.map +1 -0
  130. package/src/lib/components/quota-readout.component.d.ts +69 -0
  131. package/src/lib/components/quota-readout.component.js +52 -0
  132. package/src/lib/components/quota-readout.component.js.map +1 -0
  133. package/src/lib/components/resizeable-stack.d.ts +4 -0
  134. package/src/lib/components/resizeable-stack.js +23 -0
  135. package/src/lib/components/resizeable-stack.js.map +1 -0
  136. package/src/lib/components/row-actions-menu.component.d.ts +53 -0
  137. package/src/lib/components/row-actions-menu.component.js +132 -0
  138. package/src/lib/components/row-actions-menu.component.js.map +1 -0
  139. package/src/lib/components/ruler-guides.component.d.ts +35 -0
  140. package/src/lib/components/ruler-guides.component.js +166 -0
  141. package/src/lib/components/ruler-guides.component.js.map +1 -0
  142. package/src/lib/components/sandbox-frame.d.ts +42 -0
  143. package/src/lib/components/sandbox-frame.js +122 -0
  144. package/src/lib/components/sandbox-frame.js.map +1 -0
  145. package/src/lib/components/scroll-reaction.d.ts +59 -0
  146. package/src/lib/components/scroll-reaction.js +43 -0
  147. package/src/lib/components/scroll-reaction.js.map +1 -0
  148. package/src/lib/components/scroll-table.component.d.ts +124 -0
  149. package/src/lib/components/scroll-table.component.js +103 -0
  150. package/src/lib/components/scroll-table.component.js.map +1 -0
  151. package/src/lib/components/shadow-dom/index.d.ts +18 -0
  152. package/src/lib/components/shadow-dom/index.js +19 -0
  153. package/src/lib/components/shadow-dom/index.js.map +1 -0
  154. package/src/lib/components/shadow-dom/shadow-dom.d.ts +42 -0
  155. package/src/lib/components/shadow-dom/shadow-dom.js +123 -0
  156. package/src/lib/components/shadow-dom/shadow-dom.js.map +1 -0
  157. package/src/lib/components/splash-screen.d.ts +33 -0
  158. package/src/lib/components/splash-screen.js +105 -0
  159. package/src/lib/components/splash-screen.js.map +1 -0
  160. package/src/lib/components/sr-only.d.ts +20 -0
  161. package/src/lib/components/sr-only.js +25 -0
  162. package/src/lib/components/sr-only.js.map +1 -0
  163. package/src/lib/components/status-screen-plain.component.d.ts +27 -0
  164. package/src/lib/components/status-screen-plain.component.js +178 -0
  165. package/src/lib/components/status-screen-plain.component.js.map +1 -0
  166. package/src/lib/components/usage-meter.component.d.ts +30 -0
  167. package/src/lib/components/usage-meter.component.js +92 -0
  168. package/src/lib/components/usage-meter.component.js.map +1 -0
  169. package/src/lib/components/variable-text-field.component.d.ts +50 -0
  170. package/src/lib/components/variable-text-field.component.js +188 -0
  171. package/src/lib/components/variable-text-field.component.js.map +1 -0
  172. package/src/lib/components/zoomable-panning-component/index.d.ts +1 -0
  173. package/src/lib/components/zoomable-panning-component/index.js +3 -0
  174. package/src/lib/components/zoomable-panning-component/index.js.map +1 -0
  175. package/src/lib/components/zoomable-panning-component/util.d.ts +58 -0
  176. package/src/lib/components/zoomable-panning-component/util.js +114 -0
  177. package/src/lib/components/zoomable-panning-component/util.js.map +1 -0
  178. package/src/lib/components/zoomable-panning-component/zoomable-panning-component.d.ts +132 -0
  179. package/src/lib/components/zoomable-panning-component/zoomable-panning-component.js +728 -0
  180. package/src/lib/components/zoomable-panning-component/zoomable-panning-component.js.map +1 -0
  181. package/src/lib/const/aglyn-besigner-logo-full.d.ts +39 -0
  182. package/src/lib/const/aglyn-besigner-logo-full.js +146 -0
  183. package/src/lib/const/aglyn-besigner-logo-full.js.map +1 -0
  184. package/src/lib/const/aglyn-console-logo-full.d.ts +34 -0
  185. package/src/lib/const/aglyn-console-logo-full.js +142 -0
  186. package/src/lib/const/aglyn-console-logo-full.js.map +1 -0
  187. package/src/lib/const/aglyn-logo-class-keys.d.ts +30 -0
  188. package/src/lib/const/aglyn-logo-class-keys.js +32 -0
  189. package/src/lib/const/aglyn-logo-class-keys.js.map +1 -0
  190. package/src/lib/const/aglyn-logo-full.d.ts +29 -0
  191. package/src/lib/const/aglyn-logo-full.js +111 -0
  192. package/src/lib/const/aglyn-logo-full.js.map +1 -0
  193. package/src/lib/const/list-filter.d.ts +260 -0
  194. package/src/lib/const/list-filter.js +409 -0
  195. package/src/lib/const/list-filter.js.map +1 -0
  196. package/src/lib/const/prebuilt-components.d.ts +17 -0
  197. package/src/lib/const/prebuilt-components.js +22 -0
  198. package/src/lib/const/prebuilt-components.js.map +1 -0
  199. package/src/lib/const/svg-icons.d.ts +75 -0
  200. package/src/lib/const/svg-icons.js +313 -0
  201. package/src/lib/const/svg-icons.js.map +1 -0
  202. package/src/lib/const/table-pagination.d.ts +106 -0
  203. package/src/lib/const/table-pagination.js +106 -0
  204. package/src/lib/const/table-pagination.js.map +1 -0
  205. package/src/lib/contexts/confirmation.context.d.ts +996 -0
  206. package/src/lib/contexts/confirmation.context.js +49 -0
  207. package/src/lib/contexts/confirmation.context.js.map +1 -0
  208. package/src/lib/contexts/loading.context.d.ts +93 -0
  209. package/src/lib/contexts/loading.context.js +126 -0
  210. package/src/lib/contexts/loading.context.js.map +1 -0
  211. package/src/lib/hocs/create-hoc-with-context-consumer.d.ts +36 -0
  212. package/src/lib/hocs/create-hoc-with-context-consumer.js +44 -0
  213. package/src/lib/hocs/create-hoc-with-context-consumer.js.map +1 -0
  214. package/src/lib/hocs/with-hoc.d.ts +32 -0
  215. package/src/lib/hocs/with-hoc.js +37 -0
  216. package/src/lib/hocs/with-hoc.js.map +1 -0
  217. package/src/lib/hooks/mdi-icon/use-mdi-icon.d.ts +20 -0
  218. package/src/lib/hooks/mdi-icon/use-mdi-icon.js +48 -0
  219. package/src/lib/hooks/mdi-icon/use-mdi-icon.js.map +1 -0
  220. package/src/lib/hooks/mdi-icon/use-mdi-icons-fuzzy.d.ts +26 -0
  221. package/src/lib/hooks/mdi-icon/use-mdi-icons-fuzzy.js +73 -0
  222. package/src/lib/hooks/mdi-icon/use-mdi-icons-fuzzy.js.map +1 -0
  223. package/src/lib/hooks/mdi-icon/use-mdi-icons.d.ts +19 -0
  224. package/src/lib/hooks/mdi-icon/use-mdi-icons.js +49 -0
  225. package/src/lib/hooks/mdi-icon/use-mdi-icons.js.map +1 -0
  226. package/src/lib/hooks/router-events.d.ts +56 -0
  227. package/src/lib/hooks/router-events.js +88 -0
  228. package/src/lib/hooks/router-events.js.map +1 -0
  229. package/src/lib/hooks/use-async-effect.d.ts +24 -0
  230. package/src/lib/hooks/use-async-effect.js +44 -0
  231. package/src/lib/hooks/use-async-effect.js.map +1 -0
  232. package/src/lib/hooks/use-callback-param-ref.d.ts +19 -0
  233. package/src/lib/hooks/use-callback-param-ref.js +29 -0
  234. package/src/lib/hooks/use-callback-param-ref.js.map +1 -0
  235. package/src/lib/hooks/use-id.d.ts +21 -0
  236. package/src/lib/hooks/use-id.js +28 -0
  237. package/src/lib/hooks/use-id.js.map +1 -0
  238. package/src/lib/hooks/use-isomorphic-layout-effect.d.ts +19 -0
  239. package/src/lib/hooks/use-isomorphic-layout-effect.js +20 -0
  240. package/src/lib/hooks/use-isomorphic-layout-effect.js.map +1 -0
  241. package/src/lib/hooks/use-merge-refs.d.ts +38 -0
  242. package/src/lib/hooks/use-merge-refs.js +52 -0
  243. package/src/lib/hooks/use-merge-refs.js.map +1 -0
  244. package/src/lib/hooks/use-subscribable.d.ts +29 -0
  245. package/src/lib/hooks/use-subscribable.js +50 -0
  246. package/src/lib/hooks/use-subscribable.js.map +1 -0
  247. package/src/lib/types.d.ts +18 -0
  248. package/src/lib/types.js +18 -0
  249. package/src/lib/types.js.map +1 -0
  250. package/src/lib/utils/make-link-elements.d.ts +24 -0
  251. package/src/lib/utils/make-link-elements.js +32 -0
  252. package/src/lib/utils/make-link-elements.js.map +1 -0
  253. package/src/lib/utils/make-meta-elements.d.ts +24 -0
  254. package/src/lib/utils/make-meta-elements.js +32 -0
  255. package/src/lib/utils/make-meta-elements.js.map +1 -0
  256. package/src/lib/utils/scroll-overflow.d.ts +120 -0
  257. package/src/lib/utils/scroll-overflow.js +115 -0
  258. package/src/lib/utils/scroll-overflow.js.map +1 -0
  259. package/src/lib/utils/vendor.d.ts +17 -0
  260. package/src/lib/utils/vendor.js +18 -0
  261. package/src/lib/utils/vendor.js.map +1 -0
@@ -0,0 +1,101 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ /**
5
+ * @license
6
+ * Copyright 2026 Aglyn LLC
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */ import { mergeSxProps } from "@aglyn/shared-ui-theme";
20
+ import { SvgIcon } from "@mui/material";
21
+ import { Children, cloneElement, forwardRef } from "react";
22
+ import useId from "../../hooks/use-id.js";
23
+ export const MdIconStack = /*#__PURE__*/ forwardRef((props, ref)=>{
24
+ const { title = null, description = null, size = null, color = 'currentColor', horizontal = null, vertical = null, rotate = null, spin = null, children, sx, id: idProp } = props, rest = _object_without_properties_loose(props, [
25
+ "title",
26
+ "description",
27
+ "size",
28
+ "color",
29
+ "horizontal",
30
+ "vertical",
31
+ "rotate",
32
+ "spin",
33
+ "children",
34
+ "sx",
35
+ "id"
36
+ ]);
37
+ const id = useId(idProp);
38
+ let anySpin = spin === null ? false : spin;
39
+ const labelledById = `stack_labelledby_${id}`;
40
+ const describedById = `stack_describedby_${id}`;
41
+ const ariaLabelledby = description ? `${labelledById} ${describedById}` : labelledById;
42
+ const mappedChildren = Children.map(children, (child)=>{
43
+ const res = {
44
+ size: child.props.size,
45
+ color: color === null ? child.props.color : color,
46
+ horizontal: horizontal === null ? child.props.horizontal : horizontal,
47
+ vertical: vertical === null ? child.props.vertical : vertical,
48
+ rotate: rotate === null ? child.props.rotate : rotate,
49
+ spin: spin === null ? child.props.spin : spin,
50
+ inStack: true
51
+ };
52
+ if (anySpin !== true) {
53
+ anySpin = (spin === null ? child.props.spin : spin) === true;
54
+ }
55
+ if (typeof size === 'number' && typeof child.props.size === 'number') {
56
+ res.size = child.props.size / size;
57
+ }
58
+ return /*#__PURE__*/ cloneElement(child, res);
59
+ });
60
+ return /*#__PURE__*/ _jsxs(SvgIcon, _extends({
61
+ ref: ref,
62
+ sx: mergeSxProps(sx, size !== null && {
63
+ width: typeof size === 'string' ? size : `${size * 1.5}rem`
64
+ }, anySpin && {
65
+ '@keyframes spin': {
66
+ from: {
67
+ transform: 'rotate(0deg)'
68
+ },
69
+ to: {
70
+ transform: 'rotate(360deg)'
71
+ }
72
+ },
73
+ '@keyframes spin-inverse': {
74
+ from: {
75
+ transform: 'rotate(0deg)'
76
+ },
77
+ to: {
78
+ transform: 'rotate(-360deg)'
79
+ }
80
+ }
81
+ }),
82
+ role: !title ? 'presentation' : undefined,
83
+ "aria-labelledby": !title ? undefined : ariaLabelledby
84
+ }, rest, {
85
+ children: [
86
+ title && /*#__PURE__*/ _jsx("title", {
87
+ id: labelledById,
88
+ children: title
89
+ }),
90
+ description && /*#__PURE__*/ _jsx("desc", {
91
+ id: describedById,
92
+ children: description
93
+ }),
94
+ mappedChildren
95
+ ]
96
+ }));
97
+ });
98
+ MdIconStack.displayName = 'MdIconStack';
99
+ export default MdIconStack;
100
+
101
+ //# sourceMappingURL=md-icon-stack.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../libs/shared/ui/jsx/src/lib/components/mdi-icon/md-icon-stack.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { mergeSxProps } from '@aglyn/shared-ui-theme'\nimport { SvgIcon, type SvgIconProps } from '@mui/material'\nimport { Children, cloneElement, forwardRef, type ReactElement } from 'react'\nimport useId from '../../hooks/use-id'\nimport { type MdIconProps } from './md-icon'\n\nexport interface MdIconStackProps extends SvgIconProps {\n children: ReactElement<MdIconProps>[] | ReactElement<MdIconProps>\n title?: string | null\n description?: string | null\n size?: number | string | null\n horizontal?: boolean | null\n vertical?: boolean | null\n rotate?: number | null\n spin?: boolean | number | null\n}\n\nexport const MdIconStack = forwardRef<SVGSVGElement, MdIconStackProps>(\n (props, ref) => {\n const {\n title = null,\n description = null,\n size = null,\n color = 'currentColor',\n horizontal = null,\n vertical = null,\n rotate = null,\n spin = null,\n children,\n sx,\n id: idProp,\n ...rest\n } = props\n const id = useId(idProp)\n let anySpin = spin === null ? false : spin\n const labelledById = `stack_labelledby_${id}`\n const describedById = `stack_describedby_${id}`\n const ariaLabelledby = description\n ? `${labelledById} ${describedById}`\n : labelledById\n\n const mappedChildren = Children.map(children, (child) => {\n const res = {\n size: child.props.size,\n color: color === null ? child.props.color : color,\n horizontal: horizontal === null ? child.props.horizontal : horizontal,\n vertical: vertical === null ? child.props.vertical : vertical,\n rotate: rotate === null ? child.props.rotate : rotate,\n spin: spin === null ? child.props.spin : spin,\n inStack: true,\n } as Partial<MdIconProps>\n\n if (anySpin !== true) {\n anySpin = (spin === null ? child.props.spin : spin) === true\n }\n if (typeof size === 'number' && typeof child.props.size === 'number') {\n res.size = child.props.size / size\n }\n\n return cloneElement(child, res)\n })\n\n return (\n <SvgIcon\n ref={ref}\n sx={mergeSxProps(\n sx,\n size !== null && {\n width: typeof size === 'string' ? size : `${size * 1.5}rem`,\n },\n anySpin && {\n '@keyframes spin': {\n from: {\n transform: 'rotate(0deg)',\n },\n to: {\n transform: 'rotate(360deg)',\n },\n },\n '@keyframes spin-inverse': {\n from: {\n transform: 'rotate(0deg)',\n },\n to: {\n transform: 'rotate(-360deg)',\n },\n },\n },\n )}\n role={!title ? 'presentation' : undefined}\n aria-labelledby={!title ? undefined : ariaLabelledby}\n {...rest}\n >\n {title && <title id={labelledById}>{title}</title>}\n {description && <desc id={describedById}>{description}</desc>}\n\n {mappedChildren}\n </SvgIcon>\n )\n },\n)\n\nMdIconStack.displayName = 'MdIconStack'\n\nexport default MdIconStack\n"],"names":["mergeSxProps","SvgIcon","Children","cloneElement","forwardRef","useId","MdIconStack","props","ref","title","description","size","color","horizontal","vertical","rotate","spin","children","sx","id","idProp","rest","anySpin","labelledById","describedById","ariaLabelledby","mappedChildren","map","child","res","inStack","width","from","transform","to","role","undefined","aria-labelledby","desc","displayName"],"mappings":";;;AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,YAAY,QAAQ,yBAAwB;AACrD,SAASC,OAAO,QAA2B,gBAAe;AAC1D,SAASC,QAAQ,EAAEC,YAAY,EAAEC,UAAU,QAA2B,QAAO;AAC7E,OAAOC,WAAW,wBAAoB;AActC,OAAO,MAAMC,4BAAcF,WACzB,CAACG,OAAOC;IACN,MAAM,EACJC,QAAQ,IAAI,EACZC,cAAc,IAAI,EAClBC,OAAO,IAAI,EACXC,QAAQ,cAAc,EACtBC,aAAa,IAAI,EACjBC,WAAW,IAAI,EACfC,SAAS,IAAI,EACbC,OAAO,IAAI,EACXC,QAAQ,EACRC,EAAE,EACFC,IAAIC,MAAM,EAEX,GAAGb,OADCc,wCACDd;;;;;;;;;;;;;IACJ,MAAMY,KAAKd,MAAMe;IACjB,IAAIE,UAAUN,SAAS,OAAO,QAAQA;IACtC,MAAMO,eAAe,CAAC,iBAAiB,EAAEJ,IAAI;IAC7C,MAAMK,gBAAgB,CAAC,kBAAkB,EAAEL,IAAI;IAC/C,MAAMM,iBAAiBf,cACnB,GAAGa,aAAa,CAAC,EAAEC,eAAe,GAClCD;IAEJ,MAAMG,iBAAiBxB,SAASyB,GAAG,CAACV,UAAU,CAACW;QAC7C,MAAMC,MAAM;YACVlB,MAAMiB,MAAMrB,KAAK,CAACI,IAAI;YACtBC,OAAOA,UAAU,OAAOgB,MAAMrB,KAAK,CAACK,KAAK,GAAGA;YAC5CC,YAAYA,eAAe,OAAOe,MAAMrB,KAAK,CAACM,UAAU,GAAGA;YAC3DC,UAAUA,aAAa,OAAOc,MAAMrB,KAAK,CAACO,QAAQ,GAAGA;YACrDC,QAAQA,WAAW,OAAOa,MAAMrB,KAAK,CAACQ,MAAM,GAAGA;YAC/CC,MAAMA,SAAS,OAAOY,MAAMrB,KAAK,CAACS,IAAI,GAAGA;YACzCc,SAAS;QACX;QAEA,IAAIR,YAAY,MAAM;YACpBA,UAAU,AAACN,CAAAA,SAAS,OAAOY,MAAMrB,KAAK,CAACS,IAAI,GAAGA,IAAG,MAAO;QAC1D;QACA,IAAI,OAAOL,SAAS,YAAY,OAAOiB,MAAMrB,KAAK,CAACI,IAAI,KAAK,UAAU;YACpEkB,IAAIlB,IAAI,GAAGiB,MAAMrB,KAAK,CAACI,IAAI,GAAGA;QAChC;QAEA,qBAAOR,aAAayB,OAAOC;IAC7B;IAEA,qBACE,MAAC5B;QACCO,KAAKA;QACLU,IAAIlB,aACFkB,IACAP,SAAS,QAAQ;YACfoB,OAAO,OAAOpB,SAAS,WAAWA,OAAO,GAAGA,OAAO,IAAI,GAAG,CAAC;QAC7D,GACAW,WAAW;YACT,mBAAmB;gBACjBU,MAAM;oBACJC,WAAW;gBACb;gBACAC,IAAI;oBACFD,WAAW;gBACb;YACF;YACA,2BAA2B;gBACzBD,MAAM;oBACJC,WAAW;gBACb;gBACAC,IAAI;oBACFD,WAAW;gBACb;YACF;QACF;QAEFE,MAAM,CAAC1B,QAAQ,iBAAiB2B;QAChCC,mBAAiB,CAAC5B,QAAQ2B,YAAYX;OAClCJ;;YAEHZ,uBAAS,KAACA;gBAAMU,IAAII;0BAAed;;YACnCC,6BAAe,KAAC4B;gBAAKnB,IAAIK;0BAAgBd;;YAEzCgB;;;AAGP,GACD;AAEDpB,YAAYiC,WAAW,GAAG;AAE1B,eAAejC,YAAW"}
@@ -0,0 +1,32 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { type SvgIconProps } from '@mui/material';
18
+ import { type CSSProperties } from 'react';
19
+ export interface MdIconProps extends SvgIconProps {
20
+ path: string;
21
+ title?: string | null;
22
+ description?: string | null;
23
+ size?: number | string | null;
24
+ horizontal?: boolean;
25
+ vertical?: boolean;
26
+ rotate?: number;
27
+ spin?: boolean | number;
28
+ style?: CSSProperties;
29
+ inStack?: boolean;
30
+ }
31
+ export declare const MdIcon: import("react").ForwardRefExoticComponent<Omit<MdIconProps, "ref"> & import("react").RefAttributes<SVGSVGElement>>;
32
+ export default MdIcon;
@@ -0,0 +1,147 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
3
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
4
+ /**
5
+ * @license
6
+ * Copyright 2026 Aglyn LLC
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */ import { SvgIcon } from "@mui/material";
20
+ import { forwardRef } from "react";
21
+ import useId from "../../hooks/use-id.js";
22
+ export const MdIcon = /*#__PURE__*/ forwardRef((props, ref)=>{
23
+ const { path, id: idProp, title = null, description = null, size = null, color = 'currentColor', horizontal = false, vertical = false, rotate = 0, spin = false, style = {}, inStack = false } = props, rest = _object_without_properties_loose(props, [
24
+ "path",
25
+ "id",
26
+ "title",
27
+ "description",
28
+ "size",
29
+ "color",
30
+ "horizontal",
31
+ "vertical",
32
+ "rotate",
33
+ "spin",
34
+ "style",
35
+ "inStack"
36
+ ]);
37
+ const id = useId(idProp);
38
+ const pathStyle = {};
39
+ const transform = [];
40
+ if (size !== null) {
41
+ if (inStack) {
42
+ transform.push(`scale(${size})`);
43
+ } else {
44
+ style.width = typeof size === 'string' ? size : `${size * 1.5}rem`;
45
+ style.height = style.width;
46
+ }
47
+ }
48
+ if (horizontal) {
49
+ transform.push('scaleX(-1)');
50
+ }
51
+ if (vertical) {
52
+ transform.push('scaleY(-1)');
53
+ }
54
+ if (rotate !== 0) {
55
+ transform.push(`rotate(${rotate}deg)`);
56
+ }
57
+ if (color !== null) {
58
+ pathStyle.fill = color;
59
+ }
60
+ const pathElement = /*#__PURE__*/ _jsx("path", _extends({
61
+ d: path,
62
+ style: pathStyle
63
+ }, inStack ? rest : {}));
64
+ let transformElement = pathElement;
65
+ if (transform.length > 0) {
66
+ style.transform = transform.join(' ');
67
+ style.transformOrigin = 'center';
68
+ if (inStack) {
69
+ transformElement = /*#__PURE__*/ _jsxs("g", {
70
+ style: style,
71
+ children: [
72
+ pathElement,
73
+ /*#__PURE__*/ _jsx("rect", {
74
+ width: "24",
75
+ height: "24",
76
+ fill: "transparent"
77
+ })
78
+ ]
79
+ });
80
+ }
81
+ }
82
+ let spinElement = transformElement;
83
+ const spinSec = spin === true || typeof spin !== 'number' ? 2 : spin;
84
+ let inverse = !inStack && (horizontal || vertical);
85
+ if (spinSec < 0) {
86
+ inverse = !inverse;
87
+ }
88
+ if (spin) {
89
+ spinElement = /*#__PURE__*/ _jsxs("g", {
90
+ style: {
91
+ animation: `spin${inverse ? '-inverse' : ''} linear ${Math.abs(spinSec)}s infinite`,
92
+ transformOrigin: 'center'
93
+ },
94
+ children: [
95
+ transformElement,
96
+ !(horizontal || vertical || rotate !== 0) && /*#__PURE__*/ _jsx("rect", {
97
+ width: "24",
98
+ height: "24",
99
+ fill: "transparent"
100
+ })
101
+ ]
102
+ });
103
+ }
104
+ if (inStack) {
105
+ return spinElement;
106
+ }
107
+ let ariaLabelledby;
108
+ const labelledById = `icon_labelledby_${id}`;
109
+ const describedById = `icon_describedby_${id}`;
110
+ let role;
111
+ if (title) {
112
+ ariaLabelledby = description ? `${labelledById} ${describedById}` : labelledById;
113
+ } else {
114
+ role = 'presentation';
115
+ if (description) {
116
+ throw new Error('title attribute required when description is set');
117
+ }
118
+ }
119
+ return /*#__PURE__*/ _jsxs(SvgIcon, _extends({
120
+ ref: ref,
121
+ viewBox: "0 0 24 24",
122
+ style: style,
123
+ role: role,
124
+ "aria-labelledby": ariaLabelledby
125
+ }, rest, {
126
+ children: [
127
+ title && /*#__PURE__*/ _jsx("title", {
128
+ id: labelledById,
129
+ children: title
130
+ }),
131
+ description && /*#__PURE__*/ _jsx("desc", {
132
+ id: describedById,
133
+ children: description
134
+ }),
135
+ !inStack && spin && (inverse ? /*#__PURE__*/ _jsx("style", {
136
+ children: '@keyframes spin-inverse { from { transform: rotate(0deg) } to { transform: rotate(-360deg) } }'
137
+ }) : /*#__PURE__*/ _jsx("style", {
138
+ children: '@keyframes spin { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }'
139
+ })),
140
+ spinElement
141
+ ]
142
+ }));
143
+ });
144
+ MdIcon.displayName = 'MdIcon';
145
+ export default MdIcon;
146
+
147
+ //# sourceMappingURL=md-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../libs/shared/ui/jsx/src/lib/components/mdi-icon/md-icon.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { SvgIcon, type SvgIconProps } from '@mui/material'\nimport { type CSSProperties, forwardRef } from 'react'\nimport useId from '../../hooks/use-id'\n\nexport interface MdIconProps extends SvgIconProps {\n path: string\n title?: string | null\n description?: string | null\n size?: number | string | null\n horizontal?: boolean\n vertical?: boolean\n rotate?: number\n spin?: boolean | number\n style?: CSSProperties\n inStack?: boolean\n}\n\nexport const MdIcon = forwardRef<SVGSVGElement, MdIconProps>((props, ref) => {\n const {\n path,\n id: idProp,\n title = null,\n description = null,\n size = null,\n color = 'currentColor',\n horizontal = false,\n vertical = false,\n rotate = 0,\n spin = false,\n style = {} as CSSProperties,\n inStack = false,\n ...rest\n } = props\n const id = useId(idProp)\n const pathStyle: any = {}\n const transform = []\n if (size !== null) {\n if (inStack) {\n transform.push(`scale(${size})`)\n } else {\n style.width = typeof size === 'string' ? size : `${size * 1.5}rem`\n style.height = style.width\n }\n }\n if (horizontal) {\n transform.push('scaleX(-1)')\n }\n if (vertical) {\n transform.push('scaleY(-1)')\n }\n if (rotate !== 0) {\n transform.push(`rotate(${rotate}deg)`)\n }\n if (color !== null) {\n pathStyle.fill = color\n }\n const pathElement = (\n <path d={path} style={pathStyle} {...((inStack ? rest : {}) as any)} />\n )\n let transformElement = pathElement\n if (transform.length > 0) {\n style.transform = transform.join(' ')\n style.transformOrigin = 'center'\n if (inStack) {\n transformElement = (\n <g style={style}>\n {pathElement}\n <rect width=\"24\" height=\"24\" fill=\"transparent\" />\n </g>\n )\n }\n }\n let spinElement = transformElement\n const spinSec = spin === true || typeof spin !== 'number' ? 2 : spin\n let inverse = !inStack && (horizontal || vertical)\n if (spinSec < 0) {\n inverse = !inverse\n }\n if (spin) {\n spinElement = (\n <g\n style={{\n animation: `spin${inverse ? '-inverse' : ''} linear ${Math.abs(\n spinSec,\n )}s infinite`,\n transformOrigin: 'center',\n }}\n >\n {transformElement}\n {!(horizontal || vertical || rotate !== 0) && (\n <rect width=\"24\" height=\"24\" fill=\"transparent\" />\n )}\n </g>\n )\n }\n if (inStack) {\n return spinElement\n }\n let ariaLabelledby\n const labelledById = `icon_labelledby_${id}`\n const describedById = `icon_describedby_${id}`\n let role\n if (title) {\n ariaLabelledby = description\n ? `${labelledById} ${describedById}`\n : labelledById\n } else {\n role = 'presentation'\n if (description) {\n throw new Error('title attribute required when description is set')\n }\n }\n return (\n <SvgIcon\n ref={ref}\n viewBox=\"0 0 24 24\"\n style={style}\n role={role}\n aria-labelledby={ariaLabelledby}\n {...rest}\n >\n {title && <title id={labelledById}>{title}</title>}\n {description && <desc id={describedById}>{description}</desc>}\n {!inStack &&\n spin &&\n (inverse ? (\n <style>\n {\n '@keyframes spin-inverse { from { transform: rotate(0deg) } to { transform: rotate(-360deg) } }'\n }\n </style>\n ) : (\n <style>\n {\n '@keyframes spin { from { transform: rotate(0deg) } to { transform: rotate(360deg) } }'\n }\n </style>\n ))}\n {spinElement}\n </SvgIcon>\n )\n})\n\nMdIcon.displayName = 'MdIcon'\n\nexport default MdIcon\n"],"names":["SvgIcon","forwardRef","useId","MdIcon","props","ref","path","id","idProp","title","description","size","color","horizontal","vertical","rotate","spin","style","inStack","rest","pathStyle","transform","push","width","height","fill","pathElement","d","transformElement","length","join","transformOrigin","g","rect","spinElement","spinSec","inverse","animation","Math","abs","ariaLabelledby","labelledById","describedById","role","Error","viewBox","aria-labelledby","desc","displayName"],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import type { IconId } from '@aglyn/shared-data-mdi';
18
+ import { type MdiIconProps } from './mdi-icon';
19
+ export interface MdiSvgIconProps extends MdiIconProps {
20
+ iconId?: IconId;
21
+ }
22
+ export declare const MdiIconFromId: import("react").ForwardRefExoticComponent<Omit<MdiSvgIconProps, "ref"> & import("react").RefAttributes<any>>;
23
+ export default MdiIconFromId;
@@ -0,0 +1,35 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2026 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */ import { _ as _extends } from "@swc/helpers/_/_extends";
17
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
18
+ import { jsx as _jsx } from "react/jsx-runtime";
19
+ import { forwardRef } from "react";
20
+ import { useMdiIcon } from "../../hooks/mdi-icon/use-mdi-icon.js";
21
+ import MdiIcon from "./mdi-icon.js";
22
+ export const MdiIconFromId = /*#__PURE__*/ forwardRef((props, ref)=>{
23
+ const { iconId } = props, rest = _object_without_properties_loose(props, [
24
+ "iconId"
25
+ ]);
26
+ return /*#__PURE__*/ _jsx(MdiIcon, _extends({
27
+ ref: ref,
28
+ path: useMdiIcon(iconId)
29
+ }, rest));
30
+ });
31
+ MdiIconFromId.displayName = 'MdiIconFromId';
32
+ MdiIconFromId.aglyn = true;
33
+ export default MdiIconFromId;
34
+
35
+ //# sourceMappingURL=mdi-icon-from-id.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../libs/shared/ui/jsx/src/lib/components/mdi-icon/mdi-icon-from-id.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2026 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport type { IconId } from '@aglyn/shared-data-mdi'\nimport { forwardRef } from 'react'\nimport { useMdiIcon } from '../../hooks/mdi-icon/use-mdi-icon'\nimport MdiIcon, { type MdiIconProps } from './mdi-icon'\n\nexport interface MdiSvgIconProps extends MdiIconProps {\n iconId?: IconId\n}\n\nexport const MdiIconFromId = forwardRef<any, MdiSvgIconProps>((props, ref) => {\n const { iconId, ...rest } = props\n\n return <MdiIcon ref={ref} path={useMdiIcon(iconId)} {...rest} />\n})\n\nMdiIconFromId.displayName = 'MdiIconFromId'\nMdiIconFromId.aglyn = true\n\nexport default MdiIconFromId\n"],"names":["forwardRef","useMdiIcon","MdiIcon","MdiIconFromId","props","ref","iconId","rest","path","displayName","aglyn"],"mappings":"AAAA;;;;;;;;;;;;;;;CAeC;;;AAGD,SAASA,UAAU,QAAQ,QAAO;AAClC,SAASC,UAAU,QAAQ,uCAAmC;AAC9D,OAAOC,aAAoC,gBAAY;AAMvD,OAAO,MAAMC,8BAAgBH,WAAiC,CAACI,OAAOC;IACpE,MAAM,EAAEC,MAAM,EAAW,GAAGF,OAATG,wCAASH;;;IAE5B,qBAAO,KAACF;QAAQG,KAAKA;QAAKG,MAAMP,WAAWK;OAAaC;AAC1D,GAAE;AAEFJ,cAAcM,WAAW,GAAG;AAC5BN,cAAcO,KAAK,GAAG;AAEtB,eAAeP,cAAa"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * @license
3
+ * Copyright 2023 Aglyn LLC
4
+ *
5
+ * Licensed under the Apache License, Version 2.0 (the "License");
6
+ * you may not use this file except in compliance with the License.
7
+ * You may obtain a copy of the License at
8
+ *
9
+ * http://www.apache.org/licenses/LICENSE-2.0
10
+ *
11
+ * Unless required by applicable law or agreed to in writing, software
12
+ * distributed under the License is distributed on an "AS IS" BASIS,
13
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14
+ * See the License for the specific language governing permissions and
15
+ * limitations under the License.
16
+ */
17
+ import { type SvgIconProps as MuiSvgIconProps } from '@mui/material';
18
+ import { type ElementType } from 'react';
19
+ export type MdiIconProps<D extends ElementType = any, P = JSX.EmptyObj> = {
20
+ path?: string;
21
+ children?: (d: string) => JSX.Children;
22
+ } & Omit<MuiSvgIconProps<D, P>, 'children' | 'path'>;
23
+ export declare const MdiIcon: import("react").ForwardRefExoticComponent<Omit<MdiIconProps<any, JSX.EmptyObj<never>>, "ref"> & import("react").RefAttributes<any>>;
24
+ export default MdiIcon;
@@ -0,0 +1,46 @@
1
+ import { _ as _extends } from "@swc/helpers/_/_extends";
2
+ import { _ as _object_without_properties_loose } from "@swc/helpers/_/_object_without_properties_loose";
3
+ import { jsx as _jsx } from "react/jsx-runtime";
4
+ /**
5
+ * @license
6
+ * Copyright 2023 Aglyn LLC
7
+ *
8
+ * Licensed under the Apache License, Version 2.0 (the "License");
9
+ * you may not use this file except in compliance with the License.
10
+ * You may obtain a copy of the License at
11
+ *
12
+ * http://www.apache.org/licenses/LICENSE-2.0
13
+ *
14
+ * Unless required by applicable law or agreed to in writing, software
15
+ * distributed under the License is distributed on an "AS IS" BASIS,
16
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17
+ * See the License for the specific language governing permissions and
18
+ * limitations under the License.
19
+ */ import { DEFAULT_ICON } from "@aglyn/shared-data-mdi";
20
+ import { SvgIcon as MuiSvgIcon } from "@mui/material";
21
+ // import { motion } from 'framer-motion'
22
+ import { forwardRef, useMemo } from "react";
23
+ export const MdiIcon = /*#__PURE__*/ forwardRef((props, ref)=>{
24
+ const { path, children } = props, rest = _object_without_properties_loose(props, [
25
+ "path",
26
+ "children"
27
+ ]);
28
+ const d = useMemo(()=>{
29
+ return typeof path === 'string' && path || DEFAULT_ICON.path;
30
+ }, [
31
+ path
32
+ ]);
33
+ return /*#__PURE__*/ _jsx(MuiSvgIcon, _extends({
34
+ ref: ref,
35
+ children: typeof children === 'function' ? children(d) : /*#__PURE__*/ _jsx("path", {
36
+ d: d
37
+ }),
38
+ color: "inherit",
39
+ fontSize: "inherit"
40
+ }, rest));
41
+ });
42
+ MdiIcon.displayName = 'MdiIcon';
43
+ MdiIcon.aglyn = true;
44
+ export default MdiIcon;
45
+
46
+ //# sourceMappingURL=mdi-icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../../../../../../../../libs/shared/ui/jsx/src/lib/components/mdi-icon/mdi-icon.tsx"],"sourcesContent":["/**\n * @license\n * Copyright 2023 Aglyn LLC\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { DEFAULT_ICON } from '@aglyn/shared-data-mdi'\nimport {\n SvgIcon as MuiSvgIcon,\n type SvgIconProps as MuiSvgIconProps,\n} from '@mui/material'\n// import { motion } from 'framer-motion'\nimport { type ElementType, forwardRef, useMemo } from 'react'\n\nexport type MdiIconProps<D extends ElementType = any, P = JSX.EmptyObj> = {\n path?: string\n children?: (d: string) => JSX.Children\n} & Omit<MuiSvgIconProps<D, P>, 'children' | 'path'>\n\nexport const MdiIcon = forwardRef<any, MdiIconProps>((props, ref) => {\n const { path, children, ...rest } = props\n\n const d = useMemo<string>(() => {\n return (typeof path === 'string' && path) || DEFAULT_ICON.path\n }, [path])\n\n return (\n <MuiSvgIcon\n ref={ref}\n children={typeof children === 'function' ? children(d) : <path d={d} />}\n color=\"inherit\"\n fontSize=\"inherit\"\n {...rest}\n />\n )\n})\n\nMdiIcon.displayName = 'MdiIcon'\nMdiIcon.aglyn = true\n\nexport default MdiIcon\n"],"names":["DEFAULT_ICON","SvgIcon","MuiSvgIcon","forwardRef","useMemo","MdiIcon","props","ref","path","children","rest","d","color","fontSize","displayName","aglyn"],"mappings":";;;AAAA;;;;;;;;;;;;;;;CAeC,GAED,SAASA,YAAY,QAAQ,yBAAwB;AACrD,SACEC,WAAWC,UAAU,QAEhB,gBAAe;AACtB,yCAAyC;AACzC,SAA2BC,UAAU,EAAEC,OAAO,QAAQ,QAAO;AAO7D,OAAO,MAAMC,wBAAUF,WAA8B,CAACG,OAAOC;IAC3D,MAAM,EAAEC,IAAI,EAAEC,QAAQ,EAAW,GAAGH,OAATI,wCAASJ;;;;IAEpC,MAAMK,IAAIP,QAAgB;QACxB,OAAO,AAAC,OAAOI,SAAS,YAAYA,QAASR,aAAaQ,IAAI;IAChE,GAAG;QAACA;KAAK;IAET,qBACE,KAACN;QACCK,KAAKA;QACLE,UAAU,OAAOA,aAAa,aAAaA,SAASE,mBAAK,KAACH;YAAKG,GAAGA;;QAClEC,OAAM;QACNC,UAAS;OACLH;AAGV,GAAE;AAEFL,QAAQS,WAAW,GAAG;AACtBT,QAAQU,KAAK,GAAG;AAEhB,eAAeV,QAAO"}
@@ -0,0 +1,64 @@
1
+ import type { ReactNode } from 'react';
2
+ /**
3
+ * A rate, together with everything needed to say what it is a rate OF.
4
+ *
5
+ * The producer decides whether a rate can honestly be taken; a `null` in
6
+ * place of one of these is how it says no. Nothing here formats — `value` is
7
+ * 0–1 and the display multiplies — so a model can be tested on the number
8
+ * without a renderer, and this file cannot invent a denominator.
9
+ */
10
+ export interface MeasuredRate {
11
+ /** 0–1. Multiply for display; a producer never formats. */
12
+ value: number;
13
+ numerator: number;
14
+ denominator: number;
15
+ /** Reader-facing name of the denominator, e.g. `'delivered'`. */
16
+ denominatorLabel: string;
17
+ }
18
+ /**
19
+ * A rate, or `null` when one cannot honestly be taken.
20
+ *
21
+ * `null` on a zero or unrecorded denominator. Those are not the same as 0%:
22
+ * a rate over nothing is undefined, and printing it as zero states a measured
23
+ * failure where there was no measurement.
24
+ */
25
+ export declare function measuredRate(numerator: number | null | undefined, denominator: number | null | undefined, denominatorLabel: string): MeasuredRate | null;
26
+ /** A titled block. */
27
+ export declare function Section(props: {
28
+ title: string;
29
+ children: ReactNode;
30
+ }): import("react").JSX.Element;
31
+ export declare namespace Section {
32
+ var displayName: string;
33
+ }
34
+ /**
35
+ * One count, with the population it describes named underneath.
36
+ *
37
+ * `null` renders as an em dash and NOT as zero, which is the whole reason
38
+ * this takes `number | null` rather than defaulting.
39
+ */
40
+ export declare function Figure(props: {
41
+ label: string;
42
+ value: number | null;
43
+ note: string;
44
+ }): import("react").JSX.Element;
45
+ export declare namespace Figure {
46
+ var displayName: string;
47
+ }
48
+ /** A percentage to one decimal place. */
49
+ export declare function percent(value: number): string;
50
+ /**
51
+ * One rate, with its denominator spelled out on the same line.
52
+ *
53
+ * The denominator is rendered as `12 of 480 delivered` rather than as a
54
+ * tooltip or a footnote, because a reader comparing two rates has to be able
55
+ * to see they are over different populations without hovering anything. A
56
+ * `null` rate draws the dash and no number at all.
57
+ */
58
+ export declare function RateRow(props: {
59
+ label: string;
60
+ rate: MeasuredRate | null;
61
+ }): import("react").JSX.Element;
62
+ export declare namespace RateRow {
63
+ var displayName: string;
64
+ }