@treeal/ds 0.1.9 → 0.2.1

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 (90) hide show
  1. package/dist/assets/style.css +1 -1
  2. package/dist/components/Icon/Icon.d.ts +20 -0
  3. package/dist/components/Icon/Icon.d.ts.map +1 -0
  4. package/dist/components/Icon/index.d.ts +3 -0
  5. package/dist/components/Icon/index.d.ts.map +1 -0
  6. package/dist/components/index.d.ts +2 -0
  7. package/dist/components/index.d.ts.map +1 -1
  8. package/dist/index.cjs.js +1 -1
  9. package/dist/index.cjs10.js +1 -1
  10. package/dist/index.cjs10.js.map +1 -1
  11. package/dist/index.cjs11.js +1 -1
  12. package/dist/index.cjs11.js.map +1 -1
  13. package/dist/index.cjs12.js +1 -1
  14. package/dist/index.cjs12.js.map +1 -1
  15. package/dist/index.cjs13.js +1 -1
  16. package/dist/index.cjs13.js.map +1 -1
  17. package/dist/index.cjs14.js +1 -1
  18. package/dist/index.cjs14.js.map +1 -1
  19. package/dist/index.cjs15.js +1 -1
  20. package/dist/index.cjs15.js.map +1 -1
  21. package/dist/index.cjs16.js +1 -1
  22. package/dist/index.cjs16.js.map +1 -1
  23. package/dist/index.cjs17.js +1 -1
  24. package/dist/index.cjs17.js.map +1 -1
  25. package/dist/index.cjs18.js +1 -1
  26. package/dist/index.cjs19.js +1 -1
  27. package/dist/index.cjs20.js +1 -1
  28. package/dist/index.cjs21.js +1 -1
  29. package/dist/index.cjs22.js +1 -1
  30. package/dist/index.cjs23.js +1 -1
  31. package/dist/index.cjs24.js +1 -1
  32. package/dist/index.cjs25.js +1 -1
  33. package/dist/index.cjs26.js +1 -1
  34. package/dist/index.cjs27.js +1 -1
  35. package/dist/index.cjs28.js +1 -1
  36. package/dist/index.cjs29.js +2 -0
  37. package/dist/index.cjs29.js.map +1 -0
  38. package/dist/index.cjs5.js +1 -1
  39. package/dist/index.cjs6.js +1 -1
  40. package/dist/index.cjs7.js +1 -1
  41. package/dist/index.cjs8.js +1 -1
  42. package/dist/index.cjs9.js +1 -1
  43. package/dist/index.cjs9.js.map +1 -1
  44. package/dist/index.esm.js +22 -20
  45. package/dist/index.esm.js.map +1 -1
  46. package/dist/index.esm10.js +131 -70
  47. package/dist/index.esm10.js.map +1 -1
  48. package/dist/index.esm11.js +65 -225
  49. package/dist/index.esm11.js.map +1 -1
  50. package/dist/index.esm12.js +221 -160
  51. package/dist/index.esm12.js.map +1 -1
  52. package/dist/index.esm13.js +171 -61
  53. package/dist/index.esm13.js.map +1 -1
  54. package/dist/index.esm14.js +58 -84
  55. package/dist/index.esm14.js.map +1 -1
  56. package/dist/index.esm15.js +80 -25
  57. package/dist/index.esm15.js.map +1 -1
  58. package/dist/index.esm16.js +30 -214
  59. package/dist/index.esm16.js.map +1 -1
  60. package/dist/index.esm17.js +219 -39
  61. package/dist/index.esm17.js.map +1 -1
  62. package/dist/index.esm18.js +21 -59
  63. package/dist/index.esm18.js.map +1 -1
  64. package/dist/index.esm19.js +102 -20
  65. package/dist/index.esm19.js.map +1 -1
  66. package/dist/index.esm20.js +22 -22
  67. package/dist/index.esm21.js +20 -22
  68. package/dist/index.esm21.js.map +1 -1
  69. package/dist/index.esm22.js +60 -12
  70. package/dist/index.esm22.js.map +1 -1
  71. package/dist/index.esm23.js +38 -40
  72. package/dist/index.esm23.js.map +1 -1
  73. package/dist/index.esm24.js +60 -22
  74. package/dist/index.esm24.js.map +1 -1
  75. package/dist/index.esm25.js +12 -60
  76. package/dist/index.esm25.js.map +1 -1
  77. package/dist/index.esm26.js +40 -22
  78. package/dist/index.esm26.js.map +1 -1
  79. package/dist/index.esm27.js +28 -28
  80. package/dist/index.esm28.js +22 -102
  81. package/dist/index.esm28.js.map +1 -1
  82. package/dist/index.esm29.js +26 -0
  83. package/dist/index.esm29.js.map +1 -0
  84. package/dist/index.esm5.js +1 -1
  85. package/dist/index.esm6.js +1 -1
  86. package/dist/index.esm7.js +1 -1
  87. package/dist/index.esm8.js +1 -1
  88. package/dist/index.esm9.js +25 -132
  89. package/dist/index.esm9.js.map +1 -1
  90. package/package.json +31 -34
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),e=require("./index.cjs20.js");function m({variant:l="outline",size:u="sm",iconLeft:s,iconRight:n,disabled:a,className:o,children:r,...c}){const i=a?"disabled":l,d=[e.default.button,e.default[u],e.default[i],o].filter(Boolean).join(" ");return t.jsxs("button",{className:d,disabled:a,"aria-disabled":a,...c,children:[s&&t.jsx("span",{className:e.default.icon,children:s}),t.jsx("span",{className:e.default.label,children:r}),n&&t.jsx("span",{className:e.default.icon,children:n})]})}exports.Button=m;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),e=require("./index.cjs18.js");function m({variant:l="outline",size:u="sm",iconLeft:s,iconRight:n,disabled:a,className:o,children:r,...c}){const i=a?"disabled":l,d=[e.default.button,e.default[u],e.default[i],o].filter(Boolean).join(" ");return t.jsxs("button",{className:d,disabled:a,"aria-disabled":a,...c,children:[s&&t.jsx("span",{className:e.default.icon,children:s}),t.jsx("span",{className:e.default.label,children:r}),n&&t.jsx("span",{className:e.default.icon,children:n})]})}exports.Button=m;
2
2
  //# sourceMappingURL=index.cjs7.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("./index.cjs18.js");function h(){return e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[e.jsx("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),e.jsx("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})]})}function v(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[e.jsx("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),e.jsx("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),e.jsx("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]})}function N(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:e.jsx("path",{d:"M4 6l4 4 4-4"})})}function j({workspaceName:s="Workspace",workspaceAccount:l="Conta Atual",fullWidth:t=!1}){return e.jsxs("button",{type:"button",className:[a.default.workspace,t?a.default.workspaceFull:""].filter(Boolean).join(" "),"aria-label":`Trocar workspace: ${s}`,children:[e.jsxs("div",{className:a.default.workspaceLeft,children:[e.jsx("span",{className:a.default.statusDot,"aria-hidden":"true"}),e.jsxs("div",{className:a.default.workspaceCol,children:[e.jsx("p",{className:a.default.workspaceAccount,children:l}),e.jsx("p",{className:a.default.workspaceName,children:s})]})]}),e.jsx("span",{className:a.default.workspaceArrow,children:e.jsx(N,{})})]})}function p({userName:s,userRole:l,userAvatar:t}){const n=s?s.split(" ").slice(0,2).map(i=>i[0]).join("").toUpperCase():"?";return e.jsxs("div",{className:a.default.navUser,children:[e.jsx("div",{className:a.default.avatar,children:t?e.jsx("img",{src:t,alt:s??"Avatar",className:a.default.avatarImg}):e.jsx("span",{className:a.default.avatarInitials,children:n})}),(s||l)&&e.jsxs("div",{className:a.default.userText,children:[s&&e.jsx("p",{className:a.default.userName,children:s}),l&&e.jsx("p",{className:a.default.userRole,children:l})]})]})}function w({variant:s="Default",pageTitle:l="Portal de Gestão",workspaceName:t,workspaceAccount:n,userName:i,userRole:c,userAvatar:u,onMenuToggle:b,onNotifications:f,primaryAction:o,className:m}){const r=s==="Default",x=s==="Mobile",d=s==="MobileOpen",k=[a.default.header,r?a.default.variantDefault:"",x?a.default.variantMobile:"",d?a.default.variantMobileOpen:"",m].filter(Boolean).join(" ");return e.jsxs("header",{className:k,children:[!d&&e.jsx("h1",{className:[a.default.pageTitle,r?a.default.pageTitleDesktop:a.default.pageTitleMobile].join(" "),children:l}),r&&e.jsxs("div",{className:a.default.actions,children:[e.jsx(j,{workspaceName:t,workspaceAccount:n}),e.jsx("button",{type:"button",className:a.default.bellBtn,onClick:f,"aria-label":"Notificações",children:e.jsx(h,{})}),e.jsx(p,{userName:i,userRole:c,userAvatar:u})]}),x&&e.jsxs("div",{className:a.default.actions,children:[e.jsx("button",{type:"button",className:a.default.bellBtn,onClick:f,"aria-label":"Notificações",children:e.jsx(h,{})}),e.jsxs("button",{type:"button",className:a.default.menuBtn,onClick:b,"aria-label":"Abrir menu","aria-expanded":!1,children:[e.jsx("span",{className:a.default.menuIcon,children:e.jsx(v,{})}),"Menu"]})]}),d&&e.jsxs("div",{className:[a.default.actions,a.default.actionsMobileOpen].join(" "),children:[o&&e.jsx("button",{type:"button",className:a.default.ctaBtn,onClick:o.onClick,children:o.label}),e.jsxs("div",{className:a.default.mainActions,children:[e.jsx(j,{workspaceName:t,workspaceAccount:n,fullWidth:!0}),e.jsx(p,{userName:i,userRole:c,userAvatar:u})]})]})]})}exports.Header=w;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),a=require("./index.cjs22.js");function h(){return e.jsxs("svg",{width:"20",height:"20",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:[e.jsx("path",{d:"M18 8A6 6 0 0 0 6 8c0 7-3 9-3 9h18s-3-2-3-9"}),e.jsx("path",{d:"M13.73 21a2 2 0 0 1-3.46 0"})]})}function v(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none",stroke:"currentColor",strokeWidth:"2",strokeLinecap:"round","aria-hidden":"true",children:[e.jsx("line",{x1:"4",y1:"6",x2:"20",y2:"6"}),e.jsx("line",{x1:"4",y1:"12",x2:"20",y2:"12"}),e.jsx("line",{x1:"4",y1:"18",x2:"20",y2:"18"})]})}function N(){return e.jsx("svg",{width:"16",height:"16",viewBox:"0 0 16 16",fill:"none",stroke:"currentColor",strokeWidth:"1.5",strokeLinecap:"round",strokeLinejoin:"round","aria-hidden":"true",children:e.jsx("path",{d:"M4 6l4 4 4-4"})})}function j({workspaceName:s="Workspace",workspaceAccount:l="Conta Atual",fullWidth:t=!1}){return e.jsxs("button",{type:"button",className:[a.default.workspace,t?a.default.workspaceFull:""].filter(Boolean).join(" "),"aria-label":`Trocar workspace: ${s}`,children:[e.jsxs("div",{className:a.default.workspaceLeft,children:[e.jsx("span",{className:a.default.statusDot,"aria-hidden":"true"}),e.jsxs("div",{className:a.default.workspaceCol,children:[e.jsx("p",{className:a.default.workspaceAccount,children:l}),e.jsx("p",{className:a.default.workspaceName,children:s})]})]}),e.jsx("span",{className:a.default.workspaceArrow,children:e.jsx(N,{})})]})}function p({userName:s,userRole:l,userAvatar:t}){const n=s?s.split(" ").slice(0,2).map(i=>i[0]).join("").toUpperCase():"?";return e.jsxs("div",{className:a.default.navUser,children:[e.jsx("div",{className:a.default.avatar,children:t?e.jsx("img",{src:t,alt:s??"Avatar",className:a.default.avatarImg}):e.jsx("span",{className:a.default.avatarInitials,children:n})}),(s||l)&&e.jsxs("div",{className:a.default.userText,children:[s&&e.jsx("p",{className:a.default.userName,children:s}),l&&e.jsx("p",{className:a.default.userRole,children:l})]})]})}function w({variant:s="Default",pageTitle:l="Portal de Gestão",workspaceName:t,workspaceAccount:n,userName:i,userRole:c,userAvatar:u,onMenuToggle:b,onNotifications:f,primaryAction:o,className:m}){const r=s==="Default",x=s==="Mobile",d=s==="MobileOpen",k=[a.default.header,r?a.default.variantDefault:"",x?a.default.variantMobile:"",d?a.default.variantMobileOpen:"",m].filter(Boolean).join(" ");return e.jsxs("header",{className:k,children:[!d&&e.jsx("h1",{className:[a.default.pageTitle,r?a.default.pageTitleDesktop:a.default.pageTitleMobile].join(" "),children:l}),r&&e.jsxs("div",{className:a.default.actions,children:[e.jsx(j,{workspaceName:t,workspaceAccount:n}),e.jsx("button",{type:"button",className:a.default.bellBtn,onClick:f,"aria-label":"Notificações",children:e.jsx(h,{})}),e.jsx(p,{userName:i,userRole:c,userAvatar:u})]}),x&&e.jsxs("div",{className:a.default.actions,children:[e.jsx("button",{type:"button",className:a.default.bellBtn,onClick:f,"aria-label":"Notificações",children:e.jsx(h,{})}),e.jsxs("button",{type:"button",className:a.default.menuBtn,onClick:b,"aria-label":"Abrir menu","aria-expanded":!1,children:[e.jsx("span",{className:a.default.menuIcon,children:e.jsx(v,{})}),"Menu"]})]}),d&&e.jsxs("div",{className:[a.default.actions,a.default.actionsMobileOpen].join(" "),children:[o&&e.jsx("button",{type:"button",className:a.default.ctaBtn,onClick:o.onClick,children:o.label}),e.jsxs("div",{className:a.default.mainActions,children:[e.jsx(j,{workspaceName:t,workspaceAccount:n,fullWidth:!0}),e.jsx(p,{userName:i,userRole:c,userAvatar:u})]})]})]})}exports.Header=w;
2
2
  //# sourceMappingURL=index.cjs8.js.map
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),h=require("react"),r=require("./index.cjs23.js");function D(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("path",{d:"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("polyline",{points:"22,6 12,13 2,6",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})}function A(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("circle",{cx:"11",cy:"11",r:"7",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"}),e.jsx("path",{d:"M16.5 16.5L21 21",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})]})}function R(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("rect",{x:"3",y:"4",width:"18",height:"18",rx:"2",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M16 2v4M8 2v4M3 10h18",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})}function q(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("rect",{x:"5",y:"11",width:"14",height:"11",rx:"2",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M8 11V7a4 4 0 0 1 8 0v4",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"})]})}function O(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("path",{d:"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("circle",{cx:"12",cy:"12",r:"3",stroke:"currentColor",strokeWidth:"1.75"})]})}function P(){return e.jsxs("svg",{width:"24",height:"24",viewBox:"0 0 24 24",fill:"none","aria-hidden":"true",children:[e.jsx("path",{d:"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round",strokeLinejoin:"round"}),e.jsx("path",{d:"M1 1l22 22",stroke:"currentColor",strokeWidth:"1.75",strokeLinecap:"round"})]})}function y({state:i="Default",size:m="md",inputType:t="text",label:x,placeholder:L,message:a,iconLabel:j,iconLeft:g,iconRight:b,value:k,onChange:C,onSearch:B,id:I,className:M,...o}){const W=h.useId(),d=I??W,[l,N]=h.useState(!1),[S,f]=h.useState(!1),c=i==="Disabled",u=i==="Error",E=t==="password"?l?"text":"password":t==="search"?"text":t==="date"?S||k?"date":"text":t,v=g??(t==="email"?e.jsx(D,{}):t==="password"?e.jsx(q,{}):void 0),w=b??(t==="password"?e.jsx("button",{type:"button",className:r.default.toggleBtn,onClick:()=>N(s=>!s),"aria-label":l?"Ocultar senha":"Mostrar senha",tabIndex:-1,children:l?e.jsx(O,{}):e.jsx(P,{})}):t==="date"?e.jsx(R,{}):t==="search"?e.jsx("button",{type:"button",className:r.default.searchBtn,onClick:B,"aria-label":"Buscar",tabIndex:-1,children:e.jsx(A,{})}):void 0),F=[r.default.field,m==="sm"?r.default.fieldSm:r.default.fieldMd,i==="Hover"?r.default.hover:"",i==="Active"?r.default.active:"",c?r.default.disabled:"",u?r.default.error:"",M].filter(Boolean).join(" ");return e.jsxs("div",{className:r.default.wrapper,children:[x&&e.jsxs("div",{className:r.default.labelRow,children:[e.jsx("label",{htmlFor:d,className:[r.default.label,c?r.default.labelDisabled:""].filter(Boolean).join(" "),children:x}),j&&e.jsx("span",{className:r.default.labelIcon,"aria-hidden":"true",children:j})]}),e.jsxs("div",{className:F,children:[v&&e.jsx("span",{className:r.default.icon,"aria-hidden":"true",children:v}),e.jsx("input",{id:d,type:E,className:r.default.input,placeholder:L,disabled:c,value:k,onChange:C,onFocus:t==="date"?s=>{var n;f(!0),(n=o.onFocus)==null||n.call(o,s)}:o.onFocus,onBlur:t==="date"?s=>{var n;f(!1),(n=o.onBlur)==null||n.call(o,s)}:o.onBlur,"aria-invalid":u,"aria-describedby":a?`${d}-message`:void 0,...o}),w&&e.jsx("span",{className:[r.default.icon,t==="search"||t==="password"?r.default.iconAction:""].filter(Boolean).join(" "),children:w})]}),a&&e.jsx("p",{id:`${d}-message`,className:[r.default.message,u?r.default.messageError:""].filter(Boolean).join(" "),children:a})]})}exports.Input=y;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c=require("react/jsx-runtime");function s({name:n,size:e=24,weight:o=400,fill:t=0,className:l,style:a,"aria-label":i,"aria-hidden":r}){return c.jsx("span",{className:["material-symbols-outlined",l].filter(Boolean).join(" "),style:{fontSize:e,"--icon-fill":t,"--icon-weight":o,"--icon-size":e,...a},"aria-label":i,"aria-hidden":r??(i?void 0:!0),children:n})}exports.Icon=s;
2
2
  //# sourceMappingURL=index.cjs9.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs9.js","sources":["../components/Input/Input.tsx"],"sourcesContent":["import React, { useId, useState } from 'react';\nimport styles from './Input.module.css';\n\nexport type InputState = 'Default' | 'Hover' | 'Active' | 'Disabled' | 'Error';\nexport type InputType = 'text' | 'email' | 'password' | 'search' | 'date';\nexport type InputSize = 'sm' | 'md';\n\n// ─── Built-in SVG icons ───────────────────────────────────────────────────────\n\nfunction IconEmail() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <polyline points=\"22,6 12,13 2,6\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n );\n}\n\nfunction IconSearch() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\"/>\n <path d=\"M16.5 16.5L21 21\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\"/>\n </svg>\n );\n}\n\nfunction IconCalendar() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M16 2v4M8 2v4M3 10h18\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n );\n}\n\nfunction IconLock() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"5\" y=\"11\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M8 11V7a4 4 0 0 1 8 0v4\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n );\n}\n\nfunction IconEye() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.75\"/>\n </svg>\n );\n}\n\nfunction IconEyeOff() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M1 1l22 22\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\"/>\n </svg>\n );\n}\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'type' | 'size'> {\n /** Visual/interaction state. Defaults to 'Default'. */\n state?: InputState;\n /** Size variant. sm = 36px height, md = 48px height. Defaults to 'md'. */\n size?: InputSize;\n /**\n * Semantic input type. Sets the correct HTML type and auto-adds icons.\n * - email → envelope icon left\n * - password → lock icon left + show/hide toggle right\n * - search → search icon left + green search button right\n * - date → calendar icon right\n */\n inputType?: InputType;\n /** Label text rendered above the field. */\n label?: string;\n placeholder?: string;\n /** Helper or error message rendered below the field. */\n message?: string;\n /** Info icon rendered beside the label. */\n iconLabel?: React.ReactNode;\n /** Icon rendered inside the field, left side (24×24 slot). */\n iconLeft?: React.ReactNode;\n /** Icon rendered inside the field, right side (24×24 slot). */\n iconRight?: React.ReactNode;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Called when search button is clicked (only for inputType=\"search\") */\n onSearch?: () => void;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport function Input({\n state = 'Default',\n size = 'md',\n inputType = 'text',\n label,\n placeholder,\n message,\n iconLabel,\n iconLeft,\n iconRight,\n value,\n onChange,\n onSearch,\n id: idProp,\n className,\n ...props\n}: InputProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [showPassword, setShowPassword] = useState(false);\n const [dateFocused, setDateFocused] = useState(false);\n\n const isDisabled = state === 'Disabled';\n const isError = state === 'Error';\n\n // ── Resolve HTML type ──────────────────────────────────────────────────────\n const htmlType = inputType === 'password'\n ? (showPassword ? 'text' : 'password')\n : inputType === 'search'\n ? 'text'\n : inputType === 'date'\n ? (dateFocused || !!value ? 'date' : 'text')\n : inputType;\n\n // ── Resolve built-in icons ─────────────────────────────────────────────────\n const resolvedIconLeft: React.ReactNode =\n iconLeft ??\n (inputType === 'email' ? <IconEmail /> :\n inputType === 'password' ? <IconLock /> :\n undefined);\n\n const resolvedIconRight: React.ReactNode =\n iconRight ??\n (inputType === 'password'\n ? (\n <button\n type=\"button\"\n className={styles.toggleBtn}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? 'Ocultar senha' : 'Mostrar senha'}\n tabIndex={-1}\n >\n {showPassword ? <IconEye /> : <IconEyeOff />}\n </button>\n )\n : inputType === 'date'\n ? <IconCalendar />\n : inputType === 'search'\n ? (\n <button\n type=\"button\"\n className={styles.searchBtn}\n onClick={onSearch}\n aria-label=\"Buscar\"\n tabIndex={-1}\n >\n <IconSearch />\n </button>\n )\n : undefined);\n\n const fieldClass = [\n styles.field,\n size === 'sm' ? styles.fieldSm : styles.fieldMd,\n state === 'Hover' ? styles.hover : '',\n state === 'Active' ? styles.active : '',\n isDisabled ? styles.disabled : '',\n isError ? styles.error : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={styles.wrapper}>\n {label && (\n <div className={styles.labelRow}>\n <label\n htmlFor={id}\n className={[styles.label, isDisabled ? styles.labelDisabled : '']\n .filter(Boolean)\n .join(' ')}\n >\n {label}\n </label>\n {iconLabel && (\n <span className={styles.labelIcon} aria-hidden=\"true\">\n {iconLabel}\n </span>\n )}\n </div>\n )}\n\n <div className={fieldClass}>\n {resolvedIconLeft && (\n <span className={styles.icon} aria-hidden=\"true\">\n {resolvedIconLeft}\n </span>\n )}\n <input\n id={id}\n type={htmlType}\n className={styles.input}\n placeholder={placeholder}\n disabled={isDisabled}\n value={value}\n onChange={onChange}\n onFocus={inputType === 'date' ? (e) => { setDateFocused(true); props.onFocus?.(e); } : props.onFocus}\n onBlur={inputType === 'date' ? (e) => { setDateFocused(false); props.onBlur?.(e); } : props.onBlur}\n aria-invalid={isError}\n aria-describedby={message ? `${id}-message` : undefined}\n {...props}\n />\n {resolvedIconRight && (\n <span className={[styles.icon, inputType === 'search' || inputType === 'password' ? styles.iconAction : ''].filter(Boolean).join(' ')}>\n {resolvedIconRight}\n </span>\n )}\n </div>\n\n {message && (\n <p\n id={`${id}-message`}\n className={[styles.message, isError ? styles.messageError : '']\n .filter(Boolean)\n .join(' ')}\n >\n {message}\n </p>\n )}\n </div>\n );\n}\n"],"names":["IconEmail","jsxs","jsx","IconSearch","IconCalendar","IconLock","IconEye","IconEyeOff","Input","state","size","inputType","label","placeholder","message","iconLabel","iconLeft","iconRight","value","onChange","onSearch","idProp","className","props","generatedId","useId","id","showPassword","setShowPassword","useState","dateFocused","setDateFocused","isDisabled","isError","htmlType","resolvedIconLeft","resolvedIconRight","styles","v","fieldClass","e","_a"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs9.js","sources":["../components/Icon/Icon.tsx"],"sourcesContent":["import React from 'react';\n\nexport type IconSize = 20 | 24 | 40 | 48;\nexport type IconWeight = 100 | 200 | 300 | 400 | 500 | 600 | 700;\n\nexport interface IconProps {\n /** Material Symbols icon name, e.g. \"search\", \"home\", \"arrow_back\" */\n name: string;\n /** Icon size in px. Defaults to 24. */\n size?: IconSize;\n /** Stroke weight. Defaults to 400. */\n weight?: IconWeight;\n /** Fill: 0 = outline, 1 = filled. Defaults to 0. */\n fill?: 0 | 1;\n /** Color via CSS currentColor. Apply color on the parent or pass className. */\n className?: string;\n style?: React.CSSProperties;\n 'aria-label'?: string;\n 'aria-hidden'?: boolean | 'true' | 'false';\n}\n\nexport function Icon({\n name,\n size = 24,\n weight = 400,\n fill = 0,\n className,\n style,\n 'aria-label': ariaLabel,\n 'aria-hidden': ariaHidden,\n}: IconProps) {\n return (\n <span\n className={['material-symbols-outlined', className].filter(Boolean).join(' ')}\n style={{\n fontSize: size,\n '--icon-fill': fill,\n '--icon-weight': weight,\n '--icon-size': size,\n ...style,\n } as React.CSSProperties}\n aria-label={ariaLabel}\n aria-hidden={ariaHidden ?? (ariaLabel ? undefined : true)}\n >\n {name}\n </span>\n );\n}\n"],"names":["Icon","name","size","weight","fill","className","style","ariaLabel","ariaHidden","jsx"],"mappings":"qHAqBO,SAASA,EAAK,CACnB,KAAAC,EACA,KAAAC,EAAO,GACP,OAAAC,EAAS,IACT,KAAAC,EAAO,EACP,UAAAC,EACA,MAAAC,EACA,aAAcC,EACd,cAAeC,CACjB,EAAc,CACZ,OACEC,EAAAA,IAAC,OAAA,CACC,UAAW,CAAC,4BAA6BJ,CAAS,EAAE,OAAO,OAAO,EAAE,KAAK,GAAG,EAC5E,MAAO,CACL,SAAUH,EACV,cAAeE,EACf,gBAAiBD,EACjB,cAAeD,EACf,GAAGI,CAAA,EAEL,aAAYC,EACZ,cAAaC,IAAeD,EAAY,OAAY,IAEnD,SAAAN,CAAA,CAAA,CAGP"}
package/dist/index.esm.js CHANGED
@@ -3,29 +3,31 @@ import { colors as e } from "./index.esm3.js";
3
3
  import { typography as m } from "./index.esm4.js";
4
4
  import { Alert as x } from "./index.esm5.js";
5
5
  import { BaseCheckRadio as l } from "./index.esm6.js";
6
- import { Button as i } from "./index.esm7.js";
7
- import { Header as c } from "./index.esm8.js";
8
- import { Input as g } from "./index.esm9.js";
9
- import { Modal as u } from "./index.esm10.js";
10
- import { Nav as B } from "./index.esm11.js";
11
- import { Pagination as b } from "./index.esm12.js";
12
- import { Select as v } from "./index.esm13.js";
13
- import { Steps as C } from "./index.esm14.js";
14
- import { Tab as I } from "./index.esm15.js";
15
- import { Upload as N } from "./index.esm16.js";
6
+ import { Button as c } from "./index.esm7.js";
7
+ import { Header as i } from "./index.esm8.js";
8
+ import { Icon as g } from "./index.esm9.js";
9
+ import { Input as u } from "./index.esm10.js";
10
+ import { Modal as B } from "./index.esm11.js";
11
+ import { Nav as S } from "./index.esm12.js";
12
+ import { Pagination as k } from "./index.esm13.js";
13
+ import { Select as A } from "./index.esm14.js";
14
+ import { Steps as H } from "./index.esm15.js";
15
+ import { Tab as N } from "./index.esm16.js";
16
+ import { Upload as R } from "./index.esm17.js";
16
17
  export {
17
18
  x as Alert,
18
19
  l as BaseCheckRadio,
19
- i as Button,
20
- c as Header,
21
- g as Input,
22
- u as Modal,
23
- B as Nav,
24
- b as Pagination,
25
- v as Select,
26
- C as Steps,
27
- I as Tab,
28
- N as Upload,
20
+ c as Button,
21
+ i as Header,
22
+ g as Icon,
23
+ u as Input,
24
+ B as Modal,
25
+ S as Nav,
26
+ k as Pagination,
27
+ A as Select,
28
+ H as Steps,
29
+ N as Tab,
30
+ R as Upload,
29
31
  e as colors,
30
32
  m as typography
31
33
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.esm.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;"}
@@ -1,78 +1,139 @@
1
- import { jsx as l, jsxs as r } from "react/jsx-runtime";
2
- import { useCallback as u, useEffect as v } from "react";
3
- import e from "./index.esm24.js";
4
- function k({
5
- isOpen: d,
6
- title: m,
7
- description: n,
8
- children: c,
9
- onClose: s,
10
- primaryAction: o,
11
- secondaryAction: t
1
+ import { jsxs as n, jsx as e } from "react/jsx-runtime";
2
+ import { useId as S, useState as x } from "react";
3
+ import r from "./index.esm26.js";
4
+ function z() {
5
+ return /* @__PURE__ */ n("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
6
+ /* @__PURE__ */ e("path", { d: "M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
7
+ /* @__PURE__ */ e("polyline", { points: "22,6 12,13 2,6", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" })
8
+ ] });
9
+ }
10
+ function H() {
11
+ return /* @__PURE__ */ n("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
12
+ /* @__PURE__ */ e("circle", { cx: "11", cy: "11", r: "7", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" }),
13
+ /* @__PURE__ */ e("path", { d: "M16.5 16.5L21 21", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" })
14
+ ] });
15
+ }
16
+ function O() {
17
+ return /* @__PURE__ */ n("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
18
+ /* @__PURE__ */ e("rect", { x: "3", y: "4", width: "18", height: "18", rx: "2", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
19
+ /* @__PURE__ */ e("path", { d: "M16 2v4M8 2v4M3 10h18", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" })
20
+ ] });
21
+ }
22
+ function P() {
23
+ return /* @__PURE__ */ n("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
24
+ /* @__PURE__ */ e("rect", { x: "5", y: "11", width: "14", height: "11", rx: "2", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
25
+ /* @__PURE__ */ e("path", { d: "M8 11V7a4 4 0 0 1 8 0v4", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" })
26
+ ] });
27
+ }
28
+ function R() {
29
+ return /* @__PURE__ */ n("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
30
+ /* @__PURE__ */ e("path", { d: "M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
31
+ /* @__PURE__ */ e("circle", { cx: "12", cy: "12", r: "3", stroke: "currentColor", strokeWidth: "1.75" })
32
+ ] });
33
+ }
34
+ function V() {
35
+ return /* @__PURE__ */ n("svg", { width: "24", height: "24", viewBox: "0 0 24 24", fill: "none", "aria-hidden": "true", children: [
36
+ /* @__PURE__ */ e("path", { d: "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
37
+ /* @__PURE__ */ e("path", { d: "M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round", strokeLinejoin: "round" }),
38
+ /* @__PURE__ */ e("path", { d: "M1 1l22 22", stroke: "currentColor", strokeWidth: "1.75", strokeLinecap: "round" })
39
+ ] });
40
+ }
41
+ function G({
42
+ state: d = "Default",
43
+ size: g = "md",
44
+ inputType: o = "text",
45
+ label: k,
46
+ placeholder: b,
47
+ message: c,
48
+ iconLabel: f,
49
+ iconLeft: C,
50
+ iconRight: B,
51
+ value: v,
52
+ onChange: j,
53
+ onSearch: I,
54
+ id: W,
55
+ className: M,
56
+ ...t
12
57
  }) {
13
- const i = u(
14
- (a) => {
15
- a.key === "Escape" && s();
16
- },
17
- [s]
18
- );
19
- if (v(() => {
20
- if (!d) return;
21
- document.addEventListener("keydown", i);
22
- const a = document.body.style.overflow;
23
- return document.body.style.overflow = "hidden", () => {
24
- document.removeEventListener("keydown", i), document.body.style.overflow = a;
25
- };
26
- }, [d, i]), !d) return null;
27
- const b = o || t;
28
- return /* @__PURE__ */ l(
29
- "div",
58
+ const N = S(), a = W ?? N, [l, E] = x(!1), [F, m] = x(!1), h = d === "Disabled", u = d === "Error", D = o === "password" ? l ? "text" : "password" : o === "search" ? "text" : o === "date" ? F || v ? "date" : "text" : o, w = C ?? (o === "email" ? /* @__PURE__ */ e(z, {}) : o === "password" ? /* @__PURE__ */ e(P, {}) : void 0), L = B ?? (o === "password" ? /* @__PURE__ */ e(
59
+ "button",
30
60
  {
31
- className: e.overlay,
32
- onClick: s,
33
- role: "presentation",
34
- children: /* @__PURE__ */ r(
35
- "div",
61
+ type: "button",
62
+ className: r.toggleBtn,
63
+ onClick: () => E((i) => !i),
64
+ "aria-label": l ? "Ocultar senha" : "Mostrar senha",
65
+ tabIndex: -1,
66
+ children: l ? /* @__PURE__ */ e(R, {}) : /* @__PURE__ */ e(V, {})
67
+ }
68
+ ) : o === "date" ? /* @__PURE__ */ e(O, {}) : o === "search" ? /* @__PURE__ */ e(
69
+ "button",
70
+ {
71
+ type: "button",
72
+ className: r.searchBtn,
73
+ onClick: I,
74
+ "aria-label": "Buscar",
75
+ tabIndex: -1,
76
+ children: /* @__PURE__ */ e(H, {})
77
+ }
78
+ ) : void 0), A = [
79
+ r.field,
80
+ g === "sm" ? r.fieldSm : r.fieldMd,
81
+ d === "Hover" ? r.hover : "",
82
+ d === "Active" ? r.active : "",
83
+ h ? r.disabled : "",
84
+ u ? r.error : "",
85
+ M
86
+ ].filter(Boolean).join(" ");
87
+ return /* @__PURE__ */ n("div", { className: r.wrapper, children: [
88
+ k && /* @__PURE__ */ n("div", { className: r.labelRow, children: [
89
+ /* @__PURE__ */ e(
90
+ "label",
36
91
  {
37
- className: e.modal,
38
- role: "dialog",
39
- "aria-modal": "true",
40
- "aria-labelledby": "modal-title",
41
- "aria-describedby": n ? "modal-desc" : void 0,
42
- onClick: (a) => a.stopPropagation(),
43
- children: [
44
- /* @__PURE__ */ r("div", { className: e.heading, children: [
45
- /* @__PURE__ */ l("p", { id: "modal-title", className: e.title, children: m }),
46
- n && /* @__PURE__ */ l("p", { id: "modal-desc", className: e.description, children: n })
47
- ] }),
48
- c && /* @__PURE__ */ l("div", { className: e.body, children: c }),
49
- b && /* @__PURE__ */ l("div", { className: e.actions, children: /* @__PURE__ */ r("div", { className: e.btns, children: [
50
- t && /* @__PURE__ */ l(
51
- "button",
52
- {
53
- type: "button",
54
- className: e.btnSecondary,
55
- onClick: t.onClick,
56
- children: t.label
57
- }
58
- ),
59
- o && /* @__PURE__ */ l(
60
- "button",
61
- {
62
- type: "button",
63
- className: e.btnPrimary,
64
- onClick: o.onClick,
65
- children: o.label
66
- }
67
- )
68
- ] }) })
69
- ]
92
+ htmlFor: a,
93
+ className: [r.label, h ? r.labelDisabled : ""].filter(Boolean).join(" "),
94
+ children: k
70
95
  }
71
- )
72
- }
73
- );
96
+ ),
97
+ f && /* @__PURE__ */ e("span", { className: r.labelIcon, "aria-hidden": "true", children: f })
98
+ ] }),
99
+ /* @__PURE__ */ n("div", { className: A, children: [
100
+ w && /* @__PURE__ */ e("span", { className: r.icon, "aria-hidden": "true", children: w }),
101
+ /* @__PURE__ */ e(
102
+ "input",
103
+ {
104
+ id: a,
105
+ type: D,
106
+ className: r.input,
107
+ placeholder: b,
108
+ disabled: h,
109
+ value: v,
110
+ onChange: j,
111
+ onFocus: o === "date" ? (i) => {
112
+ var s;
113
+ m(!0), (s = t.onFocus) == null || s.call(t, i);
114
+ } : t.onFocus,
115
+ onBlur: o === "date" ? (i) => {
116
+ var s;
117
+ m(!1), (s = t.onBlur) == null || s.call(t, i);
118
+ } : t.onBlur,
119
+ "aria-invalid": u,
120
+ "aria-describedby": c ? `${a}-message` : void 0,
121
+ ...t
122
+ }
123
+ ),
124
+ L && /* @__PURE__ */ e("span", { className: [r.icon, o === "search" || o === "password" ? r.iconAction : ""].filter(Boolean).join(" "), children: L })
125
+ ] }),
126
+ c && /* @__PURE__ */ e(
127
+ "p",
128
+ {
129
+ id: `${a}-message`,
130
+ className: [r.message, u ? r.messageError : ""].filter(Boolean).join(" "),
131
+ children: c
132
+ }
133
+ )
134
+ ] });
74
135
  }
75
136
  export {
76
- k as Modal
137
+ G as Input
77
138
  };
78
139
  //# sourceMappingURL=index.esm10.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.esm10.js","sources":["../components/Modal/Modal.tsx"],"sourcesContent":["import React, { useEffect, useCallback } from 'react';\nimport styles from './Modal.module.css';\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface ModalAction {\n label: string;\n onClick: () => void;\n}\n\nexport interface ModalProps {\n isOpen: boolean;\n title: string;\n description?: string;\n /** Customizable modal body content (e.g. radio/checkbox option list) */\n children?: React.ReactNode;\n onClose: () => void;\n primaryAction?: ModalAction;\n secondaryAction?: ModalAction;\n}\n\n// ─── Modal ────────────────────────────────────────────────────────────────────\n\nexport function Modal({\n isOpen,\n title,\n description,\n children,\n onClose,\n primaryAction,\n secondaryAction,\n}: ModalProps) {\n // Close on Escape key\n const handleKeyDown = useCallback(\n (e: KeyboardEvent) => {\n if (e.key === 'Escape') onClose();\n },\n [onClose],\n );\n\n useEffect(() => {\n if (!isOpen) return;\n document.addEventListener('keydown', handleKeyDown);\n // Prevent body scroll while modal is open\n const prev = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n return () => {\n document.removeEventListener('keydown', handleKeyDown);\n document.body.style.overflow = prev;\n };\n }, [isOpen, handleKeyDown]);\n\n if (!isOpen) return null;\n\n const hasActions = primaryAction || secondaryAction;\n\n return (\n <div\n className={styles.overlay}\n onClick={onClose}\n role=\"presentation\"\n >\n <div\n className={styles.modal}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby=\"modal-title\"\n aria-describedby={description ? 'modal-desc' : undefined}\n onClick={(e) => e.stopPropagation()}\n >\n {/* Heading */}\n <div className={styles.heading}>\n <p id=\"modal-title\" className={styles.title}>\n {title}\n </p>\n {description && (\n <p id=\"modal-desc\" className={styles.description}>\n {description}\n </p>\n )}\n </div>\n\n {/* Body */}\n {children && (\n <div className={styles.body}>\n {children}\n </div>\n )}\n\n {/* Actions */}\n {hasActions && (\n <div className={styles.actions}>\n <div className={styles.btns}>\n {secondaryAction && (\n <button\n type=\"button\"\n className={styles.btnSecondary}\n onClick={secondaryAction.onClick}\n >\n {secondaryAction.label}\n </button>\n )}\n {primaryAction && (\n <button\n type=\"button\"\n className={styles.btnPrimary}\n onClick={primaryAction.onClick}\n >\n {primaryAction.label}\n </button>\n )}\n </div>\n </div>\n )}\n </div>\n </div>\n );\n}\n"],"names":["Modal","isOpen","title","description","children","onClose","primaryAction","secondaryAction","handleKeyDown","useCallback","e","useEffect","prev","hasActions","jsx","styles","jsxs"],"mappings":";;;AAuBO,SAASA,EAAM;AAAA,EACpB,QAAAC;AAAA,EACA,OAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AACF,GAAe;AAEb,QAAMC,IAAgBC;AAAA,IACpB,CAACC,MAAqB;AACpB,MAAIA,EAAE,QAAQ,YAAUL,EAAA;AAAA,IAC1B;AAAA,IACA,CAACA,CAAO;AAAA,EAAA;AAeV,MAZAM,EAAU,MAAM;AACd,QAAI,CAACV,EAAQ;AACb,aAAS,iBAAiB,WAAWO,CAAa;AAElD,UAAMI,IAAO,SAAS,KAAK,MAAM;AACjC,oBAAS,KAAK,MAAM,WAAW,UACxB,MAAM;AACX,eAAS,oBAAoB,WAAWJ,CAAa,GACrD,SAAS,KAAK,MAAM,WAAWI;AAAA,IACjC;AAAA,EACF,GAAG,CAACX,GAAQO,CAAa,CAAC,GAEtB,CAACP,EAAQ,QAAO;AAEpB,QAAMY,IAAaP,KAAiBC;AAEpC,SACE,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAWC,EAAO;AAAA,MAClB,SAASV;AAAA,MACT,MAAK;AAAA,MAEL,UAAA,gBAAAW;AAAA,QAAC;AAAA,QAAA;AAAA,UACC,WAAWD,EAAO;AAAA,UAClB,MAAK;AAAA,UACL,cAAW;AAAA,UACX,mBAAgB;AAAA,UAChB,oBAAkBZ,IAAc,eAAe;AAAA,UAC/C,SAAS,CAACO,MAAMA,EAAE,gBAAA;AAAA,UAGlB,UAAA;AAAA,YAAA,gBAAAM,EAAC,OAAA,EAAI,WAAWD,EAAO,SACrB,UAAA;AAAA,cAAA,gBAAAD,EAAC,OAAE,IAAG,eAAc,WAAWC,EAAO,OACnC,UAAAb,GACH;AAAA,cACCC,uBACE,KAAA,EAAE,IAAG,cAAa,WAAWY,EAAO,aAClC,UAAAZ,EAAA,CACH;AAAA,YAAA,GAEJ;AAAA,YAGCC,KACC,gBAAAU,EAAC,OAAA,EAAI,WAAWC,EAAO,MACpB,UAAAX,GACH;AAAA,YAIDS,KACC,gBAAAC,EAAC,OAAA,EAAI,WAAWC,EAAO,SACrB,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWD,EAAO,MACpB,UAAA;AAAA,cAAAR,KACC,gBAAAO;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAWC,EAAO;AAAA,kBAClB,SAASR,EAAgB;AAAA,kBAExB,UAAAA,EAAgB;AAAA,gBAAA;AAAA,cAAA;AAAA,cAGpBD,KACC,gBAAAQ;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACC,MAAK;AAAA,kBACL,WAAWC,EAAO;AAAA,kBAClB,SAAST,EAAc;AAAA,kBAEtB,UAAAA,EAAc;AAAA,gBAAA;AAAA,cAAA;AAAA,YACjB,EAAA,CAEJ,EAAA,CACF;AAAA,UAAA;AAAA,QAAA;AAAA,MAAA;AAAA,IAEJ;AAAA,EAAA;AAGN;"}
1
+ {"version":3,"file":"index.esm10.js","sources":["../components/Input/Input.tsx"],"sourcesContent":["import React, { useId, useState } from 'react';\nimport styles from './Input.module.css';\n\nexport type InputState = 'Default' | 'Hover' | 'Active' | 'Disabled' | 'Error';\nexport type InputType = 'text' | 'email' | 'password' | 'search' | 'date';\nexport type InputSize = 'sm' | 'md';\n\n// ─── Built-in SVG icons ───────────────────────────────────────────────────────\n\nfunction IconEmail() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M4 4h16c1.1 0 2 .9 2 2v12c0 1.1-.9 2-2 2H4c-1.1 0-2-.9-2-2V6c0-1.1.9-2 2-2z\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <polyline points=\"22,6 12,13 2,6\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n );\n}\n\nfunction IconSearch() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <circle cx=\"11\" cy=\"11\" r=\"7\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\"/>\n <path d=\"M16.5 16.5L21 21\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\"/>\n </svg>\n );\n}\n\nfunction IconCalendar() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"3\" y=\"4\" width=\"18\" height=\"18\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M16 2v4M8 2v4M3 10h18\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n );\n}\n\nfunction IconLock() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <rect x=\"5\" y=\"11\" width=\"14\" height=\"11\" rx=\"2\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M8 11V7a4 4 0 0 1 8 0v4\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n </svg>\n );\n}\n\nfunction IconEye() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M1 12s4-7 11-7 11 7 11 7-4 7-11 7-11-7-11-7z\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <circle cx=\"12\" cy=\"12\" r=\"3\" stroke=\"currentColor\" strokeWidth=\"1.75\"/>\n </svg>\n );\n}\n\nfunction IconEyeOff() {\n return (\n <svg width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\n <path d=\"M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\" strokeLinejoin=\"round\"/>\n <path d=\"M1 1l22 22\" stroke=\"currentColor\" strokeWidth=\"1.75\" strokeLinecap=\"round\"/>\n </svg>\n );\n}\n\n// ─── Types ────────────────────────────────────────────────────────────────────\n\nexport interface InputProps\n extends Omit<React.InputHTMLAttributes<HTMLInputElement>, 'onChange' | 'type' | 'size'> {\n /** Visual/interaction state. Defaults to 'Default'. */\n state?: InputState;\n /** Size variant. sm = 36px height, md = 48px height. Defaults to 'md'. */\n size?: InputSize;\n /**\n * Semantic input type. Sets the correct HTML type and auto-adds icons.\n * - email → envelope icon left\n * - password → lock icon left + show/hide toggle right\n * - search → search icon left + green search button right\n * - date → calendar icon right\n */\n inputType?: InputType;\n /** Label text rendered above the field. */\n label?: string;\n placeholder?: string;\n /** Helper or error message rendered below the field. */\n message?: string;\n /** Info icon rendered beside the label. */\n iconLabel?: React.ReactNode;\n /** Icon rendered inside the field, left side (24×24 slot). */\n iconLeft?: React.ReactNode;\n /** Icon rendered inside the field, right side (24×24 slot). */\n iconRight?: React.ReactNode;\n value?: string;\n onChange?: (e: React.ChangeEvent<HTMLInputElement>) => void;\n /** Called when search button is clicked (only for inputType=\"search\") */\n onSearch?: () => void;\n}\n\n// ─── Component ────────────────────────────────────────────────────────────────\n\nexport function Input({\n state = 'Default',\n size = 'md',\n inputType = 'text',\n label,\n placeholder,\n message,\n iconLabel,\n iconLeft,\n iconRight,\n value,\n onChange,\n onSearch,\n id: idProp,\n className,\n ...props\n}: InputProps) {\n const generatedId = useId();\n const id = idProp ?? generatedId;\n const [showPassword, setShowPassword] = useState(false);\n const [dateFocused, setDateFocused] = useState(false);\n\n const isDisabled = state === 'Disabled';\n const isError = state === 'Error';\n\n // ── Resolve HTML type ──────────────────────────────────────────────────────\n const htmlType = inputType === 'password'\n ? (showPassword ? 'text' : 'password')\n : inputType === 'search'\n ? 'text'\n : inputType === 'date'\n ? (dateFocused || !!value ? 'date' : 'text')\n : inputType;\n\n // ── Resolve built-in icons ─────────────────────────────────────────────────\n const resolvedIconLeft: React.ReactNode =\n iconLeft ??\n (inputType === 'email' ? <IconEmail /> :\n inputType === 'password' ? <IconLock /> :\n undefined);\n\n const resolvedIconRight: React.ReactNode =\n iconRight ??\n (inputType === 'password'\n ? (\n <button\n type=\"button\"\n className={styles.toggleBtn}\n onClick={() => setShowPassword((v) => !v)}\n aria-label={showPassword ? 'Ocultar senha' : 'Mostrar senha'}\n tabIndex={-1}\n >\n {showPassword ? <IconEye /> : <IconEyeOff />}\n </button>\n )\n : inputType === 'date'\n ? <IconCalendar />\n : inputType === 'search'\n ? (\n <button\n type=\"button\"\n className={styles.searchBtn}\n onClick={onSearch}\n aria-label=\"Buscar\"\n tabIndex={-1}\n >\n <IconSearch />\n </button>\n )\n : undefined);\n\n const fieldClass = [\n styles.field,\n size === 'sm' ? styles.fieldSm : styles.fieldMd,\n state === 'Hover' ? styles.hover : '',\n state === 'Active' ? styles.active : '',\n isDisabled ? styles.disabled : '',\n isError ? styles.error : '',\n className,\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <div className={styles.wrapper}>\n {label && (\n <div className={styles.labelRow}>\n <label\n htmlFor={id}\n className={[styles.label, isDisabled ? styles.labelDisabled : '']\n .filter(Boolean)\n .join(' ')}\n >\n {label}\n </label>\n {iconLabel && (\n <span className={styles.labelIcon} aria-hidden=\"true\">\n {iconLabel}\n </span>\n )}\n </div>\n )}\n\n <div className={fieldClass}>\n {resolvedIconLeft && (\n <span className={styles.icon} aria-hidden=\"true\">\n {resolvedIconLeft}\n </span>\n )}\n <input\n id={id}\n type={htmlType}\n className={styles.input}\n placeholder={placeholder}\n disabled={isDisabled}\n value={value}\n onChange={onChange}\n onFocus={inputType === 'date' ? (e) => { setDateFocused(true); props.onFocus?.(e); } : props.onFocus}\n onBlur={inputType === 'date' ? (e) => { setDateFocused(false); props.onBlur?.(e); } : props.onBlur}\n aria-invalid={isError}\n aria-describedby={message ? `${id}-message` : undefined}\n {...props}\n />\n {resolvedIconRight && (\n <span className={[styles.icon, inputType === 'search' || inputType === 'password' ? styles.iconAction : ''].filter(Boolean).join(' ')}>\n {resolvedIconRight}\n </span>\n )}\n </div>\n\n {message && (\n <p\n id={`${id}-message`}\n className={[styles.message, isError ? styles.messageError : '']\n .filter(Boolean)\n .join(' ')}\n >\n {message}\n </p>\n )}\n </div>\n );\n}\n"],"names":["IconEmail","jsxs","jsx","IconSearch","IconCalendar","IconLock","IconEye","IconEyeOff","Input","state","size","inputType","label","placeholder","message","iconLabel","iconLeft","iconRight","value","onChange","onSearch","idProp","className","props","generatedId","useId","id","showPassword","setShowPassword","useState","dateFocused","setDateFocused","isDisabled","isError","htmlType","resolvedIconLeft","resolvedIconRight","styles","v","fieldClass","e","_a"],"mappings":"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"}