wimui 0.4.0 → 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.
package/README.md CHANGED
@@ -18,7 +18,7 @@ The npm package is **a single `wimui`** (not a split monorepo of packages). You
18
18
  | **Core** | `wimui` / `wimui/form` / `wimui/layout`, etc. | None (React 19 only) |
19
19
  | Optional — Charts | `wimui/charts` | `recharts` |
20
20
  | Optional — Peer components | dedicated subpath per component, e.g. `wimui/ai/markdown-renderer`, `wimui/data-display/qr-code` | that component's peer (see table below) |
21
- | Optional — RHF | `wimui/rhf` | `react-hook-form` + `zod` 4 (+ resolvers) |
21
+ | Optional — RHF | `wimui/rhf` | `react-hook-form` + `zod` (3.25+ / 4) (+ resolvers) |
22
22
 
23
23
  **Why subpaths are separated:** optional components pull in heavy peers (recharts, etc.). By not exporting them from the root `wimui`, a Core-only app is far less likely to drag those peers into type resolution or bundle analysis without installing them. Import only the subpath for the feature you use, and install only that peer.
24
24
 
@@ -40,7 +40,7 @@ Supported version ranges for public peers. Wider ranges are unsupported.
40
40
  | Package | Supported | Peer range | Notes |
41
41
  |---|---|---|---|
42
42
  | `react` / `react-dom` | **19** | `^19.0.0` | Development, tests, and published types target React 19. React 18 is unsupported |
43
- | `zod` (when using `wimui/rhf`) | **4** | `^4.0.0` | Development and tests target zod 4. zod 3 is unsupported |
43
+ | `zod` (when using `wimui/rhf`) | **3.25+ / 4** | `^3.25.0 \|\| ^4.0.0` | Range mirrors `@hookform/resolvers` so a zod-3 ecosystem resolves without `ERESOLVE`. Development and tests target zod 4 |
44
44
  | `@hookform/resolvers` | **5.1+** | `^5.1.0` | When using `wimui/rhf` |
45
45
  | `react-hook-form` | **7.43+** | `^7.43.0` | Only when using `wimui/rhf` |
46
46
 
@@ -275,7 +275,7 @@ Each peer-dependent component has its **own subpath** whose name documents its p
275
275
  | CodeDiffViewer | `wimui/ai/code-diff-viewer` | `diff` |
276
276
  | InteractiveGraph | `wimui/ai/interactive-graph` | `@xyflow/react` |
277
277
  | Audio (only when `showMetadata`) | `wimui` or `wimui/media` | `music-metadata` |
278
- | FormField / zodResolver | `wimui/rhf` | `react-hook-form` `^7.43` / `@hookform/resolvers` `^5.1` / `zod` `^4` |
278
+ | FormField / zodResolver | `wimui/rhf` | `react-hook-form` `^7.43` / `@hookform/resolvers` `^5.1` / `zod` `^3.25 \|\| ^4` |
279
279
 
280
280
  Source of truth: `src/data/peer-imports.json` (CI's `check:imports` also reads this). Audio's metadata peer is a dynamic optional import, so it also lives at the root.
281
281
 
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_d0epa_2`,t=`_sm_d0epa_15`,n=`_iconOnly_d0epa_21`,r=`_md_d0epa_27`,i=`_lg_d0epa_39`,a=`_primary_d0epa_51`,o=`_solid_d0epa_51`,s=`_outline_d0epa_57`,c=`_subtle_d0epa_62`,l=`_secondary_d0epa_68`,u=`_success_d0epa_85`,d=`_warning_d0epa_102`,f=`_danger_d0epa_119`,p=`_info_d0epa_136`,m=`_neutral_d0epa_153`,h=`_interactive_d0epa_170`,g=`_icon_d0epa_21`,_={root:e,sm:t,iconOnly:n,md:r,lg:i,primary:a,solid:o,outline:s,subtle:c,secondary:l,success:u,warning:d,danger:f,info:p,neutral:m,interactive:h,icon:g};exports.danger=f,exports.default=_,exports.icon=g,exports.iconOnly=n,exports.info=p,exports.interactive=h,exports.lg=i,exports.md=r,exports.neutral=m,exports.outline=s,exports.primary=a,exports.root=e,exports.secondary=l,exports.sm=t,exports.solid=o,exports.subtle=c,exports.success=u,exports.warning=d;
2
+ var e=`_root_ejc1w_2`,t=`_sm_ejc1w_15`,n=`_iconOnly_ejc1w_21`,r=`_md_ejc1w_28`,i=`_lg_ejc1w_41`,a=`_primary_ejc1w_54`,o=`_solid_ejc1w_54`,s=`_outline_ejc1w_60`,c=`_subtle_ejc1w_65`,l=`_secondary_ejc1w_71`,u=`_success_ejc1w_88`,d=`_warning_ejc1w_105`,f=`_danger_ejc1w_122`,p=`_info_ejc1w_139`,m=`_neutral_ejc1w_156`,h=`_interactive_ejc1w_173`,g=`_icon_ejc1w_21`,_={root:e,sm:t,iconOnly:n,md:r,lg:i,primary:a,solid:o,outline:s,subtle:c,secondary:l,success:u,warning:d,danger:f,info:p,neutral:m,interactive:h,icon:g};exports.danger=f,exports.default=_,exports.icon=g,exports.iconOnly=n,exports.info=p,exports.interactive=h,exports.lg=i,exports.md=r,exports.neutral=m,exports.outline=s,exports.primary=a,exports.root=e,exports.secondary=l,exports.sm=t,exports.solid=o,exports.subtle=c,exports.success=u,exports.warning=d;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/data-display/Badge/badge.module.scss
3
- var e = "_root_d0epa_2", t = "_sm_d0epa_15", n = "_iconOnly_d0epa_21", r = "_md_d0epa_27", i = "_lg_d0epa_39", a = "_primary_d0epa_51", o = "_solid_d0epa_51", s = "_outline_d0epa_57", c = "_subtle_d0epa_62", l = "_secondary_d0epa_68", u = "_success_d0epa_85", d = "_warning_d0epa_102", f = "_danger_d0epa_119", p = "_info_d0epa_136", m = "_neutral_d0epa_153", h = "_interactive_d0epa_170", g = "_icon_d0epa_21", _ = {
3
+ var e = "_root_ejc1w_2", t = "_sm_ejc1w_15", n = "_iconOnly_ejc1w_21", r = "_md_ejc1w_28", i = "_lg_ejc1w_41", a = "_primary_ejc1w_54", o = "_solid_ejc1w_54", s = "_outline_ejc1w_60", c = "_subtle_ejc1w_65", l = "_secondary_ejc1w_71", u = "_success_ejc1w_88", d = "_warning_ejc1w_105", f = "_danger_ejc1w_122", p = "_info_ejc1w_139", m = "_neutral_ejc1w_156", h = "_interactive_ejc1w_173", g = "_icon_ejc1w_21", _ = {
4
4
  root: e,
5
5
  sm: t,
6
6
  iconOnly: n,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_1whsz_2`,t=`_md_1whsz_18`,n=`_avatar_1whsz_23`,r=`_sm_1whsz_28`,i=`_lg_1whsz_38`,a=`_clickable_1whsz_48`,o=`_primary_1whsz_59`,s=`_solid_1whsz_59`,c=`_outline_1whsz_65`,l=`_subtle_1whsz_70`,u=`_secondary_1whsz_76`,d=`_success_1whsz_93`,f=`_warning_1whsz_110`,p=`_danger_1whsz_127`,m=`_info_1whsz_144`,h=`_neutral_1whsz_161`,g=`_selected_1whsz_178`,_=`_disabled_1whsz_181`,v=`_label_1whsz_205`,y=`_icon_1whsz_210`,b={root:e,md:t,avatar:n,sm:r,lg:i,clickable:a,primary:o,solid:s,outline:c,subtle:l,secondary:u,success:d,warning:f,danger:p,info:m,neutral:h,selected:g,disabled:_,delete:`_delete_1whsz_189`,label:v,icon:y};exports.avatar=n,exports.clickable=a,exports.danger=p,exports.default=b,exports.disabled=_,exports.icon=y,exports.info=m,exports.label=v,exports.lg=i,exports.md=t,exports.neutral=h,exports.outline=c,exports.primary=o,exports.root=e,exports.secondary=u,exports.selected=g,exports.sm=r,exports.solid=s,exports.subtle=l,exports.success=d,exports.warning=f;
2
+ var e=`_root_17rfl_2`,t=`_md_17rfl_19`,n=`_avatar_17rfl_24`,r=`_sm_17rfl_29`,i=`_lg_17rfl_39`,a=`_clickable_17rfl_49`,o=`_primary_17rfl_60`,s=`_solid_17rfl_60`,c=`_outline_17rfl_66`,l=`_subtle_17rfl_71`,u=`_secondary_17rfl_77`,d=`_success_17rfl_94`,f=`_warning_17rfl_111`,p=`_danger_17rfl_128`,m=`_info_17rfl_145`,h=`_neutral_17rfl_162`,g=`_selected_17rfl_179`,_=`_disabled_17rfl_182`,v=`_label_17rfl_206`,y=`_icon_17rfl_211`,b={root:e,md:t,avatar:n,sm:r,lg:i,clickable:a,primary:o,solid:s,outline:c,subtle:l,secondary:u,success:d,warning:f,danger:p,info:m,neutral:h,selected:g,disabled:_,delete:`_delete_17rfl_190`,label:v,icon:y};exports.avatar=n,exports.clickable=a,exports.danger=p,exports.default=b,exports.disabled=_,exports.icon=y,exports.info=m,exports.label=v,exports.lg=i,exports.md=t,exports.neutral=h,exports.outline=c,exports.primary=o,exports.root=e,exports.secondary=u,exports.selected=g,exports.sm=r,exports.solid=s,exports.subtle=l,exports.success=d,exports.warning=f;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/data-display/Chip/chip.module.scss
3
- var e = "_root_1whsz_2", t = "_md_1whsz_18", n = "_avatar_1whsz_23", r = "_sm_1whsz_28", i = "_lg_1whsz_38", a = "_clickable_1whsz_48", o = "_primary_1whsz_59", s = "_solid_1whsz_59", c = "_outline_1whsz_65", l = "_subtle_1whsz_70", u = "_secondary_1whsz_76", d = "_success_1whsz_93", f = "_warning_1whsz_110", p = "_danger_1whsz_127", m = "_info_1whsz_144", h = "_neutral_1whsz_161", g = "_selected_1whsz_178", _ = "_disabled_1whsz_181", v = "_label_1whsz_205", y = "_icon_1whsz_210", b = {
3
+ var e = "_root_17rfl_2", t = "_md_17rfl_19", n = "_avatar_17rfl_24", r = "_sm_17rfl_29", i = "_lg_17rfl_39", a = "_clickable_17rfl_49", o = "_primary_17rfl_60", s = "_solid_17rfl_60", c = "_outline_17rfl_66", l = "_subtle_17rfl_71", u = "_secondary_17rfl_77", d = "_success_17rfl_94", f = "_warning_17rfl_111", p = "_danger_17rfl_128", m = "_info_17rfl_145", h = "_neutral_17rfl_162", g = "_selected_17rfl_179", _ = "_disabled_17rfl_182", v = "_label_17rfl_206", y = "_icon_17rfl_211", b = {
4
4
  root: e,
5
5
  md: t,
6
6
  avatar: n,
@@ -19,7 +19,7 @@ var e = "_root_1whsz_2", t = "_md_1whsz_18", n = "_avatar_1whsz_23", r = "_sm_1w
19
19
  neutral: h,
20
20
  selected: g,
21
21
  disabled: _,
22
- delete: "_delete_1whsz_189",
22
+ delete: "_delete_17rfl_190",
23
23
  label: v,
24
24
  icon: y
25
25
  };
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../form/Checkbox/Checkbox.cjs"),r=require("../../navigation/Pagination/Pagination.cjs"),i=require("../Table/Table.cjs"),a=require("./useFixedColumns.cjs"),o=require("./useDataGridKeyboard.cjs"),s=require("./useInfiniteScroll.cjs"),c=require("./datagrid.module.cjs");let l=require("react");l=e.__toESM(l,1);let u=require("classnames");u=e.__toESM(u,1);let d=require("react/jsx-runtime");function f({columns:e,data:f,rowKey:p=`id`,loading:m=!1,striped:h=!1,bordered:g=!1,hoverable:_=!0,stickyHeader:v=!0,height:y,maxHeight:b,emptyMessage:x,mobileCard:S=!1,selection:C,selectedRowKeys:w,onSelectionChange:T,sortConfig:E,onSortChange:D,pagination:O,infiniteScroll:k,className:A,ariaLabel:j}){let{t:M}=t.useWimTranslation(`common`),N=(0,l.useMemo)(()=>C?C===!0?{type:`checkbox`,selectedRowKeys:w??[],onChange:(e,t)=>{T?.(e,t)}}:C:null,[C,w,T]),{fixedLeftOffsets:P,fixedRightOffsets:F}=a.useFixedColumns(e,!!N),I=(e,t=!1)=>{let n=P[e];if(n)return{stickyLeft:!0,leftOffset:n.offset,stickyZIndex:t?1e3+n.zIndex:n.zIndex,className:(0,u.default)(c.default.cellFixed,n.isLast&&c.default.cellFixedLeftLast)};let r=F[e];return r?{stickyRight:!0,rightOffset:r.offset,stickyZIndex:t?1e3+r.zIndex:r.zIndex,className:(0,u.default)(c.default.cellFixed,r.isFirst&&c.default.cellFixedRightFirst)}:{}},L=(0,l.useCallback)(e=>typeof p==`function`?p(e):e[p],[p]),R=(0,l.useMemo)(()=>!N||f.length===0?!1:f.every(e=>N.selectedRowKeys.includes(L(e))),[f,N,L]),z=(0,l.useMemo)(()=>N?!R&&f.some(e=>N.selectedRowKeys.includes(L(e))):!1,[f,N,R,L]),B=e=>{if(!N)return;let t=e.target.checked,n=t?f.map(L):[],r=t?f:[];N.onChange(n,r)},V=(e,t)=>{if(!N)return;let n=t.target.checked,r=L(e),i=n?[...N.selectedRowKeys,r]:N.selectedRowKeys.filter(e=>e!==r),a=f.filter(e=>i.includes(L(e)));N.onChange(i,a)},{focusedCell:H,handleKeyDown:U,containerRef:W}=o.useDataGridKeyboard(e,f,!!N),{loaderRef:G}=s.useInfiniteScroll(k),K=e.length+ +!!N;return(0,d.jsxs)(`div`,{className:(0,u.default)(`wim-data-grid`,c.default.root,m&&c.default.loading,A),children:[(0,d.jsxs)(`div`,{className:c.default.container,style:{height:y,maxHeight:b},children:[(0,d.jsxs)(i.Table,{ref:W,onKeyDown:U,tabIndex:0,role:`grid`,"aria-label":j??M(`a11y.data_grid`),"aria-rowcount":f.length+1,"aria-colcount":K,striped:h,bordered:g,hoverable:_,stickyHeader:v,mobileCard:S,fullWidth:!0,className:(0,u.default)(`wim-table`,c.default.table),containerClassName:c.default.tableContainer,children:[(0,d.jsx)(i.Table.Header,{children:(0,d.jsxs)(i.Table.Row,{children:[N&&(0,d.jsx)(i.Table.Head,{role:`columnheader`,selection:!0,stickyLeft:!0,leftOffset:0,stickyZIndex:1150,"data-row":-1,"data-col":-1,"aria-label":M(`a11y.select_all_rows`),tabIndex:H.row===-1&&H.col===-1?0:-1,children:(N.type??`checkbox`)===`checkbox`&&(0,d.jsx)(n.Checkbox,{checked:R,indeterminate:z,onChange:B,"aria-label":M(`a11y.select_all_rows`)})}),e.map((e,t)=>{let n=I(e.key,!0);return(0,d.jsx)(i.Table.Head,{role:`columnheader`,style:{width:e.width,minWidth:e.width},sortable:e.sortable,sortDirection:E?.key===e.key?E.direction:`none`,onSort:()=>{if(!e.sortable||!D)return;let t=E?.key===e.key?E.direction===`asc`?`desc`:E.direction===`desc`?`none`:`asc`:`asc`;D(e.key,t)},...n,tabIndex:H.row===-1&&H.col===(N?t+1:t)?0:-1,"data-row":-1,"data-col":N?t+1:t,children:e.title},e.key)})]})}),(0,d.jsx)(i.Table.Body,{children:f.map((t,r)=>{let a=L(t),o=N?.selectedRowKeys.includes(a);return(0,d.jsxs)(i.Table.Row,{selected:o,children:[N&&(0,d.jsx)(i.Table.Cell,{role:`gridcell`,selection:!0,stickyLeft:!0,leftOffset:0,stickyZIndex:150,"data-row":r,"data-col":-1,tabIndex:H.row===r&&H.col===-1?0:-1,children:(0,d.jsx)(n.Checkbox,{checked:o,onChange:e=>V(t,e),"aria-label":M(`a11y.select_row`)})}),e.map((e,n)=>{let a=I(e.key,!1),o=t[e.dataIndex??e.key];return(0,d.jsx)(i.Table.Cell,{role:`gridcell`,label:typeof e.title==`string`?e.title:void 0,...a,"data-row":r,"data-col":N?n+1:n,tabIndex:H.row===r&&H.col===(N?n+1:n)?0:-1,children:e.render?e.render(o,t,r):o},e.key)})]},a)})})]}),f.length===0&&x&&(0,d.jsx)(`div`,{role:`status`,className:c.default.empty,children:x}),k?.hasMore&&(0,d.jsx)(`div`,{ref:G,className:c.default.loader,children:k.hasMore&&`Loading more...`})]}),O&&(0,d.jsxs)(`div`,{className:c.default.footer,children:[(0,d.jsxs)(`div`,{className:c.default.info,children:[`Displaying `,f.length,` of `,O.total,` records`,N?.selectedRowKeys&&N.selectedRowKeys.length>0&&(0,d.jsxs)(`span`,{className:c.default.selectionInfo,children:[`(`,N.selectedRowKeys.length,` row(s) selected)`]})]}),(0,d.jsx)(`div`,{className:c.default.pagination,children:(0,d.jsx)(r.Pagination,{className:c.default.paginationContent,current:O.current,total:O.total,pageSize:O.pageSize,onChange:O.onChange})})]})]})}exports.DataGrid=f;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("../../../i18n/useWimTranslation.cjs"),n=require("../../form/Checkbox/Checkbox.cjs"),r=require("../../navigation/Pagination/Pagination.cjs"),i=require("../Table/Table.cjs"),a=require("./useFixedColumns.cjs"),o=require("./useDataGridKeyboard.cjs"),s=require("./useInfiniteScroll.cjs"),c=require("./datagrid.module.cjs");let l=require("react");l=e.__toESM(l,1);let u=require("classnames");u=e.__toESM(u,1);let d=require("react/jsx-runtime");function f({columns:e,data:f,rowKey:p=`id`,loading:m=!1,striped:h=!1,bordered:g=!1,hoverable:_=!0,stickyHeader:v=!0,height:y,maxHeight:b,emptyMessage:x,mobileCard:S=!1,selection:C,selectedRowKeys:w,onSelectionChange:T,sortConfig:E,onSortChange:D,pagination:O,infiniteScroll:k,className:A,ariaLabel:j}){let{t:M}=t.useWimTranslation(`common`),N=(0,l.useMemo)(()=>C?C===!0?{type:`checkbox`,selectedRowKeys:w??[],onChange:(e,t)=>{T?.(e,t)}}:C:null,[C,w,T]),{fixedLeftOffsets:P,fixedRightOffsets:F}=a.useFixedColumns(e,!!N),I=(e,t=!1)=>{let n=P[e];if(n)return{stickyLeft:!0,leftOffset:n.offset,stickyZIndex:t?1e3+n.zIndex:n.zIndex,className:(0,u.default)(c.default.cellFixed,n.isLast&&c.default.cellFixedLeftLast)};let r=F[e];return r?{stickyRight:!0,rightOffset:r.offset,stickyZIndex:t?1e3+r.zIndex:r.zIndex,className:(0,u.default)(c.default.cellFixed,r.isFirst&&c.default.cellFixedRightFirst)}:{}},L=(0,l.useCallback)(e=>typeof p==`function`?p(e):e[p],[p]),R=(0,l.useMemo)(()=>!N||f.length===0?!1:f.every(e=>N.selectedRowKeys.includes(L(e))),[f,N,L]),z=(0,l.useMemo)(()=>N?!R&&f.some(e=>N.selectedRowKeys.includes(L(e))):!1,[f,N,R,L]),B=e=>{if(!N)return;let t=e.target.checked,n=t?f.map(L):[],r=t?f:[];N.onChange(n,r)},V=(e,t)=>{if(!N)return;let n=t.target.checked,r=L(e),i=n?[...N.selectedRowKeys,r]:N.selectedRowKeys.filter(e=>e!==r),a=f.filter(e=>i.includes(L(e)));N.onChange(i,a)},{focusedCell:H,handleKeyDown:U,containerRef:W}=o.useDataGridKeyboard(e,f,!!N),{loaderRef:G}=s.useInfiniteScroll(k),K=e.length+ +!!N;return(0,d.jsxs)(`div`,{className:(0,u.default)(`wim-data-grid`,c.default.root,m&&c.default.loading,A),"aria-busy":m||void 0,children:[(0,d.jsxs)(`div`,{className:c.default.container,style:{height:y,maxHeight:b},inert:m||void 0,children:[(0,d.jsxs)(i.Table,{ref:W,onKeyDown:U,tabIndex:0,role:`grid`,"aria-label":j??M(`a11y.data_grid`),"aria-rowcount":f.length+1,"aria-colcount":K,striped:h,bordered:g,hoverable:_,stickyHeader:v,mobileCard:S,fullWidth:!0,className:(0,u.default)(`wim-table`,c.default.table),containerClassName:c.default.tableContainer,children:[(0,d.jsx)(i.Table.Header,{children:(0,d.jsxs)(i.Table.Row,{children:[N&&(0,d.jsx)(i.Table.Head,{role:`columnheader`,selection:!0,stickyLeft:!0,leftOffset:0,stickyZIndex:1150,"data-row":-1,"data-col":-1,"aria-label":M(`a11y.select_all_rows`),tabIndex:H.row===-1&&H.col===-1?0:-1,children:(N.type??`checkbox`)===`checkbox`&&(0,d.jsx)(n.Checkbox,{checked:R,indeterminate:z,onChange:B,"aria-label":M(`a11y.select_all_rows`)})}),e.map((e,t)=>{let n=I(e.key,!0);return(0,d.jsx)(i.Table.Head,{role:`columnheader`,style:{width:e.width,minWidth:e.width},sortable:e.sortable,sortDirection:E?.key===e.key?E.direction:`none`,onSort:()=>{if(!e.sortable||!D)return;let t=E?.key===e.key?E.direction===`asc`?`desc`:E.direction===`desc`?`none`:`asc`:`asc`;D(e.key,t)},...n,tabIndex:H.row===-1&&H.col===(N?t+1:t)?0:-1,"data-row":-1,"data-col":N?t+1:t,children:e.title},e.key)})]})}),(0,d.jsx)(i.Table.Body,{children:f.map((t,r)=>{let a=L(t),o=N?.selectedRowKeys.includes(a);return(0,d.jsxs)(i.Table.Row,{selected:o,children:[N&&(0,d.jsx)(i.Table.Cell,{role:`gridcell`,selection:!0,stickyLeft:!0,leftOffset:0,stickyZIndex:150,"data-row":r,"data-col":-1,tabIndex:H.row===r&&H.col===-1?0:-1,children:(0,d.jsx)(n.Checkbox,{checked:o,onChange:e=>V(t,e),"aria-label":M(`a11y.select_row`)})}),e.map((e,n)=>{let a=I(e.key,!1),o=t[e.dataIndex??e.key];return(0,d.jsx)(i.Table.Cell,{role:`gridcell`,label:typeof e.title==`string`?e.title:void 0,...a,"data-row":r,"data-col":N?n+1:n,tabIndex:H.row===r&&H.col===(N?n+1:n)?0:-1,children:e.render?e.render(o,t,r):o},e.key)})]},a)})})]}),f.length===0&&x&&(0,d.jsx)(`div`,{role:`status`,className:c.default.empty,children:x}),k?.hasMore&&(0,d.jsx)(`div`,{ref:G,className:c.default.loader,children:k.hasMore&&`Loading more...`})]}),O&&(0,d.jsxs)(`div`,{className:c.default.footer,inert:m||void 0,children:[(0,d.jsxs)(`div`,{className:c.default.info,children:[`Displaying `,f.length,` of `,O.total,` records`,N?.selectedRowKeys&&N.selectedRowKeys.length>0&&(0,d.jsxs)(`span`,{className:c.default.selectionInfo,children:[`(`,N.selectedRowKeys.length,` row(s) selected)`]})]}),(0,d.jsx)(`div`,{className:c.default.pagination,children:(0,d.jsx)(r.Pagination,{className:c.default.paginationContent,current:O.current,total:O.total,pageSize:O.pageSize,onChange:O.onChange})})]})]})}exports.DataGrid=f;
@@ -57,12 +57,14 @@ function p({ columns: p, data: m, rowKey: h = "id", loading: g = !1, striped: _
57
57
  }, { focusedCell: W, handleKeyDown: G, containerRef: K } = a(p, m, !!F), { loaderRef: q } = o(j), J = p.length + +!!F;
58
58
  return /* @__PURE__ */ f("div", {
59
59
  className: u("wim-data-grid", s.root, g && s.loading, M),
60
+ "aria-busy": g || void 0,
60
61
  children: [/* @__PURE__ */ f("div", {
61
62
  className: s.container,
62
63
  style: {
63
64
  height: x,
64
65
  maxHeight: S
65
66
  },
67
+ inert: g || void 0,
66
68
  children: [
67
69
  /* @__PURE__ */ f(r, {
68
70
  ref: K,
@@ -163,6 +165,7 @@ function p({ columns: p, data: m, rowKey: h = "id", loading: g = !1, striped: _
163
165
  ]
164
166
  }), A && /* @__PURE__ */ f("div", {
165
167
  className: s.footer,
168
+ inert: g || void 0,
166
169
  children: [/* @__PURE__ */ f("div", {
167
170
  className: s.info,
168
171
  children: [
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_root_1a59q_2`,t=`_md_1a59q_13`,n=`_sm_1a59q_17`,r=`_lg_1a59q_21`,i=`_primary_1a59q_25`,a=`_solid_1a59q_25`,o=`_outline_1a59q_31`,s=`_subtle_1a59q_36`,c=`_secondary_1a59q_42`,l=`_success_1a59q_59`,u=`_warning_1a59q_76`,d=`_danger_1a59q_93`,f=`_info_1a59q_110`,p=`_neutral_1a59q_127`,m=`_disabled_1a59q_144`,h=`_closeButton_1a59q_152`,g=`_interactive_1a59q_155`,_=`_icon_1a59q_167`,v={root:e,md:t,sm:n,lg:r,primary:i,solid:a,outline:o,subtle:s,secondary:c,success:l,warning:u,danger:d,info:f,neutral:p,disabled:m,closeButton:h,interactive:g,icon:_};exports.closeButton=h,exports.danger=d,exports.default=v,exports.disabled=m,exports.icon=_,exports.info=f,exports.interactive=g,exports.lg=r,exports.md=t,exports.neutral=p,exports.outline=o,exports.primary=i,exports.root=e,exports.secondary=c,exports.sm=n,exports.solid=a,exports.subtle=s,exports.success=l,exports.warning=u;
2
+ var e=`_root_19vej_2`,t=`_md_19vej_14`,n=`_sm_19vej_18`,r=`_lg_19vej_22`,i=`_primary_19vej_26`,a=`_solid_19vej_26`,o=`_outline_19vej_32`,s=`_subtle_19vej_37`,c=`_secondary_19vej_43`,l=`_success_19vej_60`,u=`_warning_19vej_77`,d=`_danger_19vej_94`,f=`_info_19vej_111`,p=`_neutral_19vej_128`,m=`_disabled_19vej_145`,h=`_closeButton_19vej_153`,g=`_interactive_19vej_156`,_=`_icon_19vej_168`,v={root:e,md:t,sm:n,lg:r,primary:i,solid:a,outline:o,subtle:s,secondary:c,success:l,warning:u,danger:d,info:f,neutral:p,disabled:m,closeButton:h,interactive:g,icon:_};exports.closeButton=h,exports.danger=d,exports.default=v,exports.disabled=m,exports.icon=_,exports.info=f,exports.interactive=g,exports.lg=r,exports.md=t,exports.neutral=p,exports.outline=o,exports.primary=i,exports.root=e,exports.secondary=c,exports.sm=n,exports.solid=a,exports.subtle=s,exports.success=l,exports.warning=u;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/data-display/Tag/tag.module.scss
3
- var e = "_root_1a59q_2", t = "_md_1a59q_13", n = "_sm_1a59q_17", r = "_lg_1a59q_21", i = "_primary_1a59q_25", a = "_solid_1a59q_25", o = "_outline_1a59q_31", s = "_subtle_1a59q_36", c = "_secondary_1a59q_42", l = "_success_1a59q_59", u = "_warning_1a59q_76", d = "_danger_1a59q_93", f = "_info_1a59q_110", p = "_neutral_1a59q_127", m = "_disabled_1a59q_144", h = "_closeButton_1a59q_152", g = "_interactive_1a59q_155", _ = "_icon_1a59q_167", v = {
3
+ var e = "_root_19vej_2", t = "_md_19vej_14", n = "_sm_19vej_18", r = "_lg_19vej_22", i = "_primary_19vej_26", a = "_solid_19vej_26", o = "_outline_19vej_32", s = "_subtle_19vej_37", c = "_secondary_19vej_43", l = "_success_19vej_60", u = "_warning_19vej_77", d = "_danger_19vej_94", f = "_info_19vej_111", p = "_neutral_19vej_128", m = "_disabled_19vej_145", h = "_closeButton_19vej_153", g = "_interactive_19vej_156", _ = "_icon_19vej_168", v = {
4
4
  root: e,
5
5
  md: t,
6
6
  sm: n,
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("./bento-grid.module.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("classnames");r=e.__toESM(r,1);let i=require("react/jsx-runtime");var a=({className:e,children:n,...a})=>(0,i.jsx)(`div`,{className:t.default.container,children:(0,i.jsx)(`div`,{className:(0,r.default)(`wim-bento-grid`,t.default.root,e),...a,children:n})});a.displayName=`BentoGrid`;var o=({className:e,title:n,description:a,header:o,icon:s,...c})=>(0,i.jsxs)(`div`,{className:(0,r.default)(t.default.item,e),...c,children:[o&&(0,i.jsx)(`div`,{className:t.default.itemHeader,children:o}),(0,i.jsxs)(`div`,{className:t.default.itemContent,children:[s&&(0,i.jsx)(`div`,{className:t.default.itemIcon,children:s}),(0,i.jsxs)(`div`,{className:t.default.itemText,children:[n&&(0,i.jsx)(`div`,{className:t.default.itemTitle,children:n}),a&&(0,i.jsx)(`div`,{className:t.default.itemDescription,children:a})]})]})]});o.displayName=`BentoGridItem`,exports.BentoGrid=a,exports.BentoGridItem=o;
2
+ const e=require("../../../_virtual/_rolldown/runtime.cjs"),t=require("./bento-grid.module.cjs");let n=require("react");n=e.__toESM(n,1);let r=require("classnames");r=e.__toESM(r,1);let i=require("react/jsx-runtime");var a=({className:e,children:n,rowHeight:a,style:o,...s})=>(0,i.jsx)(`div`,{className:t.default.container,children:(0,i.jsx)(`div`,{className:(0,r.default)(`wim-bento-grid`,t.default.root,e),style:a?{...o,"--wim-bento-row-height":a}:o,...s,children:n})});a.displayName=`BentoGrid`;var o=({className:e,title:n,description:a,header:o,icon:s,...c})=>(0,i.jsxs)(`div`,{className:(0,r.default)(t.default.item,e),...c,children:[o&&(0,i.jsx)(`div`,{className:t.default.itemHeader,children:o}),(0,i.jsxs)(`div`,{className:t.default.itemContent,children:[s&&(0,i.jsx)(`div`,{className:t.default.itemIcon,children:s}),(0,i.jsxs)(`div`,{className:t.default.itemText,children:[n&&(0,i.jsx)(`div`,{className:t.default.itemTitle,children:n}),a&&(0,i.jsx)(`div`,{className:t.default.itemDescription,children:a})]})]})]});o.displayName=`BentoGridItem`,exports.BentoGrid=a,exports.BentoGridItem=o;
@@ -2,9 +2,11 @@ import { default as React } from 'react';
2
2
  type BentoGridProps = React.ComponentPropsWithoutRef<"div"> & {
3
3
  /** Grid items (typically BentoGrid.Item elements) */
4
4
  children?: React.ReactNode;
5
+ /** Fixed height of each grid row (`grid-auto-rows`). Any CSS length; defaults to `18rem`. Lower it when tiles hold compact content so they don't read as mostly-empty panels. */
6
+ rowHeight?: string;
5
7
  };
6
8
  export declare const BentoGrid: {
7
- ({ className, children, ...props }: BentoGridProps): React.JSX.Element;
9
+ ({ className, children, rowHeight, style, ...props }: BentoGridProps): React.JSX.Element;
8
10
  displayName: string;
9
11
  };
10
12
  export type BentoGridItemProps = React.ComponentPropsWithoutRef<"div"> & {
@@ -4,11 +4,15 @@ import "react";
4
4
  import t from "classnames";
5
5
  import { jsx as n, jsxs as r } from "react/jsx-runtime";
6
6
  //#region src/components/layout/BentoGrid/BentoGrid.tsx
7
- var i = ({ className: r, children: i, ...a }) => /* @__PURE__ */ n("div", {
7
+ var i = ({ className: r, children: i, rowHeight: a, style: o, ...s }) => /* @__PURE__ */ n("div", {
8
8
  className: e.container,
9
9
  children: /* @__PURE__ */ n("div", {
10
10
  className: t("wim-bento-grid", e.root, r),
11
- ...a,
11
+ style: a ? {
12
+ ...o,
13
+ "--wim-bento-row-height": a
14
+ } : o,
15
+ ...s,
12
16
  children: i
13
17
  })
14
18
  });
@@ -1,2 +1,2 @@
1
1
  "use client";
2
- var e=`_container_c14j6_3`,t=`_root_c14j6_8`,n=`_item_c14j6_22`,r=`_itemHeader_c14j6_36`,i=`_itemContent_c14j6_44`,a=`_itemIcon_c14j6_49`,o=`_itemText_c14j6_52`,s=`_itemTitle_c14j6_56`,c=`_itemDescription_c14j6_61`,l={container:e,root:t,item:n,itemHeader:r,itemContent:i,itemIcon:a,itemText:o,itemTitle:s,itemDescription:c};exports.container=e,exports.default=l,exports.item=n,exports.itemContent=i,exports.itemDescription=c,exports.itemHeader=r,exports.itemIcon=a,exports.itemText=o,exports.itemTitle=s,exports.root=t;
2
+ var e=`_container_136wn_3`,t=`_root_136wn_8`,n=`_item_136wn_22`,r=`_itemHeader_136wn_36`,i=`_itemContent_136wn_44`,a=`_itemIcon_136wn_49`,o=`_itemText_136wn_52`,s=`_itemTitle_136wn_56`,c=`_itemDescription_136wn_61`,l={container:e,root:t,item:n,itemHeader:r,itemContent:i,itemIcon:a,itemText:o,itemTitle:s,itemDescription:c};exports.container=e,exports.default=l,exports.item=n,exports.itemContent=i,exports.itemDescription=c,exports.itemHeader=r,exports.itemIcon=a,exports.itemText=o,exports.itemTitle=s,exports.root=t;
@@ -1,6 +1,6 @@
1
1
  "use client";
2
2
  //#region src/components/layout/BentoGrid/bento-grid.module.scss
3
- var e = "_container_c14j6_3", t = "_root_c14j6_8", n = "_item_c14j6_22", r = "_itemHeader_c14j6_36", i = "_itemContent_c14j6_44", a = "_itemIcon_c14j6_49", o = "_itemText_c14j6_52", s = "_itemTitle_c14j6_56", c = "_itemDescription_c14j6_61", l = {
3
+ var e = "_container_136wn_3", t = "_root_136wn_8", n = "_item_136wn_22", r = "_itemHeader_136wn_36", i = "_itemContent_136wn_44", a = "_itemIcon_136wn_49", o = "_itemText_136wn_52", s = "_itemTitle_136wn_56", c = "_itemDescription_136wn_61", l = {
4
4
  container: e,
5
5
  root: t,
6
6
  item: n,
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What this is
6
6
 
7
- **wimui** v0.4.0 — a React 19 component library: 216 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
7
+ **wimui** v0.5.0 — a React 19 component library: 216 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
8
8
 
9
9
  ## Install & required setup
10
10
 
@@ -55,12 +55,17 @@ Single components are judged by state/a11y/token compliance. **Composed screens*
55
55
  - Emoji used as UI icons (☰ ★ ✓) → use `src/icon/` components. (Emoji as functional markers in docs/README is fine; as UI icons it is not.)
56
56
  - Skeleton used as anything but loading (fake screenshots) → real-looking content or an actual mini UI.
57
57
  - Every section center-aligned → default to left-aligned; at most one centered section per page.
58
- - Round numbers ("1000+", "99%") + generic copy ("Get started", "seamless/powerful/effortless") → jagged realistic numbers (4,281) and product-specific voice.
58
+ - Round numbers ("1000+", "99%") + generic copy ("Get started") → jagged realistic numbers (4,281) and product-specific voice.
59
59
  - Sequential/alphabetical dummy names (Alice/Bob/Charlie, User 1/2) → culturally diverse, unordered, real-feeling names.
60
60
  - Rainbow color-per-category → color carries state only (success/warning/danger); everything else neutral.
61
61
  - Perfectly even grids (2×2, 3×3 all same size) → break the grid (span the protagonist cell, size differences, hero+sidebar asymmetry).
62
62
  - Filling every slot / uniform gaps everywhere → leave whitespace; group by proximity (tight within a group, loose between groups).
63
63
 
64
+ **Machine-enforced banned vocabulary** (a linter, `check:slop`, fails builds that use these in demo copy — say concrete actions/numbers instead):
65
+ - Hype adjectives/verbs: seamless, powerful, effortless, cutting-edge, next-gen, next-generation, revolutionary, game-changing, state-of-the-art, world-class, best-in-class, unparalleled, lightning-fast, blazing-fast, supercharge, innovative, disruptive, harness, leverage, elevate, empower, reimagine, unleash, delight, magical, 圧倒的, 革新的, 次世代, 究極, 最先端.
66
+ - Hype phrases: "in today's digital landscape", "built for the modern team", "supercharge your", "unleash your", "reimagine the way", "experience the power of", "innovative solutions".
67
+ - Stock placeholder names: John Doe, Jane Doe, John Smith, Jane Smith, Lorem Ipsum, Example User, Acme (a realistic example name in an input placeholder is fine).
68
+
64
69
  **Must rules:**
65
70
  1. One visual protagonist per screen (jump in size/weight/color creates the entry point).
66
71
  2. Contrast density: hero/showcase sparse, data regions (tables/lists) dense. Uniform "medium density" reads as AI.
@@ -610,6 +615,7 @@ export function RenameWorkspace() {
610
615
  - `children: React.ReactNode` (required) — Child content
611
616
  - **BentoGrid** — Modern card grid
612
617
  - `children: React.ReactNode` — Grid items (typically BentoGrid.Item elements)
618
+ - `rowHeight: string` — Fixed height of each grid row (`grid-auto-rows`). Any CSS length; defaults to `18rem`. Lower it when tiles hold compact content so they don't read as mostly-empty panels.
613
619
  - **Box** — Polymorphic box
614
620
  - `as: C` — The component used for the root node. Either a string to use a HTML element or a component.
615
621
  - `asChild: boolean` = false — If true, the box will be rendered as its child, merging its props onto that child.
package/dist/llms.txt CHANGED
@@ -4,7 +4,7 @@
4
4
 
5
5
  ## What this is
6
6
 
7
- **wimui** v0.4.0 — a React 19 component library: 216 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
7
+ **wimui** v0.5.0 — a React 19 component library: 216 documented components across 10 categories, with design tokens, dark mode, i18n (en/ja/pt-BR) and WAI-ARIA compliant a11y. Peer deps: react ^19, react-dom ^19 (plus optional peers for specific components — see package.json).
8
8
 
9
9
  ## Install & required setup
10
10
 
@@ -55,12 +55,17 @@ Single components are judged by state/a11y/token compliance. **Composed screens*
55
55
  - Emoji used as UI icons (☰ ★ ✓) → use `src/icon/` components. (Emoji as functional markers in docs/README is fine; as UI icons it is not.)
56
56
  - Skeleton used as anything but loading (fake screenshots) → real-looking content or an actual mini UI.
57
57
  - Every section center-aligned → default to left-aligned; at most one centered section per page.
58
- - Round numbers ("1000+", "99%") + generic copy ("Get started", "seamless/powerful/effortless") → jagged realistic numbers (4,281) and product-specific voice.
58
+ - Round numbers ("1000+", "99%") + generic copy ("Get started") → jagged realistic numbers (4,281) and product-specific voice.
59
59
  - Sequential/alphabetical dummy names (Alice/Bob/Charlie, User 1/2) → culturally diverse, unordered, real-feeling names.
60
60
  - Rainbow color-per-category → color carries state only (success/warning/danger); everything else neutral.
61
61
  - Perfectly even grids (2×2, 3×3 all same size) → break the grid (span the protagonist cell, size differences, hero+sidebar asymmetry).
62
62
  - Filling every slot / uniform gaps everywhere → leave whitespace; group by proximity (tight within a group, loose between groups).
63
63
 
64
+ **Machine-enforced banned vocabulary** (a linter, `check:slop`, fails builds that use these in demo copy — say concrete actions/numbers instead):
65
+ - Hype adjectives/verbs: seamless, powerful, effortless, cutting-edge, next-gen, next-generation, revolutionary, game-changing, state-of-the-art, world-class, best-in-class, unparalleled, lightning-fast, blazing-fast, supercharge, innovative, disruptive, harness, leverage, elevate, empower, reimagine, unleash, delight, magical, 圧倒的, 革新的, 次世代, 究極, 最先端.
66
+ - Hype phrases: "in today's digital landscape", "built for the modern team", "supercharge your", "unleash your", "reimagine the way", "experience the power of", "innovative solutions".
67
+ - Stock placeholder names: John Doe, Jane Doe, John Smith, Jane Smith, Lorem Ipsum, Example User, Acme (a realistic example name in an input placeholder is fine).
68
+
64
69
  **Must rules:**
65
70
  1. One visual protagonist per screen (jump in size/weight/color creates the entry point).
66
71
  2. Contrast density: hero/showcase sparse, data regions (tables/lists) dense. Uniform "medium density" reads as AI.
package/dist/rhf/zod.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  /**
2
2
  * Re-export `@hookform/resolvers/zod` so apps can wire zod schemas without an extra import path.
3
- * Requires optional peers: `zod` (^4), `@hookform/resolvers` (^5.1), `react-hook-form` (^7.43).
3
+ * Requires optional peers: `zod` (^3.25 || ^4), `@hookform/resolvers` (^5.1), `react-hook-form` (^7.43).
4
4
  * See README「サポート行列(peer)」.
5
5
  */
6
6
  export { zodResolver } from '@hookform/resolvers/zod';