@waveinno/ui 0.6.0 → 0.7.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/CHANGELOG.md CHANGED
@@ -6,6 +6,19 @@ prop, major = a renamed or removed export or prop.
6
6
 
7
7
  ## Unreleased
8
8
 
9
+ ## 0.7.0 — 2026-10-03
10
+
11
+ - **Licence: MIT.** `@waveinno/ui` is now MIT-licensed (© WAVEINNO): free to use in any project, commercial or not.
12
+ It was `UNLICENSED` before. The Pro blocks and templates are sold separately under the WAVEINNO UI Pro Licence.
13
+ - Input: a text adornment (`leading="+880"`, `trailing="kg"`) pads the field by its length, so the value never runs
14
+ under it. Icons keep the old padding.
15
+ - Select: a leading icon in `SelectTrigger` sits beside the value instead of pushing it to the middle.
16
+ - Docs site, **Blocks**: 91 blocks in 18 categories, at least 2 free and 3 Pro in each, from navbars and heroes to
17
+ dashboards, onboarding tours and order tracking. Category pages have a sidebar of every category, an All / Free / Pro
18
+ filter, numbered previews and the way to the next category. Free and Pro live in separate folders
19
+ (`playground/blocks/free`, `playground/blocks/pro`), and `npm run check` fails if a file and its tier disagree.
20
+ - Docs site: large headings, prices and stats no longer overlap the line below; text on dark cards is readable.
21
+
9
22
  ## 0.6.0 — 2026-10-02
10
23
 
11
24
  - **OrgChart** is smooth: opening or closing a team never moves the person clicked (the chart is re-anchored
package/LICENSE CHANGED
@@ -1,5 +1,28 @@
1
- Copyright (c) 2026 WAVEINNO. All rights reserved.
1
+ MIT License
2
2
 
3
- This package is published for use in WAVEINNO products and by parties WAVEINNO
4
- has authorised. No licence to copy, modify or redistribute it is granted
5
- without written permission from WAVEINNO (info@waveinno.com).
3
+ Copyright (c) 2026 WAVEINNO
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.
22
+
23
+ ---
24
+
25
+ This licence covers the @waveinno/ui package: everything published to npm,
26
+ and the free blocks in playground/blocks/free. The Pro blocks and templates
27
+ (playground/blocks/pro) are not covered; they are licensed separately under
28
+ the WAVEINNO UI Pro Licence in playground/blocks/pro/LICENSE.md.
package/README.md CHANGED
@@ -80,4 +80,6 @@ Adding or changing a component: see [CONTRIBUTING.md](CONTRIBUTING.md).
80
80
 
81
81
  ## Licence
82
82
 
83
- Proprietary — © WAVEINNO. See [LICENSE](LICENSE).
83
+ MIT © WAVEINNO. See [LICENSE](LICENSE). The library and the free blocks are free to use in any project, commercial or not.
84
+
85
+ The Pro blocks and templates are sold separately under the [WAVEINNO UI Pro Licence](playground/blocks/pro/LICENSE.md).
@@ -1 +1 @@
1
- "use client";import{jsx as a,jsxs as g}from"react/jsx-runtime";import*as i from"react";import{cn as d}from"../../lib/utils.js";const l="h-ctl w-full rounded-ctl border border-border2 bg-raised px-3 text-[13px] text-text placeholder:text-placeholder outline-none transition-[border-color,box-shadow] duration-150 focus:border-primary focus:ring-2 focus:ring-primary/20 disabled:cursor-not-allowed disabled:bg-hover disabled:text-muted aria-[invalid=true]:border-danger aria-[invalid=true]:ring-danger/20",u={default:"",error:"border-danger bg-danger-subtle/30 focus:border-danger focus:ring-danger/20 wm-shake",warning:"border-warning focus:border-warning focus:ring-warning/20",success:"border-success focus:border-success focus:ring-success/20"};function p({leading:r,trailing:e,children:t}){return!r&&!e?t:g("div",{className:"relative w-full",children:[r?a("span",{className:"pointer-events-none absolute left-3 top-1/2 flex -translate-y-1/2 items-center text-[13px] text-muted [&_svg]:size-4",children:r}):null,t,e?a("span",{className:"absolute right-2.5 top-1/2 flex -translate-y-1/2 items-center text-[13px] text-muted [&_svg]:size-4",children:e}):null]})}const f=i.forwardRef(({className:r,type:e="text",state:t="default",leading:n,trailing:s,...o},c)=>a(p,{leading:n,trailing:s,children:a("input",{ref:c,type:e,"aria-invalid":t==="error"?!0:o["aria-invalid"],className:d(l,u[t],n?"pl-9":null,s?"pr-10":null,r),...o})}));f.displayName="Input";const x=i.forwardRef(({className:r,state:e="default",...t},n)=>a("textarea",{ref:n,"aria-invalid":e==="error"?!0:t["aria-invalid"],className:d(l,"h-auto min-h-20 resize-y py-2 leading-5",u[e],r),...t}));x.displayName="Textarea";export{f as Input,x as Textarea,l as inputClass};
1
+ "use client";import{jsx as n,jsxs as m}from"react/jsx-runtime";import*as i from"react";import{cn as o}from"../../lib/utils.js";const l="h-ctl w-full rounded-ctl border border-border2 bg-raised px-3 text-[13px] text-text placeholder:text-placeholder outline-none transition-[border-color,box-shadow] duration-150 focus:border-primary focus:ring-2 focus:ring-primary/20 disabled:cursor-not-allowed disabled:bg-hover disabled:text-muted aria-[invalid=true]:border-danger aria-[invalid=true]:ring-danger/20",u={default:"",error:"border-danger bg-danger-subtle/30 focus:border-danger focus:ring-danger/20 wm-shake",warning:"border-warning focus:border-warning focus:ring-warning/20",success:"border-success focus:border-success focus:ring-success/20"};function g({leading:r,trailing:e,children:t}){return!r&&!e?t:m("div",{className:"relative w-full",children:[r?n("span",{className:"pointer-events-none absolute left-3 top-1/2 flex -translate-y-1/2 items-center text-[13px] text-muted [&_svg]:size-4",children:r}):null,t,e?n("span",{className:"absolute right-2.5 top-1/2 flex -translate-y-1/2 items-center text-[13px] text-muted [&_svg]:size-4",children:e}):null]})}const x=i.forwardRef(({className:r,type:e="text",state:t="default",leading:a,trailing:s,style:p,...d},f)=>n(g,{leading:a,trailing:s,children:n("input",{ref:f,type:e,"aria-invalid":t==="error"?!0:d["aria-invalid"],className:o(l,u[t],a?"pl-9":null,s?"pr-10":null,r),style:{...c("paddingLeft",a),...c("paddingRight",s),...p},...d})}));function c(r,e){if(typeof e!="string"&&typeof e!="number")return;const t=String(e).length;return t>1?{[r]:`calc(${t}ch + 20px)`}:void 0}x.displayName="Input";const b=i.forwardRef(({className:r,state:e="default",...t},a)=>n("textarea",{ref:a,"aria-invalid":e==="error"?!0:t["aria-invalid"],className:o(l,"h-auto min-h-20 resize-y py-2 leading-5",u[e],r),...t}));b.displayName="Textarea";export{x as Input,b as Textarea,l as inputClass};
@@ -1 +1 @@
1
- "use client";import{jsx as t,jsxs as n}from"react/jsx-runtime";import*as e from"@radix-ui/react-select";import{Check as s,ChevronDown as m}from"lucide-react";import*as l from"react";import{cn as c}from"../../lib/utils.js";const g=e.Root,b=e.Group,u=e.Value,d=l.forwardRef(({className:o,children:r,...i},a)=>n(e.Trigger,{ref:a,className:c("flex h-ctl w-full cursor-pointer items-center justify-between gap-2 rounded-ctl border border-border2 bg-raised px-3 text-[13px] text-text outline-none transition-[border-color,box-shadow] data-[placeholder]:text-placeholder focus:border-primary focus:ring-2 focus:ring-primary/20 disabled:cursor-not-allowed disabled:bg-hover disabled:text-muted",o),...i,children:[r,t(e.Icon,{asChild:!0,children:t(m,{className:"size-4 shrink-0 text-muted"})})]}));d.displayName="SelectTrigger";const f=l.forwardRef(({className:o,children:r,position:i="popper",...a},p)=>t(e.Portal,{children:t(e.Content,{ref:p,"data-pop":"",position:i,sideOffset:6,className:c("z-50 max-h-72 min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded-dlg border border-border bg-raised p-1 shadow-elev3",o),...a,children:t(e.Viewport,{children:r})})}));f.displayName="SelectContent";const x=l.forwardRef(({className:o,children:r,...i},a)=>n(e.Item,{ref:a,className:c("relative flex cursor-pointer select-none items-center rounded-ctl py-2 pl-2.5 pr-8 text-[13px] text-body outline-none data-[highlighted]:bg-hover data-[highlighted]:text-text data-[state=checked]:text-primary data-[state=checked]:font-medium data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),...i,children:[t(e.ItemText,{children:r}),t(e.ItemIndicator,{className:"absolute right-2.5",children:t(s,{className:"size-3.5",strokeWidth:3})})]}));x.displayName="SelectItem";const v=({className:o,...r})=>t(e.Label,{className:c("ov px-2.5 pb-1 pt-2",o),...r}),P=({className:o,...r})=>t(e.Separator,{className:c("-mx-1 my-1 h-px bg-border",o),...r});export{g as Select,f as SelectContent,b as SelectGroup,x as SelectItem,v as SelectLabel,P as SelectSeparator,d as SelectTrigger,u as SelectValue};
1
+ "use client";import{jsx as t,jsxs as n}from"react/jsx-runtime";import*as e from"@radix-ui/react-select";import{Check as p,ChevronDown as m}from"lucide-react";import*as l from"react";import{cn as c}from"../../lib/utils.js";const S=e.Root,v=e.Group,u=e.Value,d=l.forwardRef(({className:o,children:r,...i},a)=>n(e.Trigger,{ref:a,className:c("flex h-ctl w-full cursor-pointer items-center justify-between gap-2 rounded-ctl border border-border2 bg-raised px-3 text-[13px] text-text outline-none transition-[border-color,box-shadow] data-[placeholder]:text-placeholder focus:border-primary focus:ring-2 focus:ring-primary/20 disabled:cursor-not-allowed disabled:bg-hover disabled:text-muted",o),...i,children:[t("span",{className:"flex min-w-0 flex-1 items-center gap-2 text-left [&>span]:truncate [&>svg]:size-4 [&>svg]:shrink-0 [&>svg]:text-muted",children:r}),t(e.Icon,{asChild:!0,children:t(m,{className:"size-4 shrink-0 text-muted"})})]}));d.displayName="SelectTrigger";const f=l.forwardRef(({className:o,children:r,position:i="popper",...a},s)=>t(e.Portal,{children:t(e.Content,{ref:s,"data-pop":"",position:i,sideOffset:6,className:c("z-50 max-h-72 min-w-[var(--radix-select-trigger-width)] overflow-hidden rounded-dlg border border-border bg-raised p-1 shadow-elev3",o),...a,children:t(e.Viewport,{children:r})})}));f.displayName="SelectContent";const x=l.forwardRef(({className:o,children:r,...i},a)=>n(e.Item,{ref:a,className:c("relative flex cursor-pointer select-none items-center rounded-ctl py-2 pl-2.5 pr-8 text-[13px] text-body outline-none data-[highlighted]:bg-hover data-[highlighted]:text-text data-[state=checked]:text-primary data-[state=checked]:font-medium data-[disabled]:pointer-events-none data-[disabled]:opacity-50",o),...i,children:[t(e.ItemText,{children:r}),t(e.ItemIndicator,{className:"absolute right-2.5",children:t(p,{className:"size-3.5",strokeWidth:3})})]}));x.displayName="SelectItem";const b=({className:o,...r})=>t(e.Label,{className:c("ov px-2.5 pb-1 pt-2",o),...r}),P=({className:o,...r})=>t(e.Separator,{className:c("-mx-1 my-1 h-px bg-border",o),...r});export{S as Select,f as SelectContent,v as SelectGroup,x as SelectItem,b as SelectLabel,P as SelectSeparator,d as SelectTrigger,u as SelectValue};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@waveinno/ui",
3
- "version": "0.6.0",
3
+ "version": "0.7.0",
4
4
  "description": "WAVEINNO design system — tokens, shell, primitives and patterns shared by every WAVEINNO product",
5
5
  "keywords": [
6
6
  "waveinno",
@@ -10,7 +10,7 @@
10
10
  "tailwindcss",
11
11
  "radix-ui"
12
12
  ],
13
- "license": "UNLICENSED",
13
+ "license": "MIT",
14
14
  "author": "WAVEINNO <info@waveinno.com>",
15
15
  "homepage": "https://github.com/waveinno/waveinno-ui#readme",
16
16
  "repository": {
@@ -41,6 +41,7 @@
41
41
  "files": [
42
42
  "dist",
43
43
  "README.md",
44
+ "LICENSE",
44
45
  "CHANGELOG.md"
45
46
  ],
46
47
  "workspaces": [