@gyramais/gyra-design 0.2.34 → 0.2.37
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/dist/components/SyncChip/SyncChip.d.ts +9 -1
- package/dist/emails/balance-sheet-finalized/components/SyncChip/SyncChip.d.ts +9 -1
- package/dist/emails/email/components/SyncChip/SyncChip.d.ts +9 -1
- package/dist/index.css +52 -0
- package/package.json +1 -1
- package/dist/components/ListingPage/ListingPage.d.ts +0 -21
- package/dist/components/ListingPage/index.d.ts +0 -1
- package/dist/components/ListingPage/index.js +0 -7
- package/dist/components/ListingPage/index.js.map +0 -1
- package/dist/components/SegmentedToggle/index.js +0 -7
- package/dist/components/SegmentedToggle/index.js.map +0 -1
- package/dist/components/Select/index.js +0 -45
- package/dist/components/Select/index.js.map +0 -1
- package/dist/components/SelectTree/index.js +0 -50
- package/dist/components/SelectTree/index.js.map +0 -1
- package/dist/components/Selector/index.js +0 -7
- package/dist/components/Selector/index.js.map +0 -1
- package/dist/components/StatusTag/index.js +0 -7
- package/dist/components/StatusTag/index.js.map +0 -1
- package/dist/components/Stepper/index.js +0 -7
- package/dist/components/Stepper/index.js.map +0 -1
- package/dist/components/Switch/index.js +0 -7
- package/dist/components/Switch/index.js.map +0 -1
- package/dist/components/SyncChip/index.js +0 -45
- package/dist/components/SyncChip/index.js.map +0 -1
- package/dist/components/Table/index.js +0 -45
- package/dist/components/Table/index.js.map +0 -1
- package/dist/components/Tabs/index.js +0 -7
- package/dist/components/Tabs/index.js.map +0 -1
- package/dist/components/Tag/index.js +0 -7
- package/dist/components/Tag/index.js.map +0 -1
- package/dist/components/Toast/index.js +0 -2
- package/dist/components/Toast/index.js.map +0 -1
- package/dist/components/Tooltip/index.js +0 -7
- package/dist/components/Tooltip/index.js.map +0 -1
- package/dist/components/TourGuide/index.js +0 -7
- package/dist/components/TourGuide/index.js.map +0 -1
- package/dist/components/Waypoint/index.js +0 -24
- package/dist/components/Waypoint/index.js.map +0 -1
- package/dist/fonts/IBMPlexMono-400-latin-ext.woff2 +0 -0
- package/dist/fonts/IBMPlexMono-400-latin.woff2 +0 -0
- package/dist/fonts/IBMPlexMono-500-latin-ext.woff2 +0 -0
- package/dist/fonts/IBMPlexMono-500-latin.woff2 +0 -0
- package/dist/fonts/Inter-Variable-latin-ext.woff2 +0 -0
- package/dist/fonts/Inter-Variable-latin.woff2 +0 -0
- package/dist/fonts/Lexend-Variable-latin-ext.woff2 +0 -0
- package/dist/fonts/Lexend-Variable-latin.woff2 +0 -0
|
@@ -11,7 +11,15 @@ type SyncChipProps = {
|
|
|
11
11
|
errorTooltip?: string;
|
|
12
12
|
/** Optional override for the tooltip when verified is false. */
|
|
13
13
|
notVerifiedTooltip?: string;
|
|
14
|
+
/** When in error state and provided, renders a compact retry action to
|
|
15
|
+
the LEFT of the chip. Keeps the retry paired with its sync-status,
|
|
16
|
+
consistently across every usage. */
|
|
17
|
+
onRetry?: () => void;
|
|
18
|
+
/** Label for the retry action. */
|
|
19
|
+
retryLabel?: string;
|
|
20
|
+
/** Disables the retry action (e.g. while a retry is already in flight). */
|
|
21
|
+
retryDisabled?: boolean;
|
|
14
22
|
};
|
|
15
|
-
declare const SyncChip: ({ id, className, loading, date, error, verified, errorTooltip, notVerifiedTooltip, }: SyncChipProps) => React.JSX.Element;
|
|
23
|
+
declare const SyncChip: ({ id, className, loading, date, error, verified, errorTooltip, notVerifiedTooltip, onRetry, retryLabel, retryDisabled, }: SyncChipProps) => React.JSX.Element;
|
|
16
24
|
export { SyncChip };
|
|
17
25
|
export type { SyncChipProps };
|
|
@@ -11,7 +11,15 @@ type SyncChipProps = {
|
|
|
11
11
|
errorTooltip?: string;
|
|
12
12
|
/** Optional override for the tooltip when verified is false. */
|
|
13
13
|
notVerifiedTooltip?: string;
|
|
14
|
+
/** When in error state and provided, renders a compact retry action to
|
|
15
|
+
the LEFT of the chip. Keeps the retry paired with its sync-status,
|
|
16
|
+
consistently across every usage. */
|
|
17
|
+
onRetry?: () => void;
|
|
18
|
+
/** Label for the retry action. */
|
|
19
|
+
retryLabel?: string;
|
|
20
|
+
/** Disables the retry action (e.g. while a retry is already in flight). */
|
|
21
|
+
retryDisabled?: boolean;
|
|
14
22
|
};
|
|
15
|
-
declare const SyncChip: ({ id, className, loading, date, error, verified, errorTooltip, notVerifiedTooltip, }: SyncChipProps) => React.JSX.Element;
|
|
23
|
+
declare const SyncChip: ({ id, className, loading, date, error, verified, errorTooltip, notVerifiedTooltip, onRetry, retryLabel, retryDisabled, }: SyncChipProps) => React.JSX.Element;
|
|
16
24
|
export { SyncChip };
|
|
17
25
|
export type { SyncChipProps };
|
|
@@ -11,7 +11,15 @@ type SyncChipProps = {
|
|
|
11
11
|
errorTooltip?: string;
|
|
12
12
|
/** Optional override for the tooltip when verified is false. */
|
|
13
13
|
notVerifiedTooltip?: string;
|
|
14
|
+
/** When in error state and provided, renders a compact retry action to
|
|
15
|
+
the LEFT of the chip. Keeps the retry paired with its sync-status,
|
|
16
|
+
consistently across every usage. */
|
|
17
|
+
onRetry?: () => void;
|
|
18
|
+
/** Label for the retry action. */
|
|
19
|
+
retryLabel?: string;
|
|
20
|
+
/** Disables the retry action (e.g. while a retry is already in flight). */
|
|
21
|
+
retryDisabled?: boolean;
|
|
14
22
|
};
|
|
15
|
-
declare const SyncChip: ({ id, className, loading, date, error, verified, errorTooltip, notVerifiedTooltip, }: SyncChipProps) => React.JSX.Element;
|
|
23
|
+
declare const SyncChip: ({ id, className, loading, date, error, verified, errorTooltip, notVerifiedTooltip, onRetry, retryLabel, retryDisabled, }: SyncChipProps) => React.JSX.Element;
|
|
16
24
|
export { SyncChip };
|
|
17
25
|
export type { SyncChipProps };
|
package/dist/index.css
CHANGED
|
@@ -10046,6 +10046,58 @@ h6 {
|
|
|
10046
10046
|
}
|
|
10047
10047
|
}
|
|
10048
10048
|
|
|
10049
|
+
/* Retry action paired with the chip — sits to the LEFT of the pill,
|
|
10050
|
+
styled as a matching pill-button, so the retry stays visually tied to
|
|
10051
|
+
the sync-status it refers to. */
|
|
10052
|
+
.gyramais-sync-chip-wrap {
|
|
10053
|
+
display: inline-flex;
|
|
10054
|
+
width: -moz-fit-content;
|
|
10055
|
+
width: fit-content;
|
|
10056
|
+
align-items: center;
|
|
10057
|
+
gap: 8px;
|
|
10058
|
+
}
|
|
10059
|
+
.gyramais-sync-chip-retry {
|
|
10060
|
+
display: inline-flex;
|
|
10061
|
+
height: 28px;
|
|
10062
|
+
width: 28px;
|
|
10063
|
+
flex-shrink: 0;
|
|
10064
|
+
cursor: pointer;
|
|
10065
|
+
align-items: center;
|
|
10066
|
+
justify-content: center;
|
|
10067
|
+
border-radius: 9999px;
|
|
10068
|
+
border-width: 1px;
|
|
10069
|
+
border-color: var(--color-border-secondary);
|
|
10070
|
+
background-color: var(--color-surface-secondary);
|
|
10071
|
+
padding: 0px;
|
|
10072
|
+
color: var(--color-text-secondary);
|
|
10073
|
+
transition: background 150ms ease, color 150ms ease,
|
|
10074
|
+
border-color 150ms ease;
|
|
10075
|
+
}
|
|
10076
|
+
.gyramais-sync-chip-retry:hover {
|
|
10077
|
+
border-color: rgba(255,59,48,0.18);
|
|
10078
|
+
background-color: rgba(255,59,48,0.08);
|
|
10079
|
+
color: var(--status-danger-text);
|
|
10080
|
+
}
|
|
10081
|
+
.gyramais-sync-chip-retry:disabled {
|
|
10082
|
+
cursor: default;
|
|
10083
|
+
border-color: rgba(255,59,48,0.18);
|
|
10084
|
+
color: var(--status-danger-text);
|
|
10085
|
+
}
|
|
10086
|
+
.gyramais-sync-chip-retry .gyramais-sync-chip-retry-icon {
|
|
10087
|
+
height: 16px;
|
|
10088
|
+
width: 16px;
|
|
10089
|
+
font-size: 16px;
|
|
10090
|
+
}
|
|
10091
|
+
.gyramais-sync-chip-retry
|
|
10092
|
+
.gyramais-sync-chip-retry-icon.gyramais-sync-chip-retry-icon--spinning {
|
|
10093
|
+
animation: gyramais-sync-chip-spin 0.9s linear infinite;
|
|
10094
|
+
}
|
|
10095
|
+
@keyframes gyramais-sync-chip-spin {
|
|
10096
|
+
to {
|
|
10097
|
+
transform: rotate(360deg);
|
|
10098
|
+
}
|
|
10099
|
+
}
|
|
10100
|
+
|
|
10049
10101
|
.gyramais-table-container {
|
|
10050
10102
|
width: 100%;
|
|
10051
10103
|
overflow-y: auto;
|
package/package.json
CHANGED
|
@@ -1,21 +0,0 @@
|
|
|
1
|
-
import React from "react";
|
|
2
|
-
import "./index.css";
|
|
3
|
-
type ListingPageProps = {
|
|
4
|
-
id?: string;
|
|
5
|
-
className?: string;
|
|
6
|
-
title: string;
|
|
7
|
-
description?: string;
|
|
8
|
-
/** Right-aligned actions in the head (e.g. "+ Novo"). */
|
|
9
|
-
actions?: React.ReactNode;
|
|
10
|
-
/** Filters / search row below the head. */
|
|
11
|
-
toolbar?: React.ReactNode;
|
|
12
|
-
/** Result count / density toggle row. */
|
|
13
|
-
meta?: React.ReactNode;
|
|
14
|
-
/** Table or cards. */
|
|
15
|
-
children?: React.ReactNode;
|
|
16
|
-
/** Pagination strip. */
|
|
17
|
-
footer?: React.ReactNode;
|
|
18
|
-
};
|
|
19
|
-
declare const ListingPage: ({ id, className, title, description, actions, toolbar, meta, children, footer, }: ListingPageProps) => React.JSX.Element;
|
|
20
|
-
export { ListingPage };
|
|
21
|
-
export type { ListingPageProps };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export * from "./ListingPage";
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use client";import e from"react";function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var a,r={exports:{}};
|
|
2
|
-
/*!
|
|
3
|
-
Copyright (c) 2018 Jed Watson.
|
|
4
|
-
Licensed under the MIT License (MIT), see
|
|
5
|
-
http://jedwatson.github.io/classnames
|
|
6
|
-
*/a=r,function(){var e={}.hasOwnProperty;function t(){for(var e="",t=0;t<arguments.length;t++){var a=arguments[t];a&&(e=n(e,r(a)))}return e}function r(a){if("string"==typeof a||"number"==typeof a)return a;if("object"!=typeof a)return"";if(Array.isArray(a))return t.apply(null,a);if(a.toString!==Object.prototype.toString&&!a.toString.toString().includes("[native code]"))return a.toString();var r="";for(var i in a)e.call(a,i)&&a[i]&&(r=n(r,i));return r}function n(e,t){return t?e?e+" "+t:e+t:e}a.exports?(t.default=t,a.exports=t):window.classNames=t}();var n=t(r.exports);const i=({id:t,className:a,title:r,description:i,actions:l,toolbar:s,meta:o,children:c,footer:m})=>e.createElement("div",{id:t,className:n("gyramais-listing-page",a)},e.createElement("div",{className:"gyramais-listing-page-head"},e.createElement("div",null,e.createElement("h1",null,r),i&&e.createElement("p",{className:"lead"},i)),l&&e.createElement("div",{className:"actions"},l)),s&&e.createElement("div",{className:"gyramais-listing-page-toolbar"},s),o&&e.createElement("div",{className:"gyramais-listing-page-meta"},o),e.createElement("div",{className:"gyramais-listing-page-content"},c),m&&e.createElement("div",{className:"gyramais-listing-page-foot"},m));export{i as ListingPage};
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/classnames/index.js","../../../src/components/ListingPage/ListingPage.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\n\n/* Listing page layout — title + description, optional right-aligned\n actions, optional toolbar (filters/search), optional meta strip\n (counts/density), the table/cards body, and an optional pagination\n footer. The visual rhythm matches the v2 listing pattern shared\n across Relatórios, Lotes, Política de Crédito, etc. */\n\ntype ListingPageProps = {\n id?: string;\n className?: string;\n title: string;\n description?: string;\n /** Right-aligned actions in the head (e.g. \"+ Novo\"). */\n actions?: React.ReactNode;\n /** Filters / search row below the head. */\n toolbar?: React.ReactNode;\n /** Result count / density toggle row. */\n meta?: React.ReactNode;\n /** Table or cards. */\n children?: React.ReactNode;\n /** Pagination strip. */\n footer?: React.ReactNode;\n};\n\nconst ListingPage = ({\n id,\n className,\n title,\n description,\n actions,\n toolbar,\n meta,\n children,\n footer,\n}: ListingPageProps) => {\n return (\n <div id={id} className={classNames(\"gyramais-listing-page\", className)}>\n <div className=\"gyramais-listing-page-head\">\n <div>\n <h1>{title}</h1>\n {description && <p className=\"lead\">{description}</p>}\n </div>\n {actions && <div className=\"actions\">{actions}</div>}\n </div>\n\n {toolbar && (\n <div className=\"gyramais-listing-page-toolbar\">{toolbar}</div>\n )}\n\n {meta && <div className=\"gyramais-listing-page-meta\">{meta}</div>}\n\n <div className=\"gyramais-listing-page-content\">{children}</div>\n\n {footer && <div className=\"gyramais-listing-page-foot\">{footer}</div>}\n </div>\n );\n};\n\nexport { ListingPage };\nexport type { ListingPageProps };\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","value","newClass","module","exports","default","window","ListingPage","id","className","title","description","actions","toolbar","meta","children","footer","React","createElement"],"mappings":";;;;;MAOC,WAGA,IAAIA,EAAS,CAAA,EAAGC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIG,EAAMF,UAAUD,GAChBG,IACHJ,EAAUK,EAAYL,EAASM,EAAWF,IAE9C,CAEE,OAAOJ,CACT,CAEC,SAASM,EAAYF,GACpB,GAAmB,iBAARA,GAAmC,iBAARA,EACrC,OAAOA,EAGR,GAAmB,iBAARA,EACV,MAAO,GAGR,GAAIG,MAAMC,QAAQJ,GACjB,OAAOL,EAAWU,MAAM,KAAML,GAG/B,GAAIA,EAAIM,WAAaC,OAAOC,UAAUF,WAAaN,EAAIM,SAASA,WAAWG,SAAS,iBACnF,OAAOT,EAAIM,WAGZ,IAAIV,EAAU,GAEd,IAAK,IAAIc,KAAOV,EACXP,EAAOkB,KAAKX,EAAKU,IAAQV,EAAIU,KAChCd,EAAUK,EAAYL,EAASc,IAIjC,OAAOd,CACT,CAEC,SAASK,EAAaW,EAAOC,GAC5B,OAAKA,EAIDD,EACIA,EAAQ,IAAMC,EAGfD,EAAQC,EAPPD,CAQV,CAEsCE,EAAOC,SAC3CpB,EAAWqB,QAAUrB,EACrBmB,UAAiBnB,GAOjBsB,OAAOtB,WAAaA,CAEtB,CArEA,sBCoBA,MAAMuB,EAAc,EAClBC,KACAC,YACAC,QACAC,cACAC,UACAC,UACAC,OACAC,WACAC,YAGEC,EAAAC,cAAA,MAAA,CAAKV,GAAIA,EAAIC,UAAWzB,EAAW,wBAAyByB,IAC1DQ,EAAAC,cAAA,MAAA,CAAKT,UAAU,8BACbQ,EAAAC,cAAA,MAAA,KACED,EAAAC,cAAA,KAAA,KAAKR,GACJC,GAAeM,qBAAGR,UAAU,QAAQE,IAEtCC,GAAWK,uBAAKR,UAAU,WAAWG,IAGvCC,GACCI,EAAAC,cAAA,MAAA,CAAKT,UAAU,iCAAiCI,GAGjDC,GAAQG,EAAAC,cAAA,MAAA,CAAKT,UAAU,8BAA8BK,GAEtDG,EAAAC,cAAA,MAAA,CAAKT,UAAU,iCAAiCM,GAE/CC,GAAUC,EAAAC,cAAA,MAAA,CAAKT,UAAU,8BAA8BO","x_google_ignoreList":[0]}
|
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
"use client";import e from"react";function t(e){return e&&e.__esModule&&Object.prototype.hasOwnProperty.call(e,"default")?e.default:e}var a,r={exports:{}};
|
|
2
|
-
/*!
|
|
3
|
-
Copyright (c) 2018 Jed Watson.
|
|
4
|
-
Licensed under the MIT License (MIT), see
|
|
5
|
-
http://jedwatson.github.io/classnames
|
|
6
|
-
*/a=r,function(){var e={}.hasOwnProperty;function t(){for(var e="",t=0;t<arguments.length;t++){var a=arguments[t];a&&(e=n(e,r(a)))}return e}function r(a){if("string"==typeof a||"number"==typeof a)return a;if("object"!=typeof a)return"";if(Array.isArray(a))return t.apply(null,a);if(a.toString!==Object.prototype.toString&&!a.toString.toString().includes("[native code]"))return a.toString();var r="";for(var o in a)e.call(a,o)&&a[o]&&(r=n(r,o));return r}function n(e,t){return t?e?e+" "+t:e+t:e}a.exports?(t.default=t,a.exports=t):window.classNames=t}();var n=t(r.exports);function o({id:t,className:a,value:r,options:o,onChange:l,size:i="md",ariaLabel:s}){return e.createElement("div",{id:t,role:"tablist","aria-label":s,className:n("gyramais-segmented-toggle",`gyramais-segmented-toggle-${i}`,a)},o.map(t=>{const a=t.value===r,o=t.kind??"primary";return e.createElement("button",{key:t.value,type:"button",role:"tab","aria-selected":a,disabled:t.disabled,className:n("gyramais-segmented-toggle-btn",`gyramais-segmented-toggle-kind-${o}`,a&&"is-on"),onClick:()=>!t.disabled&&t.value!==r&&l?.(t.value)},t.icon&&e.createElement("span",{className:"gyramais-segmented-toggle-icon"},t.icon),e.createElement("span",{className:"gyramais-segmented-toggle-label"},t.label))}))}export{o as SegmentedToggle};
|
|
7
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../../node_modules/classnames/index.js","../../../src/components/SegmentedToggle/SegmentedToggle.tsx"],"sourcesContent":["/*!\n\tCopyright (c) 2018 Jed Watson.\n\tLicensed under the MIT License (MIT), see\n\thttp://jedwatson.github.io/classnames\n*/\n/* global define */\n\n(function () {\n\t'use strict';\n\n\tvar hasOwn = {}.hasOwnProperty;\n\n\tfunction classNames () {\n\t\tvar classes = '';\n\n\t\tfor (var i = 0; i < arguments.length; i++) {\n\t\t\tvar arg = arguments[i];\n\t\t\tif (arg) {\n\t\t\t\tclasses = appendClass(classes, parseValue(arg));\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction parseValue (arg) {\n\t\tif (typeof arg === 'string' || typeof arg === 'number') {\n\t\t\treturn arg;\n\t\t}\n\n\t\tif (typeof arg !== 'object') {\n\t\t\treturn '';\n\t\t}\n\n\t\tif (Array.isArray(arg)) {\n\t\t\treturn classNames.apply(null, arg);\n\t\t}\n\n\t\tif (arg.toString !== Object.prototype.toString && !arg.toString.toString().includes('[native code]')) {\n\t\t\treturn arg.toString();\n\t\t}\n\n\t\tvar classes = '';\n\n\t\tfor (var key in arg) {\n\t\t\tif (hasOwn.call(arg, key) && arg[key]) {\n\t\t\t\tclasses = appendClass(classes, key);\n\t\t\t}\n\t\t}\n\n\t\treturn classes;\n\t}\n\n\tfunction appendClass (value, newClass) {\n\t\tif (!newClass) {\n\t\t\treturn value;\n\t\t}\n\t\n\t\tif (value) {\n\t\t\treturn value + ' ' + newClass;\n\t\t}\n\t\n\t\treturn value + newClass;\n\t}\n\n\tif (typeof module !== 'undefined' && module.exports) {\n\t\tclassNames.default = classNames;\n\t\tmodule.exports = classNames;\n\t} else if (typeof define === 'function' && typeof define.amd === 'object' && define.amd) {\n\t\t// register as 'classnames', consistent with npm package name\n\t\tdefine('classnames', [], function () {\n\t\t\treturn classNames;\n\t\t});\n\t} else {\n\t\twindow.classNames = classNames;\n\t}\n}());\n","import React from \"react\";\nimport classNames from \"classnames\";\nimport \"./index.css\";\n\n/* SegmentedToggle — 3-segmentos sempre visíveis (iPhone-style), com variants\n de cor por opção (success / warning / danger / info / neutral / primary).\n Diferente do SegmentedPicker, que é um trigger de dropdown e mostra só a\n opção ativa. Usado, por exemplo, no verdict global da seção de Condições. */\n\ntype Kind = \"primary\" | \"success\" | \"warning\" | \"danger\" | \"info\" | \"neutral\";\n\ntype SegmentedToggleOption<T extends string> = {\n value: T;\n label: string;\n icon?: React.ReactNode;\n /** Cor aplicada quando a opção está ativa. */\n kind?: Kind;\n disabled?: boolean;\n};\n\ntype SegmentedToggleProps<T extends string> = {\n id?: string;\n className?: string;\n value: T;\n options: Array<SegmentedToggleOption<T>>;\n onChange?: (value: T) => void;\n /** Tamanho do toggle. Default \"md\". */\n size?: \"sm\" | \"md\";\n /** Label invisível pra screen readers (a11y). */\n ariaLabel?: string;\n};\n\nfunction SegmentedToggle<T extends string>({\n id,\n className,\n value,\n options,\n onChange,\n size = \"md\",\n ariaLabel,\n}: SegmentedToggleProps<T>) {\n return (\n <div\n id={id}\n role=\"tablist\"\n aria-label={ariaLabel}\n className={classNames(\n \"gyramais-segmented-toggle\",\n `gyramais-segmented-toggle-${size}`,\n className,\n )}\n >\n {options.map((opt) => {\n const on = opt.value === value;\n const kind: Kind = opt.kind ?? \"primary\";\n return (\n <button\n key={opt.value}\n type=\"button\"\n role=\"tab\"\n aria-selected={on}\n disabled={opt.disabled}\n className={classNames(\n \"gyramais-segmented-toggle-btn\",\n `gyramais-segmented-toggle-kind-${kind}`,\n on && \"is-on\",\n )}\n onClick={() => !opt.disabled && opt.value !== value && onChange?.(opt.value)}\n >\n {opt.icon && (\n <span className=\"gyramais-segmented-toggle-icon\">{opt.icon}</span>\n )}\n <span className=\"gyramais-segmented-toggle-label\">{opt.label}</span>\n </button>\n );\n })}\n </div>\n );\n}\n\nexport { SegmentedToggle };\nexport type { SegmentedToggleOption, SegmentedToggleProps };\n"],"names":["hasOwn","hasOwnProperty","classNames","classes","i","arguments","length","arg","appendClass","parseValue","Array","isArray","apply","toString","Object","prototype","includes","key","call","value","newClass","module","exports","default","window","SegmentedToggle","id","className","options","onChange","size","ariaLabel","React","createElement","role","map","opt","on","kind","type","disabled","onClick","icon","label"],"mappings":";;;;;MAOC,WAGA,IAAIA,EAAS,CAAA,EAAGC,eAEhB,SAASC,IAGR,IAFA,IAAIC,EAAU,GAELC,EAAI,EAAGA,EAAIC,UAAUC,OAAQF,IAAK,CAC1C,IAAIG,EAAMF,UAAUD,GAChBG,IACHJ,EAAUK,EAAYL,EAASM,EAAWF,IAE9C,CAEE,OAAOJ,CACT,CAEC,SAASM,EAAYF,GACpB,GAAmB,iBAARA,GAAmC,iBAARA,EACrC,OAAOA,EAGR,GAAmB,iBAARA,EACV,MAAO,GAGR,GAAIG,MAAMC,QAAQJ,GACjB,OAAOL,EAAWU,MAAM,KAAML,GAG/B,GAAIA,EAAIM,WAAaC,OAAOC,UAAUF,WAAaN,EAAIM,SAASA,WAAWG,SAAS,iBACnF,OAAOT,EAAIM,WAGZ,IAAIV,EAAU,GAEd,IAAK,IAAIc,KAAOV,EACXP,EAAOkB,KAAKX,EAAKU,IAAQV,EAAIU,KAChCd,EAAUK,EAAYL,EAASc,IAIjC,OAAOd,CACT,CAEC,SAASK,EAAaW,EAAOC,GAC5B,OAAKA,EAIDD,EACIA,EAAQ,IAAMC,EAGfD,EAAQC,EAPPD,CAQV,CAEsCE,EAAOC,SAC3CpB,EAAWqB,QAAUrB,EACrBmB,UAAiBnB,GAOjBsB,OAAOtB,WAAaA,CAEtB,CArEA,sBCyBA,SAASuB,GAAkCC,GACzCA,EAAEC,UACFA,EAASR,MACTA,EAAKS,QACLA,EAAOC,SACPA,EAAQC,KACRA,EAAO,KAAIC,UACXA,IAEA,OACEC,EAAAC,cAAA,MAAA,CACEP,GAAIA,EACJQ,KAAK,UAAS,aACFH,EACZJ,UAAWzB,EACT,4BACA,6BAA6B4B,IAC7BH,IAGDC,EAAQO,IAAKC,IACZ,MAAMC,EAAKD,EAAIjB,QAAUA,EACnBmB,EAAaF,EAAIE,MAAQ,UAC/B,OACEN,EAAAC,cAAA,SAAA,CACEhB,IAAKmB,EAAIjB,MACToB,KAAK,SACLL,KAAK,MAAK,gBACKG,EACfG,SAAUJ,EAAII,SACdb,UAAWzB,EACT,gCACA,kCAAkCoC,IAClCD,GAAM,SAERI,QAAS,KAAOL,EAAII,UAAYJ,EAAIjB,QAAUA,GAASU,IAAWO,EAAIjB,QAErEiB,EAAIM,MACHV,EAAAC,cAAA,OAAA,CAAMN,UAAU,kCAAkCS,EAAIM,MAExDV,EAAAC,cAAA,OAAA,CAAMN,UAAU,mCAAmCS,EAAIO,UAMnE","x_google_ignoreList":[0]}
|