@imfusion/web-ui 0.8.1-dev.36.g641eac85 → 0.8.1-dev.46.g027b5df2

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.
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@imfusion/web-ui",
3
- "version": "0.8.1-dev.36.g641eac85",
3
+ "version": "0.8.1-dev.46.g027b5df2",
4
4
  "description": "The official Web UI component library for ImFusion web apps",
5
5
  "author": "ImFusion GmbH",
6
6
  "homepage": "https://imfusion.com",
@@ -118,8 +118,7 @@
118
118
  "@base-ui/react": "1.6.0",
119
119
  "@clack/prompts": "1.7.0",
120
120
  "class-variance-authority": "0.7.1",
121
- "commander": "15.0.0",
122
- "iconoir-react": "7.12.1"
121
+ "commander": "15.0.0"
123
122
  },
124
123
  "devDependencies": {
125
124
  "@imfusion/sdk": "1.0.0",
@@ -140,6 +139,8 @@
140
139
  "@vitest/browser-playwright": "5.0.3",
141
140
  "concurrently": "9.2.1",
142
141
  "culori": "4.0.2",
142
+ "fast-xml-parser": "5.11.2",
143
+ "iconoir": "7.12.1",
143
144
  "knip": "6.14.2",
144
145
  "lightningcss": "1.32.0",
145
146
  "mermaid": "12.0.0",
@@ -89,20 +89,118 @@
89
89
  "app-shell": {
90
90
  "root": {
91
91
  "name": "AppShell.Root",
92
- "description": "AppShell — application layout shell.\n\nThe classic dashboard frame: a fixed header, collapsible navbar/aside\nsidebars, an optional footer, and a scrolling main content area. Also called\nan app layout, application frame, dashboard shell, or sidebar layout.\n\nComposed of seven sub-components used with dot-notation: `AppShell.Root` wraps\n`AppShell.Header`, `AppShell.Navbar`, `AppShell.Aside`, `AppShell.Footer`,\n`AppShell.Main`, and (inside a sidebar) `AppShell.Section`.\n\nSizing is CSS-driven — override the `--imf-ui-appshell-*` custom properties\nrather than passing dimension props. Below the responsive breakpoints the\nnavbar (`md`) and aside (`lg`) become sliding overlays toggled via the `open`\nprop; the consumer wires that to a burger button.\n\nCopied and adapted from Mantine's AppShell; no upstream runtime dependency.\nMIT licensed (see Mantine repo).",
93
- "props": []
92
+ "description": "",
93
+ "props": [
94
+ {
95
+ "name": "ref",
96
+ "required": false,
97
+ "type": "Ref<HTMLDivElement>",
98
+ "defaultValue": null,
99
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
100
+ }
101
+ ]
94
102
  },
95
103
  "subComponents": [
96
104
  {
97
105
  "name": "AppShell.Aside",
98
- "description": "",
106
+ "description": "Below `lg` the aside opens as a drawer: from the bottom on phones, from the inline end on tablets.",
99
107
  "props": [
108
+ {
109
+ "name": "onOpenChange",
110
+ "required": false,
111
+ "type": "(open: boolean) => void",
112
+ "defaultValue": null,
113
+ "description": "Called when the drawer asks to open or close: scrim, swipe, or Escape."
114
+ },
115
+ {
116
+ "name": "onWidthChange",
117
+ "required": false,
118
+ "type": "(width: number) => void",
119
+ "defaultValue": null,
120
+ "description": "Called with the new width in px when a drag ends, on each arrow-key step, and on reset."
121
+ },
100
122
  {
101
123
  "name": "open",
102
124
  "required": false,
103
125
  "type": "boolean",
104
126
  "defaultValue": null,
105
- "description": "Whether the mobile overlay is open. Ignored above the `lg` breakpoint, where the aside is always visible."
127
+ "description": "Whether the drawer is open below the breakpoint. Ignored while the section is docked."
128
+ },
129
+ {
130
+ "name": "resizable",
131
+ "required": false,
132
+ "type": "boolean",
133
+ "defaultValue": "true",
134
+ "description": "Adds a drag handle on the inline-start edge from the `lg` breakpoint up. Double-click or Home restores the default width."
135
+ },
136
+ {
137
+ "name": "resizeLabel",
138
+ "required": false,
139
+ "type": "string",
140
+ "defaultValue": "Resize panel",
141
+ "description": "Accessible name of the drag handle."
142
+ }
143
+ ]
144
+ },
145
+ {
146
+ "name": "AppShell.Burger",
147
+ "description": "AppShell.Burger — the header's menu toggle: three sheared bands that cross when `opened`. Takes its color from the\nsurface and hides from `md` up, where the navbar is docked.",
148
+ "props": [
149
+ {
150
+ "name": "className",
151
+ "required": false,
152
+ "type": "string | ((state: ButtonState) => string)",
153
+ "defaultValue": null,
154
+ "description": "CSS class applied to the element, or a function that\nreturns a class based on the component's state."
155
+ },
156
+ {
157
+ "name": "focusableWhenDisabled",
158
+ "required": false,
159
+ "type": "boolean",
160
+ "defaultValue": "false",
161
+ "description": "Whether the button should be focusable when disabled."
162
+ },
163
+ {
164
+ "name": "label",
165
+ "required": false,
166
+ "type": "string",
167
+ "defaultValue": null,
168
+ "description": "Accessible name. Defaults to \"Open navigation\" or \"Close navigation\" from `opened`."
169
+ },
170
+ {
171
+ "name": "nativeButton",
172
+ "required": false,
173
+ "type": "boolean",
174
+ "defaultValue": "true",
175
+ "description": "Whether the component renders a native `<button>` element when replacing it\nvia the `render` prop.\nSet to `false` if the rendered element is not a button (for example, `<div>`)."
176
+ },
177
+ {
178
+ "name": "opened",
179
+ "required": false,
180
+ "type": "boolean",
181
+ "defaultValue": "false",
182
+ "description": "Whether the navigation it controls is open; draws the cross and sets `aria-expanded`."
183
+ },
184
+ {
185
+ "name": "ref",
186
+ "required": false,
187
+ "type": "Ref<HTMLDivElement>",
188
+ "defaultValue": null,
189
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
190
+ },
191
+ {
192
+ "name": "render",
193
+ "required": false,
194
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, ButtonState>",
195
+ "defaultValue": null,
196
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
197
+ },
198
+ {
199
+ "name": "style",
200
+ "required": false,
201
+ "type": "| CSSProperties\n| ((state: ButtonState) => CSSProperties)",
202
+ "defaultValue": null,
203
+ "description": "Style applied to the element, or a function that\nreturns a style object based on the component's state."
106
204
  }
107
205
  ]
108
206
  },
@@ -123,14 +221,62 @@
123
221
  },
124
222
  {
125
223
  "name": "AppShell.Navbar",
126
- "description": "",
224
+ "description": "`variant=\"branded\"` paints the primary color; children opt into on-color themselves. Below `md` the navbar opens as a\ndrawer from the inline end.",
127
225
  "props": [
226
+ {
227
+ "name": "onOpenChange",
228
+ "required": false,
229
+ "type": "(open: boolean) => void",
230
+ "defaultValue": null,
231
+ "description": "Called when the drawer asks to open or close: scrim, swipe, or Escape."
232
+ },
128
233
  {
129
234
  "name": "open",
130
235
  "required": false,
131
236
  "type": "boolean",
132
237
  "defaultValue": null,
133
- "description": "Whether the mobile overlay is open. Ignored above the `md` breakpoint, where the navbar is always visible."
238
+ "description": "Whether the drawer is open below the breakpoint. Ignored while the section is docked."
239
+ },
240
+ {
241
+ "name": "variant",
242
+ "required": false,
243
+ "type": "\"default\" | \"branded\" | null",
244
+ "defaultValue": "default",
245
+ "description": ""
246
+ }
247
+ ]
248
+ },
249
+ {
250
+ "name": "AppShell.NavItem",
251
+ "description": "AppShell.NavItem — a navbar link: icon, mono label, and an optional description. Takes its color from the navbar;\n`aria-current=\"page\"` marks the current page. Pass a router link through `render`.",
252
+ "props": [
253
+ {
254
+ "name": "description",
255
+ "required": false,
256
+ "type": "ReactNode",
257
+ "defaultValue": null,
258
+ "description": "One line under the label saying what is behind the link."
259
+ },
260
+ {
261
+ "name": "icon",
262
+ "required": false,
263
+ "type": "ReactNode",
264
+ "defaultValue": null,
265
+ "description": "Leading icon, decorative."
266
+ },
267
+ {
268
+ "name": "ref",
269
+ "required": false,
270
+ "type": "Ref<HTMLDivElement>",
271
+ "defaultValue": null,
272
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
273
+ },
274
+ {
275
+ "name": "render",
276
+ "required": false,
277
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, {}>",
278
+ "defaultValue": null,
279
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
134
280
  }
135
281
  ]
136
282
  },
@@ -5566,6 +5712,91 @@
5566
5712
  },
5567
5713
  "subComponents": []
5568
5714
  },
5715
+ "skeleton": {
5716
+ "root": {
5717
+ "name": "Skeleton.Root",
5718
+ "description": "Skeleton.Root — marks a region as loading. The view inside renders for real; bones stand in for the data. Sets\n`aria-busy` and announces `label` once, however many bones it holds.",
5719
+ "props": [
5720
+ {
5721
+ "name": "animation",
5722
+ "required": false,
5723
+ "type": "\"none\" | \"shimmer\"",
5724
+ "defaultValue": "shimmer",
5725
+ "description": "`none` holds every bone inside still."
5726
+ },
5727
+ {
5728
+ "name": "label",
5729
+ "required": true,
5730
+ "type": "string",
5731
+ "defaultValue": null,
5732
+ "description": "Announced once through a visually hidden status. Pass `\"\"` when something else already speaks for the region."
5733
+ },
5734
+ {
5735
+ "name": "ref",
5736
+ "required": false,
5737
+ "type": "Ref<HTMLDivElement>",
5738
+ "defaultValue": null,
5739
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
5740
+ },
5741
+ {
5742
+ "name": "render",
5743
+ "required": false,
5744
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, {}>",
5745
+ "defaultValue": null,
5746
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
5747
+ }
5748
+ ]
5749
+ },
5750
+ "subComponents": [
5751
+ {
5752
+ "name": "Skeleton.Block",
5753
+ "description": "Skeleton.Block — a sized placeholder for a shaped element such as a meter, chip, or avatar.",
5754
+ "props": [
5755
+ {
5756
+ "name": "height",
5757
+ "required": false,
5758
+ "type": "Height<string | number>",
5759
+ "defaultValue": null,
5760
+ "description": "Height of the block."
5761
+ },
5762
+ {
5763
+ "name": "shape",
5764
+ "required": false,
5765
+ "type": "\"circle\" | \"rect\"",
5766
+ "defaultValue": "rect",
5767
+ "description": "`circle` takes its size from `width`, for avatars."
5768
+ },
5769
+ {
5770
+ "name": "width",
5771
+ "required": false,
5772
+ "type": "Width<string | number>",
5773
+ "defaultValue": "100%",
5774
+ "description": "Width of the block, capped at the container width. A circle uses it for both sides."
5775
+ }
5776
+ ]
5777
+ },
5778
+ {
5779
+ "name": "Skeleton.Text",
5780
+ "description": "Skeleton.Text — a text bar exactly one line of the parent's font tall. Place it inside the real Typo element so the\nrow keeps the loaded row's height.",
5781
+ "props": [
5782
+ {
5783
+ "name": "lines",
5784
+ "required": false,
5785
+ "type": "number",
5786
+ "defaultValue": "1",
5787
+ "description": "Number of stacked lines. The last of several is 60% wide."
5788
+ },
5789
+ {
5790
+ "name": "width",
5791
+ "required": false,
5792
+ "type": "Width<string | number>",
5793
+ "defaultValue": "100%",
5794
+ "description": "Width of the bar, capped at the container width."
5795
+ }
5796
+ ]
5797
+ }
5798
+ ]
5799
+ },
5569
5800
  "slider": {
5570
5801
  "root": {
5571
5802
  "name": "Slider.Root",
@@ -6264,6 +6495,26 @@
6264
6495
  "description": "Table.Row — a `<tr>` in header or body.",
6265
6496
  "props": []
6266
6497
  },
6498
+ {
6499
+ "name": "Table.RowLink",
6500
+ "description": "Table.RowLink — an `<a>` that stands in for its whole row, such as a link to the row's detail page. Reads as row text,\nnot as a separate link, and wraps anywhere so long values like emails stay inside a narrow table.",
6501
+ "props": [
6502
+ {
6503
+ "name": "ref",
6504
+ "required": false,
6505
+ "type": "Ref<HTMLAnchorElement>",
6506
+ "defaultValue": null,
6507
+ "description": "Allows getting a ref to the component instance.\nOnce the component unmounts, React will set `ref.current` to `null`\n(or call the ref with `null` if you passed a callback ref).\n@see {@link https://react.dev/learn/referencing-values-with-refs#refs-and-the-dom React Docs}"
6508
+ },
6509
+ {
6510
+ "name": "render",
6511
+ "required": false,
6512
+ "type": "| ReactElement<\n unknown,\n string | JSXElementConstructor<any>\n >\n| ComponentRenderFn<HTMLProps, {}>",
6513
+ "defaultValue": null,
6514
+ "description": "Allows you to replace the component's HTML element\nwith a different tag, or compose it with another component.\n\nAccepts a `ReactElement` or a function that returns the element to render."
6515
+ }
6516
+ ]
6517
+ },
6267
6518
  {
6268
6519
  "name": "Table.SortableHeaderCell",
6269
6520
  "description": "Table.SortableHeaderCell — a header cell whose label is a sort toggle,\npre-composing HeaderCell + HeaderButton so `aria-sort` and the direction\nindicator aren't re-derived per consumer. Omit `onToggle` for a plain cell.",