ss6-futuristic-component 1.0.1 → 1.1.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
@@ -2,6 +2,29 @@
2
2
 
3
3
  All notable changes to this project will be documented in this file.
4
4
 
5
+ ## 1.1.0 (2026-10-11)
6
+
7
+ ### Features
8
+
9
+ - **Header:** new HUD title bar with a glowing title panel, interlocking shortcut tabs split around the title, `left` / `right` slots for your own components, and a CSS-only drop-down page list (yellow arrow) with tiles that light up on hover. `activeUrl` marks the current tab and page; `CustomComponent` accepts e.g. Next.js `Link`. Server component, no client JS.
10
+ - **Footer:** matching bottom bar with a flipped center panel, accent corner lines, yellow slashes and centered `text`.
11
+ - **Theme:** new `--yellow` / `--yellow-hi` tokens (secondary accent) for both light and dark.
12
+
13
+ ## 1.0.1 (2026-10-08)
14
+
15
+ ### Features
16
+
17
+ - **ProgressBar:** new component with `value`/`max`, `label`, `showValue` and `primary` | `info` | `success` | `warning` | `danger` colors; chamfered glass track with glowing fill.
18
+ - **Badge:** futuristic status chip (chamfered glass, status tint, pulsing glowing dot).
19
+ - **Confirmation:** dialog rebuilt from `Card` and `Button`, bundled status icons, frosted glass backdrop.
20
+ - **ThemeToggle:** checking it switches the page to dark (pure CSS, works in server components); an explicit `data-theme` on an ancestor still wins.
21
+ - **Button:** white text on filled buttons in light mode.
22
+
23
+ ### ⚠ Behavior changes
24
+
25
+ - **Light is now the default theme** (was dark). Set `data-theme="dark"` on `<html>`, or start a `ThemeToggle` with `defaultChecked`, to keep dark.
26
+ - `Confirmation` markup changed: the old `confirmation__card` / `baloon__*` classes are gone.
27
+
5
28
  ## 1.0.0 (2026-10-08)
6
29
 
7
30
  First release of `ss6-futuristic-component`, forked from `@safestrong/ppa-component-library` 1.11.1 and redesigned with a futuristic HUD look (glass panels, chamfered corners, glowing accents, navy/cyan palette with light theme via `data-theme`).
package/dist/index.d.mts CHANGED
@@ -176,4 +176,36 @@ type ProgressBar = {
176
176
  };
177
177
  declare function ProgressBar({ value, max, label, showValue, color, className, }: Readonly<ProgressBar>): React.JSX.Element;
178
178
 
179
- export { Badge, Button, Card, Confirmation, Dashboard, Expandable, MultiSelect, NavTabClient, Navigation, ProgressBar, SingleSelect, Skeleton, Slider, TextInput, ThemeToggle, Toast, Tooltip };
179
+ type HeaderLink = {
180
+ label: string;
181
+ href: string;
182
+ };
183
+ type HeaderPage = HeaderLink & {
184
+ description?: string;
185
+ icon?: IconProp;
186
+ };
187
+ type Header = {
188
+ title: string;
189
+ /** shortcut tabs; first half sits left of the title, the rest on the right */
190
+ tabs?: HeaderLink[];
191
+ /** pages for the drop-down list (the yellow arrow appears only when given) */
192
+ pages?: HeaderPage[];
193
+ activeUrl?: string;
194
+ left?: React.ReactNode;
195
+ right?: React.ReactNode;
196
+ drawerTitle?: string;
197
+ /** link component, e.g. Next.js Link; defaults to <a> */
198
+ CustomComponent?: React.ElementType;
199
+ /** id of the hidden toggle; change it if a page renders more than one Header */
200
+ menuId?: string;
201
+ className?: string;
202
+ };
203
+ declare function Header({ title, tabs, pages, activeUrl, left, right, drawerTitle, CustomComponent, menuId, className, }: Readonly<Header>): React.JSX.Element;
204
+
205
+ type Footer = {
206
+ text: React.ReactNode;
207
+ className?: string;
208
+ };
209
+ declare function Footer({ text, className }: Readonly<Footer>): React.JSX.Element;
210
+
211
+ export { Badge, Button, Card, Confirmation, Dashboard, Expandable, Footer, Header, MultiSelect, NavTabClient, Navigation, ProgressBar, SingleSelect, Skeleton, Slider, TextInput, ThemeToggle, Toast, Tooltip };
package/dist/index.d.ts CHANGED
@@ -176,4 +176,36 @@ type ProgressBar = {
176
176
  };
177
177
  declare function ProgressBar({ value, max, label, showValue, color, className, }: Readonly<ProgressBar>): React.JSX.Element;
178
178
 
179
- export { Badge, Button, Card, Confirmation, Dashboard, Expandable, MultiSelect, NavTabClient, Navigation, ProgressBar, SingleSelect, Skeleton, Slider, TextInput, ThemeToggle, Toast, Tooltip };
179
+ type HeaderLink = {
180
+ label: string;
181
+ href: string;
182
+ };
183
+ type HeaderPage = HeaderLink & {
184
+ description?: string;
185
+ icon?: IconProp;
186
+ };
187
+ type Header = {
188
+ title: string;
189
+ /** shortcut tabs; first half sits left of the title, the rest on the right */
190
+ tabs?: HeaderLink[];
191
+ /** pages for the drop-down list (the yellow arrow appears only when given) */
192
+ pages?: HeaderPage[];
193
+ activeUrl?: string;
194
+ left?: React.ReactNode;
195
+ right?: React.ReactNode;
196
+ drawerTitle?: string;
197
+ /** link component, e.g. Next.js Link; defaults to <a> */
198
+ CustomComponent?: React.ElementType;
199
+ /** id of the hidden toggle; change it if a page renders more than one Header */
200
+ menuId?: string;
201
+ className?: string;
202
+ };
203
+ declare function Header({ title, tabs, pages, activeUrl, left, right, drawerTitle, CustomComponent, menuId, className, }: Readonly<Header>): React.JSX.Element;
204
+
205
+ type Footer = {
206
+ text: React.ReactNode;
207
+ className?: string;
208
+ };
209
+ declare function Footer({ text, className }: Readonly<Footer>): React.JSX.Element;
210
+
211
+ export { Badge, Button, Card, Confirmation, Dashboard, Expandable, Footer, Header, MultiSelect, NavTabClient, Navigation, ProgressBar, SingleSelect, Skeleton, Slider, TextInput, ThemeToggle, Toast, Tooltip };
package/dist/index.js CHANGED
@@ -65,6 +65,8 @@ __export(index_exports, {
65
65
  Confirmation: () => Confirmation,
66
66
  Dashboard: () => Dashboard,
67
67
  Expandable: () => Expandable,
68
+ Footer: () => Footer2,
69
+ Header: () => Header,
68
70
  MultiSelect: () => MultiSelect,
69
71
  NavTabClient: () => NavTabClient,
70
72
  Navigation: () => Navigation,
@@ -698,6 +700,153 @@ function ProgressBar({
698
700
  /* @__PURE__ */ import_react17.default.createElement("div", { className: "fp__fill", style: { width: `${percent}%` } })
699
701
  ));
700
702
  }
703
+
704
+ // src/components/Header.tsx
705
+ var import_react18 = __toESM(require("react"));
706
+ var import_react_fontawesome10 = require("@fortawesome/react-fontawesome");
707
+ function Header({
708
+ title,
709
+ tabs = [],
710
+ pages = [],
711
+ activeUrl,
712
+ left: left2,
713
+ right: right2,
714
+ drawerTitle = "All Pages",
715
+ CustomComponent,
716
+ menuId = "ph-menu",
717
+ className = ""
718
+ }) {
719
+ const Link = CustomComponent || "a";
720
+ const current = (href) => href === activeUrl ? "page" : void 0;
721
+ const half = Math.ceil(tabs.length / 2);
722
+ const renderTabs = (list2, side) => /* @__PURE__ */ import_react18.default.createElement("nav", { className: `ph__tabs ph__tabs--${side}`, "aria-label": "Shortcuts" }, list2.map(({ label, href }) => /* @__PURE__ */ import_react18.default.createElement(
723
+ Link,
724
+ {
725
+ key: href,
726
+ href,
727
+ "aria-current": current(href),
728
+ className: `ph-tab ${side === "r" ? "ph-tab--r" : ""}`
729
+ },
730
+ label
731
+ )));
732
+ return /* @__PURE__ */ import_react18.default.createElement("header", { className: `ph ${className}` }, /* @__PURE__ */ import_react18.default.createElement(
733
+ "svg",
734
+ {
735
+ className: "ph__deco",
736
+ width: "840",
737
+ height: "64",
738
+ viewBox: "300 0 840 64",
739
+ fill: "none",
740
+ "aria-hidden": "true"
741
+ },
742
+ /* @__PURE__ */ import_react18.default.createElement("defs", null, /* @__PURE__ */ import_react18.default.createElement("linearGradient", { id: "ph-title", x1: "0", y1: "0", x2: "0", y2: "1" }, /* @__PURE__ */ import_react18.default.createElement("stop", { offset: "0", className: "ph__stop-panel-top" }), /* @__PURE__ */ import_react18.default.createElement("stop", { offset: "1", className: "ph__stop-panel-bottom" })), /* @__PURE__ */ import_react18.default.createElement("linearGradient", { id: "ph-inner", x1: "0", y1: "1", x2: "0", y2: "0" }, /* @__PURE__ */ import_react18.default.createElement("stop", { offset: "0", className: "ph__stop-accent", stopOpacity: ".32" }), /* @__PURE__ */ import_react18.default.createElement("stop", { offset: ".6", className: "ph__stop-accent", stopOpacity: "0" })), /* @__PURE__ */ import_react18.default.createElement("linearGradient", { id: "ph-fadeL", x1: "0", y1: "0", x2: "1", y2: "0" }, /* @__PURE__ */ import_react18.default.createElement("stop", { offset: "0", className: "ph__stop-yellow", stopOpacity: "0" }), /* @__PURE__ */ import_react18.default.createElement("stop", { offset: "1", className: "ph__stop-yellow" })), /* @__PURE__ */ import_react18.default.createElement("linearGradient", { id: "ph-fadeR", x1: "1", y1: "0", x2: "0", y2: "0" }, /* @__PURE__ */ import_react18.default.createElement("stop", { offset: "0", className: "ph__stop-yellow", stopOpacity: "0" }), /* @__PURE__ */ import_react18.default.createElement("stop", { offset: "1", className: "ph__stop-yellow" }))),
743
+ /* @__PURE__ */ import_react18.default.createElement("path", { d: "M540 0H900L866 56H574Z", fill: "url(#ph-title)" }),
744
+ /* @__PURE__ */ import_react18.default.createElement("path", { d: "M540 0H900L866 56H574Z", fill: "url(#ph-inner)" }),
745
+ /* @__PURE__ */ import_react18.default.createElement(
746
+ "path",
747
+ {
748
+ className: "ph__deco-corners",
749
+ d: "M562 35L574.5 55H612 M878 35L865.5 55H828",
750
+ strokeWidth: "2.5",
751
+ strokeLinejoin: "round",
752
+ strokeLinecap: "round"
753
+ }
754
+ ),
755
+ /* @__PURE__ */ import_react18.default.createElement(
756
+ "path",
757
+ {
758
+ d: "M312 40l8-14 M322 40l8-14 M332 40l8-14 M342 40l8-14 M352 40l8-14",
759
+ stroke: "url(#ph-fadeL)",
760
+ strokeWidth: "3"
761
+ }
762
+ ),
763
+ /* @__PURE__ */ import_react18.default.createElement(
764
+ "path",
765
+ {
766
+ d: "M1128 40l-8-14 M1118 40l-8-14 M1108 40l-8-14 M1098 40l-8-14 M1088 40l-8-14",
767
+ stroke: "url(#ph-fadeR)",
768
+ strokeWidth: "3"
769
+ }
770
+ )
771
+ ), /* @__PURE__ */ import_react18.default.createElement("h1", { className: "ph__title" }, title), tabs.length > 0 && renderTabs(tabs.slice(0, half), "l"), tabs.length > 1 && renderTabs(tabs.slice(half), "r"), left2 && /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph__slot ph__slot--left" }, left2), right2 && /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph__slot ph__slot--right" }, right2), pages.length > 0 && /* @__PURE__ */ import_react18.default.createElement(import_react18.default.Fragment, null, /* @__PURE__ */ import_react18.default.createElement(
772
+ "input",
773
+ {
774
+ id: menuId,
775
+ type: "checkbox",
776
+ className: "ph__toggle",
777
+ "aria-label": "Show all pages"
778
+ }
779
+ ), /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph__arrow-glow" }, /* @__PURE__ */ import_react18.default.createElement(
780
+ "label",
781
+ {
782
+ htmlFor: menuId,
783
+ className: "ph__arrow",
784
+ "aria-hidden": "true"
785
+ }
786
+ )), /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph__drawer" }, /* @__PURE__ */ import_react18.default.createElement(
787
+ "label",
788
+ {
789
+ htmlFor: menuId,
790
+ className: "ph__backdrop",
791
+ "aria-hidden": "true"
792
+ }
793
+ ), /* @__PURE__ */ import_react18.default.createElement("section", { className: "ph__panel", "aria-label": drawerTitle }, /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph__panel-head" }, /* @__PURE__ */ import_react18.default.createElement("div", null, /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph__kicker" }, "// NAVIGATE"), /* @__PURE__ */ import_react18.default.createElement("h2", { className: "ph__panel-title" }, drawerTitle)), /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph__count" }, String(pages.length).padStart(2, "0"), " PAGES")), /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph__grid" }, pages.map(({ label, href, description, icon }) => /* @__PURE__ */ import_react18.default.createElement(
794
+ Link,
795
+ {
796
+ key: href,
797
+ href,
798
+ "aria-current": current(href),
799
+ className: "ph-page"
800
+ },
801
+ icon && /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph-page__icon" }, /* @__PURE__ */ import_react18.default.createElement(import_react_fontawesome10.FontAwesomeIcon, { icon })),
802
+ /* @__PURE__ */ import_react18.default.createElement("span", null, /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph-page__name" }, label), description && /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph-page__desc" }, description))
803
+ )))))));
804
+ }
805
+
806
+ // src/components/Footer.tsx
807
+ var import_react19 = __toESM(require("react"));
808
+ function Footer2({ text, className = "" }) {
809
+ return /* @__PURE__ */ import_react19.default.createElement("footer", { className: `pf ${className}` }, /* @__PURE__ */ import_react19.default.createElement(
810
+ "svg",
811
+ {
812
+ className: "pf__deco",
813
+ width: "480",
814
+ height: "40",
815
+ viewBox: "480 0 480 40",
816
+ fill: "none",
817
+ "aria-hidden": "true"
818
+ },
819
+ /* @__PURE__ */ import_react19.default.createElement("defs", null, /* @__PURE__ */ import_react19.default.createElement("linearGradient", { id: "pf-panel", x1: "0", y1: "1", x2: "0", y2: "0" }, /* @__PURE__ */ import_react19.default.createElement("stop", { offset: "0", className: "ph__stop-panel-top" }), /* @__PURE__ */ import_react19.default.createElement("stop", { offset: "1", className: "ph__stop-panel-bottom" })), /* @__PURE__ */ import_react19.default.createElement("linearGradient", { id: "pf-inner", x1: "0", y1: "0", x2: "0", y2: "1" }, /* @__PURE__ */ import_react19.default.createElement("stop", { offset: "0", className: "ph__stop-accent", stopOpacity: ".28" }), /* @__PURE__ */ import_react19.default.createElement("stop", { offset: ".6", className: "ph__stop-accent", stopOpacity: "0" })), /* @__PURE__ */ import_react19.default.createElement("linearGradient", { id: "pf-fadeL", x1: "0", y1: "0", x2: "1", y2: "0" }, /* @__PURE__ */ import_react19.default.createElement("stop", { offset: "0", className: "ph__stop-yellow", stopOpacity: "0" }), /* @__PURE__ */ import_react19.default.createElement("stop", { offset: "1", className: "ph__stop-yellow" })), /* @__PURE__ */ import_react19.default.createElement("linearGradient", { id: "pf-fadeR", x1: "1", y1: "0", x2: "0", y2: "0" }, /* @__PURE__ */ import_react19.default.createElement("stop", { offset: "0", className: "ph__stop-yellow", stopOpacity: "0" }), /* @__PURE__ */ import_react19.default.createElement("stop", { offset: "1", className: "ph__stop-yellow" }))),
820
+ /* @__PURE__ */ import_react19.default.createElement("path", { d: "M560 40H880L860 8H580Z", fill: "url(#pf-panel)" }),
821
+ /* @__PURE__ */ import_react19.default.createElement("path", { d: "M560 40H880L860 8H580Z", fill: "url(#pf-inner)" }),
822
+ /* @__PURE__ */ import_react19.default.createElement(
823
+ "path",
824
+ {
825
+ className: "ph__deco-corners",
826
+ d: "M572 21L580.5 8.5H612 M868 21L859.5 8.5H828",
827
+ strokeWidth: "2.5",
828
+ strokeLinejoin: "round",
829
+ strokeLinecap: "round"
830
+ }
831
+ ),
832
+ /* @__PURE__ */ import_react19.default.createElement(
833
+ "path",
834
+ {
835
+ d: "M492 13l8 14 M502 13l8 14 M512 13l8 14 M522 13l8 14 M532 13l8 14",
836
+ stroke: "url(#pf-fadeL)",
837
+ strokeWidth: "3"
838
+ }
839
+ ),
840
+ /* @__PURE__ */ import_react19.default.createElement(
841
+ "path",
842
+ {
843
+ d: "M948 13l-8 14 M938 13l-8 14 M928 13l-8 14 M918 13l-8 14 M908 13l-8 14",
844
+ stroke: "url(#pf-fadeR)",
845
+ strokeWidth: "3"
846
+ }
847
+ )
848
+ ), /* @__PURE__ */ import_react19.default.createElement("p", { className: "pf__text" }, text));
849
+ }
701
850
  // Annotate the CommonJS export names for ESM import in node:
702
851
  0 && (module.exports = {
703
852
  Badge,
@@ -706,6 +855,8 @@ function ProgressBar({
706
855
  Confirmation,
707
856
  Dashboard,
708
857
  Expandable,
858
+ Footer,
859
+ Header,
709
860
  MultiSelect,
710
861
  NavTabClient,
711
862
  Navigation,
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts","../src/components/Button.tsx","../src/components/TextInput.tsx","../src/components/Slider.tsx","../src/components/SingleSelect.tsx","../src/components/Tooltip.tsx","../src/components/NavTabClient.tsx","../src/components/Card.tsx","../src/components/Toast.tsx","../src/components/Expandable.tsx","../src/components/MultiSelect.tsx","../src/components/ThemeToggle.tsx","../src/components/Dashboard.tsx","../src/components/Badge.tsx","../src/components/Skeleton.tsx","../src/components/Navigation.tsx","../src/components/Confirmation.tsx","../src/components/ProgressBar.tsx"],"sourcesContent":["export { default as Button } from \"./components/Button\";\nexport { default as TextInput } from \"./components/TextInput\";\nexport { default as Slider } from \"./components/Slider\";\nexport { default as SingleSelect } from \"./components/SingleSelect\";\nexport { default as Tooltip } from \"./components/Tooltip\";\nexport { default as NavTabClient } from \"./components/NavTabClient\";\nexport { default as Card } from \"./components/Card\";\nexport { default as Toast } from \"./components/Toast\";\nexport { default as Expandable } from \"./components/Expandable\";\nexport { default as MultiSelect } from \"./components/MultiSelect\";\nexport { default as ThemeToggle } from \"./components/ThemeToggle\";\nexport { default as Dashboard } from \"./components/Dashboard\";\nexport { default as Badge } from \"./components/Badge\";\nexport { default as Skeleton } from \"./components/Skeleton\";\nexport { default as Navigation } from \"./components/Navigation\";\nexport { default as Confirmation } from \"./components/Confirmation\";\nexport { default as ProgressBar } from \"./components/ProgressBar\";\n","import React from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faCircleNotch } from \"@fortawesome/free-solid-svg-icons\";\n\ntype Button = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"color\"> & {\n label?: string;\n icon?: IconProp;\n isnotif?: boolean;\n isLoading?: boolean;\n color?: \"primary\" | \"danger\" | \"warn\" | \"info\" | \"success\";\n btnType?: \"outline\" | \"primary\" | \"muted\";\n};\n\nexport default function Button({\n label,\n icon,\n isLoading,\n btnType = \"primary\",\n color = \"primary\",\n className = \"\",\n ...rest\n}: Readonly<Button>) {\n const disabled = rest.disabled || isLoading;\n const buttonIcon = isLoading ? faCircleNotch : icon;\n const loadingLabel = label && isLoading ? \"Memproses ...\" : \"\";\n\n return (\n <button\n {...rest}\n disabled={disabled}\n className={`fx fx--${disabled ? \"muted\" : btnType} fx--color-${color} ${className}`}\n >\n <span className=\"fx__face flex gap-2\">\n {buttonIcon && (isLoading || icon) && (\n <FontAwesomeIcon\n icon={buttonIcon}\n className={`text-[1.2rem] ${label && \"mr-[0.3rem]\"} ${\n isLoading ? \"animate-spin\" : \"\"\n }`}\n />\n )}\n {isLoading ? loadingLabel : label}\n </span>\n </button>\n );\n}\n\nconst IconButton = ({\n label,\n icon,\n isLoading,\n btnType: _btnType,\n isnotif: _isnotif,\n color = \"primary\",\n className = \"\",\n ...rest\n}: Readonly<Button>) => {\n const disabled = rest.disabled || isLoading;\n const btnIcon = isLoading ? faCircleNotch : icon;\n return (\n <button\n {...rest}\n disabled={disabled}\n className={`fx fx--rounded fx--${disabled ? \"muted\" : \"soft\"} fx--color-${color} ${className}`}\n >\n <span className={`fx__face gap-4 ${label ? \"\" : \"fx__face--icon\"}`}>\n {btnIcon && (\n <FontAwesomeIcon\n icon={btnIcon}\n className={isLoading ? \"animate-spin\" : \"\"}\n />\n )}\n {label}\n </span>\n </button>\n );\n};\n\nconst IconButtonGroup = ({ list }: { list: Button[] }) => {\n return (\n <div className=\"fg\">\n <span className=\"fg__glow fg__glow--tl\" aria-hidden=\"true\"></span>\n <span className=\"fg__glow fg__glow--br\" aria-hidden=\"true\"></span>\n {list.map(\n (\n {\n icon,\n isLoading,\n isnotif,\n label: _label,\n btnType: _btnType,\n color: _color,\n className = \"\",\n ...rest\n },\n idx,\n ) => {\n const btnIcon = isLoading ? faCircleNotch : icon;\n return (\n <button\n type=\"button\"\n {...rest}\n key={idx + 1}\n disabled={rest.disabled || isLoading}\n className={`fg__item ${className}`}\n >\n {btnIcon && (\n <FontAwesomeIcon\n icon={btnIcon}\n className={isLoading ? \"animate-spin\" : \"\"}\n />\n )}\n {isnotif && <span className=\"btn__notif_badge\"></span>}\n </button>\n );\n },\n )}\n </div>\n );\n};\n\nButton.IconButton = IconButton;\nButton.IconButtonGroup = IconButtonGroup;\n","import React from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function TextInput({\n label,\n labelFor,\n icon,\n outerclass,\n inputclass,\n ...attr\n}: Readonly<\n React.InputHTMLAttributes<HTMLInputElement> & {\n label?: string;\n labelFor?: string;\n icon?: IconProp;\n outerclass?: string;\n inputclass?: string;\n }\n>) {\n return (\n <div className={`${outerclass} w-full`}>\n {label && (\n <label htmlFor={labelFor} className=\"text-input__label fi__label\">\n {label}\n </label>\n )}\n <div className={`fi fi--text ${attr.className ?? \"\"}`}>\n <span className=\"fi__glow\" aria-hidden=\"true\"></span>\n {icon && <FontAwesomeIcon icon={icon} className=\"fi__lead\" />}\n <input\n {...attr}\n className={`text-input w-full ${icon ? \"!pl-[0.6rem]\" : \"\"} ${inputclass ?? \"\"}`}\n />\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { faCircle, faPowerOff } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function Slider(\n attr: Readonly<React.InputHTMLAttributes<HTMLInputElement>>,\n) {\n return (\n <div className=\"flex items-center h-[3rem]\">\n <label className=\"fs\">\n <input type=\"checkbox\" className=\"fs__input\" {...attr} />\n <span className=\"fs__track\" aria-hidden=\"true\">\n <span className=\"fs__knob\"></span>\n <FontAwesomeIcon icon={faCircle} className=\"fs__icon fs__icon--off\" />\n <FontAwesomeIcon\n icon={faPowerOff}\n className=\"fs__icon fs__icon--on\"\n />\n </span>\n </label>\n </div>\n );\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faCaretRight, faCheck } from \"@fortawesome/free-solid-svg-icons\";\n\ntype Option = { label: string; value: string };\n\ntype SingleSelect = React.InputHTMLAttributes<HTMLInputElement> & {\n label?: string;\n labelHtml?: string;\n placeholder?: string;\n outerclass?: string;\n options?: Option[];\n stringOptions?: string[];\n stateaction?: (param: string | Option) => void;\n};\n\nexport default function SingleSelect(attr: Readonly<SingleSelect>) {\n const { options = [], stringOptions = [], ...attrInput } = attr;\n const inputValue = attrInput.value;\n const [keyword, setKeyword] = useState(\"\");\n const [selected, setSelected] = useState<{ label: string; value: any }>({\n label: \"\",\n value: \"\",\n });\n\n function selectItem(\n { label, value }: { label: string; value: any },\n e: React.MouseEvent<HTMLButtonElement>,\n ) {\n const triggerManual = attrInput.onChange;\n if (triggerManual) {\n triggerManual?.({\n target: { value, name: attrInput.name },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n setSelected({ label, value });\n\n if (attr.stateaction) {\n if (options?.length > 0) attr.stateaction({ label, value });\n if (stringOptions?.length > 0) attr.stateaction(value);\n }\n\n setKeyword(\"\");\n e.currentTarget.blur();\n }\n\n function autoUpdateValue(updatedValue: string) {\n if (updatedValue) {\n const filtered = availableOptions.find(\n ({ value }) => value == updatedValue,\n );\n if (filtered) setSelected(filtered);\n }\n }\n\n const availableOptions = useMemo(() => {\n let defaultOptions = options && options.length > 0;\n if (!defaultOptions)\n return stringOptions.map((opt) => ({ label: opt, value: opt }));\n return options;\n }, [options, stringOptions]);\n\n const filteredOptions = useMemo(() => {\n return availableOptions.filter(\n ({ label, value }) =>\n (label + \"\").toLowerCase().includes(keyword.toLowerCase()) ||\n (value + \"\").toLowerCase().includes(keyword.toLowerCase()),\n );\n }, [keyword, availableOptions]);\n\n useEffect(() => {\n inputValue && autoUpdateValue(inputValue as string);\n }, [inputValue, availableOptions]);\n\n return (\n <div className={`w-full ${attr.outerclass}`}>\n {attrInput.label && (\n <label\n className=\"text-input__label fi__label\"\n htmlFor={attrInput.labelHtml}\n >\n {attrInput.label}\n </label>\n )}\n <div className={`fi ${attrInput.className ?? \"\"}`}>\n <span className=\"fi__glow\" aria-hidden=\"true\"></span>\n <input\n type=\"hidden\"\n {...attrInput}\n {...(attrInput.onChange ? { onChange: attrInput.onChange } : {})}\n value={attrInput.value ?? selected.value}\n />\n <input\n type=\"search\"\n value={keyword}\n autoComplete=\"off\"\n onChange={(e) => setKeyword(e.target.value)}\n className={`${attrInput.name}-keyword ${input} ${selected.value ? \"fi__input--filled\" : \"\"}`}\n placeholder={selected.value ? selected.label : attrInput.placeholder}\n />\n <div className=\"select-item__wrapper fi__menu\">\n {filteredOptions.length == 0 && keyword != \"\" && (\n <button disabled className=\"select-item fi__empty\">\n Tidak ada Item\n </button>\n )}\n {filteredOptions.map(({ label, value }) => (\n <button\n key={value}\n type=\"button\"\n className=\"select-item fi__item\"\n onClick={(e) => selectItem({ label, value }, e)}\n >\n {label}\n {selected.value == value && (\n <FontAwesomeIcon icon={faCheck} className=\"fi__check\" />\n )}\n </button>\n ))}\n </div>\n <FontAwesomeIcon icon={faCaretRight} className=\"fi__icon\" />\n </div>\n </div>\n );\n}\n\nSingleSelect.autoFill = autoFillInput;\n\nfunction autoFillInput(\n value: string,\n elName: string,\n list: { label: string; value: string }[],\n) {\n const inp = document.querySelector(`[name=\"${elName}\"]`) as HTMLInputElement;\n inp.value = `${value || \"\"}`;\n const filtered = list.find((item) => item.value == value);\n const el = document.querySelector(`.${elName}-keyword`);\n el?.setAttribute(\"placeholder\", `${filtered?.label}`);\n}\n\nconst input = \"text-input peer w-full\";\n","import React from \"react\";\n\ntype Tooltip = {\n children: React.ReactNode;\n text: string;\n position: \"top\" | \"bottom\" | \"right\" | \"left\";\n};\n\nexport default function Tooltip({\n children,\n text,\n position = \"top\",\n}: Readonly<Tooltip>) {\n function getAccent() {\n const mapping = {\n top,\n bottom,\n left,\n right,\n };\n return mapping[position];\n }\n return (\n <div className=\"relative\">\n <div className=\"peer\">{children}</div>\n <span className={`tooltip-text ${getAccent()}`}>{text}</span>\n </div>\n );\n}\n\nconst top =\n \"bottom-full translate-y-[-0.3rem] right-0 after:bottom-0 after:translate-y-[0.25rem] \";\nconst bottom =\n \"right-0 top-full translate-y-[0.3rem] after:top-[-0.4rem] after:translate-y-[0.2rem] \";\nconst right =\n \"left-full w-[max-content] translate-x-[0.6rem] after:left-[-0.2rem] top-[-0.2rem] after:top-[0.6rem]\";\nconst left =\n \"right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem] after:right-[-0.2rem] after:top-[0.6rem]\";\n","import React from \"react\";\n\ntype Option = {\n label: string;\n value: string;\n};\n\nexport default function NavTabClient({\n items,\n state,\n}: Readonly<{\n items: Option[];\n state: {\n active: string;\n setActive: (val: string) => void;\n };\n}>) {\n return (\n <nav className=\"fn\" role=\"tablist\">\n {items.map(({ label, value }) => (\n <button\n role=\"tab\"\n key={value}\n type=\"button\"\n aria-selected={state.active == value}\n className={`fn__item ${state.active == value ? \"fn__item--active\" : \"\"}`}\n onClick={() => state.setActive(value)}\n >\n {label}\n </button>\n ))}\n </nav>\n );\n}\n","import { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { faCaretRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\n\ntype Card = {\n cardClass?: string;\n title?: string;\n icon?: IconProp;\n footer?: React.ReactNode;\n titleChild?: React.ReactNode;\n children: React.ReactNode;\n};\n\n/* frame is pure CSS (see .nc in futuristic.css), so Card renders on the server */\nexport default function Card({\n title,\n icon,\n footer,\n children,\n cardClass = \"\",\n titleChild,\n}: Readonly<Card>) {\n return (\n <article className={`nc ${cardClass}`}>\n <div className=\"nc__edge\" aria-hidden=\"true\"></div>\n <div className=\"nc__glass\" aria-hidden=\"true\"></div>\n <span className=\"nc__corner nc__corner--tl\" aria-hidden=\"true\"></span>\n <span className=\"nc__corner nc__corner--br\" aria-hidden=\"true\"></span>\n <span className=\"nc__notch\" aria-hidden=\"true\"></span>\n <span className=\"nc__bars\" aria-hidden=\"true\">\n <i className=\"on\"></i>\n <i className=\"on\"></i>\n <i className=\"on\"></i>\n <i className=\"on\"></i>\n <i></i>\n <i></i>\n </span>\n <div className=\"nc__header\">\n <div className=\"nc__head-row\">\n <div className=\"nc__title-wrap\">\n {icon && <FontAwesomeIcon icon={faCaretRight} />}\n <h3 className=\"nc__title\">{title}</h3>\n </div>\n {titleChild}\n </div>\n <div className=\"nc__rule mt-4\"></div>\n </div>\n <div className=\"nc__body\">{children}</div>\n {footer && <div className=\"nc__footer\">{footer}</div>}\n </article>\n );\n}\n\nconst SimpleCard = ({\n icon,\n title,\n footer,\n children,\n titleChild,\n cardClass = \"\",\n}: Card) => {\n return (\n <article className={`nc nc--simple ${cardClass}`}>\n <div className=\"nc__edge\" aria-hidden=\"true\"></div>\n <div className=\"nc__glass\" aria-hidden=\"true\"></div>\n <span className=\"nc__corner nc__corner--tl\" aria-hidden=\"true\"></span>\n <span className=\"nc__corner nc__corner--br\" aria-hidden=\"true\"></span>\n {(title || titleChild) && (\n <div className=\"nc__header\">\n <div className=\"nc__head-row\">\n <div className=\"nc__title-wrap\">\n {icon && <FontAwesomeIcon icon={faCaretRight} />}\n <h3 className=\"nc__title\">{title}</h3>\n </div>\n {titleChild}\n </div>\n <div className=\"nc__rule mt-4\"></div>\n </div>\n )}\n <div className=\"nc__body pt-0!\">{children}</div>\n {footer && <div className=\"nc__footer\">{footer}</div>}\n </article>\n );\n};\n\nCard.Simple = SimpleCard;\n\nconst Footer = ({\n className,\n children,\n}: {\n className?: string;\n children?: React.ReactNode;\n}) => {\n return (\n <div\n className={`${className} border-t border-t-[var(--ss6f-color-border)]`}\n >\n {children}\n </div>\n );\n};\n\nCard.Footer = Footer;\n","import React from \"react\";\nimport iconInfo from \"../../assets/icon-info.svg\";\nimport iconError from \"../../assets/icon-error.svg\";\nimport iconWarning from \"../../assets/icon-warning.svg\";\nimport iconSuccess from \"../../assets/icon-success.svg\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\ntype ToastType = \"warning\" | \"success\" | \"info\" | \"danger\";\ntype Toast = {\n title: string;\n className?: string;\n description: string;\n type: ToastType;\n};\n\nexport const statusIcons: Record<ToastType, string> = {\n info: iconInfo,\n warning: iconWarning,\n success: iconSuccess,\n danger: iconError,\n};\n\nexport default function Toast({\n title,\n description,\n type = \"info\",\n className,\n}: Readonly<Toast>) {\n return (\n <div className={`toast__wrapper ft ft--${type} ${className ?? \"\"}`}>\n <span className=\"ft__corner ft__corner--tl\" aria-hidden=\"true\"></span>\n <span className=\"ft__corner ft__corner--tr\" aria-hidden=\"true\"></span>\n <div className=\"ft__body\">\n <img src={statusIcons[type]} alt=\"\" className=\"ft__icon\" />\n <div>\n <p className=\"ft__title\">{title}</p>\n <p className=\"ft__desc\">{description}</p>\n </div>\n </div>\n <p className=\"ft__bar toast-bar-animate\"></p>\n </div>\n );\n}\n\nconst Inline = ({\n className,\n text,\n type,\n icon = undefined,\n}: {\n className?: string;\n text: string;\n type: ToastType;\n icon?: IconProp;\n}) => {\n return (\n <div className={`ft-inline ft--${type} ${className ?? \"\"}`}>\n {icon ? (\n <FontAwesomeIcon icon={icon} className=\"ft-inline__fa\" />\n ) : (\n <img src={statusIcons[type]} alt=\"\" className=\"ft-inline__icon\" />\n )}\n <p>{text}</p>\n </div>\n );\n};\n\nToast.Inline = Inline;\n","import React from \"react\";\nimport { faCaretRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\ntype Expandable = {\n children: React.ReactNode;\n title: string;\n className?: string;\n isOpen?: boolean;\n};\n\nexport default function Expandable({\n children,\n title,\n className,\n isOpen,\n}: Readonly<Expandable>) {\n const name = title.replace(/\\s+/g, \"\");\n return (\n <div className={`expandable fe ${className ?? \"\"}`}>\n <span className=\"fe__glow\" aria-hidden=\"true\"></span>\n <input\n id={name}\n type=\"checkbox\"\n defaultChecked={isOpen}\n className=\"opacity-[0] peer absolute top-0 ex-title\"\n />\n <FontAwesomeIcon icon={faCaretRight} className=\"expandable__icon\" />\n <label htmlFor={name} className=\"expandable__title\">\n {title}\n </label>\n <div className=\"expandable__body\">\n <div className=\"p-[0.75rem] px-[1rem]\">{children}</div>\n </div>\n </div>\n );\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faCheck, faListCheck } from \"@fortawesome/free-solid-svg-icons\";\n\ntype Option = {\n value: string;\n label: string;\n};\n\ntype MultiSelect = {\n label?: string;\n labelHtml?: string;\n outerclass?: string;\n options?: Option[];\n stringOptions?: string[];\n state: {\n value: Option[];\n select: React.Dispatch<React.SetStateAction<Option[]>>;\n };\n};\n\nexport default function MultiSelect({\n state,\n label,\n labelHtml,\n ...attr\n}: Readonly<MultiSelect>) {\n const { options = [], stringOptions = [] } = attr;\n const [keyword, setKeyword] = useState(\"\");\n\n const availableOptions = useMemo(() => {\n const isDefaultOption = options && options.length > 0;\n if (!isDefaultOption)\n return stringOptions.map((opt) => ({ label: opt, value: opt }));\n return options;\n }, [options, stringOptions]);\n\n function getFiltered() {\n return availableOptions.filter(\n ({ label, value }) =>\n (label + \"\").toLowerCase().includes(keyword.toLowerCase()) ||\n (value + \"\").toLowerCase().includes(keyword.toLowerCase()),\n );\n }\n\n function selectItem({ label, value }: { label: string; value: string }) {\n state.select((prev) => {\n const isItemExist = prev.some((item: Option) => item.value == value);\n if (isItemExist) {\n return prev.filter((item: Option) => item.value != value);\n }\n return [...prev, { label, value }];\n });\n }\n\n function isItemExist(value: string) {\n return state.value.find((item: any) => item.value == value);\n }\n\n const selectUnSelectAll = useCallback(() => {\n const isAllSelected = state.value.length == availableOptions.length;\n state.select(isAllSelected ? [] : availableOptions);\n }, [state.value, availableOptions]);\n\n return (\n <div className={`w-full ${attr.outerclass}`}>\n {label && (\n <label htmlFor={labelHtml} className=\"text-input__label fi__label\">\n {label}\n </label>\n )}\n <div className=\"fi\">\n <span className=\"fi__glow\" aria-hidden=\"true\"></span>\n <input\n type=\"search\"\n value={keyword}\n autoComplete=\"off\"\n className={`${input} ${state.value.length > 0 ? \"fi__input--filled\" : \"\"}`}\n onChange={(e) => setKeyword(e.target.value)}\n placeholder={`${state.value.length} Dipilih`}\n />\n <div className=\"select-item__wrapper select-multiple__wrapper fi__menu\">\n {getFiltered().length == 0 && keyword != \"\" && (\n <button disabled className=\"select-item fi__empty\">\n Tidak ada Item\n </button>\n )}\n {getFiltered().map(({ label, value }) => (\n <button\n key={value}\n type=\"button\"\n onClick={() => selectItem({ label, value })}\n className=\"select-item fi__item\"\n >\n {label}\n {isItemExist(value) && (\n <FontAwesomeIcon icon={faCheck} className=\"fi__check\" />\n )}\n </button>\n ))}\n </div>\n <button type=\"button\" className=\"fi__icon\" onClick={selectUnSelectAll}>\n <FontAwesomeIcon icon={faListCheck} />\n </button>\n </div>\n </div>\n );\n}\nconst input = \"text-input peer w-full\";\n","import React from \"react\";\nimport { faMoon, faSun } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function ThemeToggle(\n attr: Readonly<React.InputHTMLAttributes<HTMLInputElement>>,\n) {\n return (\n <div className=\"flex items-center h-[3rem]\">\n <label className=\"fs fs--theme\">\n <input type=\"checkbox\" className=\"fs__input\" {...attr} />\n <span className=\"fs__track\" aria-hidden=\"true\">\n <span className=\"fs__knob\">\n <FontAwesomeIcon icon={faMoon} className=\"fs__moon\" />\n <FontAwesomeIcon icon={faSun} className=\"fs__sun\" />\n </span>\n </span>\n </label>\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport MultiSelect from \"./MultiSelect\";\nimport SingleSelect from \"./SingleSelect\";\n\nconst list = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n];\nconst stringList = [\"option1\", \"option2\", \"option3\"];\n\nexport default function Dashboard() {\n const [selectedItem, setSelectedItem] = useState<\n { label: string; value: string }[]\n >([]);\n const [sel, setSel] = useState({ label: \"\", value: \"\" });\n\n function updateState(item: string) {\n const filtered = list.find(({ value }) => value == item);\n filtered && setSel(filtered);\n }\n\n return (\n <div className=\"flex items-center gap-[1rem]\">\n <MultiSelect\n label=\"Multi Select\"\n stringOptions={stringList}\n state={{ value: selectedItem, select: setSelectedItem }}\n />\n <SingleSelect\n label=\"Single Select\"\n name=\"newinput\"\n stringOptions={stringList}\n placeholder=\"-- Pilih Status --\"\n value={sel.value}\n />\n </div>\n );\n}\n","import React from \"react\";\nexport default function Badge({\n text,\n type,\n className,\n}: Readonly<{\n text: string;\n type: \"success\" | \"danger\" | \"warning\" | \"info\";\n className?: string;\n}>) {\n return (\n <div className=\"badge__wrapper\">\n {/* ft--{type} supplies the status color (--t), shared with Toast */}\n <span className={`fb ft--${type} ${className ?? \"\"}`}>{text}</span>\n </div>\n );\n}\n","import React from \"react\";\nexport default function Skeleton({ className }: { className?: string }) {\n return (\n <div className={`${className} skeleton`}>\n <span className=\"skeleton__item skeleton-slide\"></span>\n </div>\n );\n}\n","import React from \"react\";\n\nexport default function Navigation() {\n return <nav></nav>;\n}\n\nconst URLNavigation = (props: {\n list: { label: string; href: string }[];\n activeUrl: string;\n outerclass?: string;\n CustomComponent?: React.ElementType;\n}) => {\n const Component = props.CustomComponent || \"a\";\n\n return (\n <nav className={`fnav ${props.outerclass ?? \"\"}`}>\n <span className=\"fnav__glow fnav__glow--tr\" aria-hidden=\"true\"></span>\n <span className=\"fnav__glow fnav__glow--bl\" aria-hidden=\"true\"></span>\n {props.list.map(({ label, href }) => {\n const isActive = href === props.activeUrl;\n return (\n <Component\n key={href}\n href={href}\n aria-current={isActive ? \"page\" : undefined}\n className={`fnav__item ${isActive ? \"fnav__item--active\" : \"\"}`}\n >\n {label}\n </Component>\n );\n })}\n </nav>\n );\n};\n\nNavigation.URL = URLNavigation;\n","import React from \"react\";\nimport Card from \"./Card\";\nimport Button from \"./Button\";\nimport { statusIcons } from \"./Toast\";\n\ntype ConfirmationType = \"info\" | \"warning\" | \"danger\" | \"success\";\n\nconst buttonColor = {\n info: \"info\",\n warning: \"warn\",\n danger: \"danger\",\n success: \"success\",\n} as const;\n\nexport default function Confirmation({\n type = \"warning\",\n text,\n title,\n secondaryAction,\n secondaryLabel = \"Tidak\",\n mainAction,\n mainLabel = \"Ya\",\n}: {\n mainAction: () => void;\n secondaryAction?: () => void;\n mainLabel?: string;\n secondaryLabel?: string;\n title: string;\n text: string;\n type?: ConfirmationType;\n}) {\n return (\n <div className=\"confirmation__outer\">\n <Card\n title={title}\n cardClass=\"fc\"\n footer={\n <div className=\"fc__actions\">\n {secondaryAction && (\n <Button\n type=\"button\"\n btnType=\"outline\"\n color={buttonColor[type]}\n label={secondaryLabel}\n onClick={secondaryAction}\n />\n )}\n <Button\n type=\"button\"\n btnType=\"primary\"\n color={buttonColor[type]}\n label={mainLabel}\n onClick={mainAction}\n />\n </div>\n }\n >\n <div className=\"fc__content\">\n <img src={statusIcons[type]} alt=\"\" className=\"fc__icon\" />\n <p>{text}</p>\n </div>\n </Card>\n </div>\n );\n}\n","import React from \"react\";\n\ntype ProgressBar = {\n value: number;\n max?: number;\n label?: string;\n showValue?: boolean;\n color?: \"primary\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n className?: string;\n};\n\nexport default function ProgressBar({\n value,\n max = 100,\n label,\n showValue = true,\n color = \"primary\",\n className = \"\",\n}: Readonly<ProgressBar>) {\n const percent = Math.min(100, Math.max(0, Math.round((value / max) * 100)));\n // non-primary colors reuse the status palette (ft--{type} sets --t), shared with Toast/Badge\n const colorClass = color === \"primary\" ? \"\" : `ft--${color}`;\n\n return (\n <div className={`fp ${colorClass} ${className}`}>\n {(label || showValue) && (\n <div className=\"fp__head\">\n <span className=\"fp__label\">{label}</span>\n {showValue && <span className=\"fp__value\">{percent}%</span>}\n </div>\n )}\n <div\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={100}\n className=\"fp__track\"\n aria-valuenow={percent}\n >\n <div className=\"fp__fill\" style={{ width: `${percent}%` }}></div>\n </div>\n </div>\n );\n}\n"],"mappings":"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","names":["React","list","import_react","import_react_fontawesome","_a","React","import_react","import_free_solid_svg_icons","import_react_fontawesome","React","import_react","import_react_fontawesome","import_free_solid_svg_icons","React","list","import_react","React","import_react","React","import_free_solid_svg_icons","import_react_fontawesome","import_react","React","import_react","import_react_fontawesome","React","import_react","import_free_solid_svg_icons","import_react_fontawesome","React","import_react","import_react_fontawesome","import_free_solid_svg_icons","label","isItemExist","React","input","import_react","import_free_solid_svg_icons","import_react_fontawesome","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React"]}
1
+ {"version":3,"sources":["../src/index.ts","../src/components/Button.tsx","../src/components/TextInput.tsx","../src/components/Slider.tsx","../src/components/SingleSelect.tsx","../src/components/Tooltip.tsx","../src/components/NavTabClient.tsx","../src/components/Card.tsx","../src/components/Toast.tsx","../src/components/Expandable.tsx","../src/components/MultiSelect.tsx","../src/components/ThemeToggle.tsx","../src/components/Dashboard.tsx","../src/components/Badge.tsx","../src/components/Skeleton.tsx","../src/components/Navigation.tsx","../src/components/Confirmation.tsx","../src/components/ProgressBar.tsx","../src/components/Header.tsx","../src/components/Footer.tsx"],"sourcesContent":["export { default as Button } from \"./components/Button\";\nexport { default as TextInput } from \"./components/TextInput\";\nexport { default as Slider } from \"./components/Slider\";\nexport { default as SingleSelect } from \"./components/SingleSelect\";\nexport { default as Tooltip } from \"./components/Tooltip\";\nexport { default as NavTabClient } from \"./components/NavTabClient\";\nexport { default as Card } from \"./components/Card\";\nexport { default as Toast } from \"./components/Toast\";\nexport { default as Expandable } from \"./components/Expandable\";\nexport { default as MultiSelect } from \"./components/MultiSelect\";\nexport { default as ThemeToggle } from \"./components/ThemeToggle\";\nexport { default as Dashboard } from \"./components/Dashboard\";\nexport { default as Badge } from \"./components/Badge\";\nexport { default as Skeleton } from \"./components/Skeleton\";\nexport { default as Navigation } from \"./components/Navigation\";\nexport { default as Confirmation } from \"./components/Confirmation\";\nexport { default as ProgressBar } from \"./components/ProgressBar\";\nexport { default as Header } from \"./components/Header\";\nexport { default as Footer } from \"./components/Footer\";\n","import React from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faCircleNotch } from \"@fortawesome/free-solid-svg-icons\";\n\ntype Button = Omit<React.ButtonHTMLAttributes<HTMLButtonElement>, \"color\"> & {\n label?: string;\n icon?: IconProp;\n isnotif?: boolean;\n isLoading?: boolean;\n color?: \"primary\" | \"danger\" | \"warn\" | \"info\" | \"success\";\n btnType?: \"outline\" | \"primary\" | \"muted\";\n};\n\nexport default function Button({\n label,\n icon,\n isLoading,\n btnType = \"primary\",\n color = \"primary\",\n className = \"\",\n ...rest\n}: Readonly<Button>) {\n const disabled = rest.disabled || isLoading;\n const buttonIcon = isLoading ? faCircleNotch : icon;\n const loadingLabel = label && isLoading ? \"Memproses ...\" : \"\";\n\n return (\n <button\n {...rest}\n disabled={disabled}\n className={`fx fx--${disabled ? \"muted\" : btnType} fx--color-${color} ${className}`}\n >\n <span className=\"fx__face flex gap-2\">\n {buttonIcon && (isLoading || icon) && (\n <FontAwesomeIcon\n icon={buttonIcon}\n className={`text-[1.2rem] ${label && \"mr-[0.3rem]\"} ${\n isLoading ? \"animate-spin\" : \"\"\n }`}\n />\n )}\n {isLoading ? loadingLabel : label}\n </span>\n </button>\n );\n}\n\nconst IconButton = ({\n label,\n icon,\n isLoading,\n btnType: _btnType,\n isnotif: _isnotif,\n color = \"primary\",\n className = \"\",\n ...rest\n}: Readonly<Button>) => {\n const disabled = rest.disabled || isLoading;\n const btnIcon = isLoading ? faCircleNotch : icon;\n return (\n <button\n {...rest}\n disabled={disabled}\n className={`fx fx--rounded fx--${disabled ? \"muted\" : \"soft\"} fx--color-${color} ${className}`}\n >\n <span className={`fx__face gap-4 ${label ? \"\" : \"fx__face--icon\"}`}>\n {btnIcon && (\n <FontAwesomeIcon\n icon={btnIcon}\n className={isLoading ? \"animate-spin\" : \"\"}\n />\n )}\n {label}\n </span>\n </button>\n );\n};\n\nconst IconButtonGroup = ({ list }: { list: Button[] }) => {\n return (\n <div className=\"fg\">\n <span className=\"fg__glow fg__glow--tl\" aria-hidden=\"true\"></span>\n <span className=\"fg__glow fg__glow--br\" aria-hidden=\"true\"></span>\n {list.map(\n (\n {\n icon,\n isLoading,\n isnotif,\n label: _label,\n btnType: _btnType,\n color: _color,\n className = \"\",\n ...rest\n },\n idx,\n ) => {\n const btnIcon = isLoading ? faCircleNotch : icon;\n return (\n <button\n type=\"button\"\n {...rest}\n key={idx + 1}\n disabled={rest.disabled || isLoading}\n className={`fg__item ${className}`}\n >\n {btnIcon && (\n <FontAwesomeIcon\n icon={btnIcon}\n className={isLoading ? \"animate-spin\" : \"\"}\n />\n )}\n {isnotif && <span className=\"btn__notif_badge\"></span>}\n </button>\n );\n },\n )}\n </div>\n );\n};\n\nButton.IconButton = IconButton;\nButton.IconButtonGroup = IconButtonGroup;\n","import React from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function TextInput({\n label,\n labelFor,\n icon,\n outerclass,\n inputclass,\n ...attr\n}: Readonly<\n React.InputHTMLAttributes<HTMLInputElement> & {\n label?: string;\n labelFor?: string;\n icon?: IconProp;\n outerclass?: string;\n inputclass?: string;\n }\n>) {\n return (\n <div className={`${outerclass} w-full`}>\n {label && (\n <label htmlFor={labelFor} className=\"text-input__label fi__label\">\n {label}\n </label>\n )}\n <div className={`fi fi--text ${attr.className ?? \"\"}`}>\n <span className=\"fi__glow\" aria-hidden=\"true\"></span>\n {icon && <FontAwesomeIcon icon={icon} className=\"fi__lead\" />}\n <input\n {...attr}\n className={`text-input w-full ${icon ? \"!pl-[0.6rem]\" : \"\"} ${inputclass ?? \"\"}`}\n />\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { faCircle, faPowerOff } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function Slider(\n attr: Readonly<React.InputHTMLAttributes<HTMLInputElement>>,\n) {\n return (\n <div className=\"flex items-center h-[3rem]\">\n <label className=\"fs\">\n <input type=\"checkbox\" className=\"fs__input\" {...attr} />\n <span className=\"fs__track\" aria-hidden=\"true\">\n <span className=\"fs__knob\"></span>\n <FontAwesomeIcon icon={faCircle} className=\"fs__icon fs__icon--off\" />\n <FontAwesomeIcon\n icon={faPowerOff}\n className=\"fs__icon fs__icon--on\"\n />\n </span>\n </label>\n </div>\n );\n}\n","import React, { useEffect, useMemo, useState } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faCaretRight, faCheck } from \"@fortawesome/free-solid-svg-icons\";\n\ntype Option = { label: string; value: string };\n\ntype SingleSelect = React.InputHTMLAttributes<HTMLInputElement> & {\n label?: string;\n labelHtml?: string;\n placeholder?: string;\n outerclass?: string;\n options?: Option[];\n stringOptions?: string[];\n stateaction?: (param: string | Option) => void;\n};\n\nexport default function SingleSelect(attr: Readonly<SingleSelect>) {\n const { options = [], stringOptions = [], ...attrInput } = attr;\n const inputValue = attrInput.value;\n const [keyword, setKeyword] = useState(\"\");\n const [selected, setSelected] = useState<{ label: string; value: any }>({\n label: \"\",\n value: \"\",\n });\n\n function selectItem(\n { label, value }: { label: string; value: any },\n e: React.MouseEvent<HTMLButtonElement>,\n ) {\n const triggerManual = attrInput.onChange;\n if (triggerManual) {\n triggerManual?.({\n target: { value, name: attrInput.name },\n } as React.ChangeEvent<HTMLInputElement>);\n }\n setSelected({ label, value });\n\n if (attr.stateaction) {\n if (options?.length > 0) attr.stateaction({ label, value });\n if (stringOptions?.length > 0) attr.stateaction(value);\n }\n\n setKeyword(\"\");\n e.currentTarget.blur();\n }\n\n function autoUpdateValue(updatedValue: string) {\n if (updatedValue) {\n const filtered = availableOptions.find(\n ({ value }) => value == updatedValue,\n );\n if (filtered) setSelected(filtered);\n }\n }\n\n const availableOptions = useMemo(() => {\n let defaultOptions = options && options.length > 0;\n if (!defaultOptions)\n return stringOptions.map((opt) => ({ label: opt, value: opt }));\n return options;\n }, [options, stringOptions]);\n\n const filteredOptions = useMemo(() => {\n return availableOptions.filter(\n ({ label, value }) =>\n (label + \"\").toLowerCase().includes(keyword.toLowerCase()) ||\n (value + \"\").toLowerCase().includes(keyword.toLowerCase()),\n );\n }, [keyword, availableOptions]);\n\n useEffect(() => {\n inputValue && autoUpdateValue(inputValue as string);\n }, [inputValue, availableOptions]);\n\n return (\n <div className={`w-full ${attr.outerclass}`}>\n {attrInput.label && (\n <label\n className=\"text-input__label fi__label\"\n htmlFor={attrInput.labelHtml}\n >\n {attrInput.label}\n </label>\n )}\n <div className={`fi ${attrInput.className ?? \"\"}`}>\n <span className=\"fi__glow\" aria-hidden=\"true\"></span>\n <input\n type=\"hidden\"\n {...attrInput}\n {...(attrInput.onChange ? { onChange: attrInput.onChange } : {})}\n value={attrInput.value ?? selected.value}\n />\n <input\n type=\"search\"\n value={keyword}\n autoComplete=\"off\"\n onChange={(e) => setKeyword(e.target.value)}\n className={`${attrInput.name}-keyword ${input} ${selected.value ? \"fi__input--filled\" : \"\"}`}\n placeholder={selected.value ? selected.label : attrInput.placeholder}\n />\n <div className=\"select-item__wrapper fi__menu\">\n {filteredOptions.length == 0 && keyword != \"\" && (\n <button disabled className=\"select-item fi__empty\">\n Tidak ada Item\n </button>\n )}\n {filteredOptions.map(({ label, value }) => (\n <button\n key={value}\n type=\"button\"\n className=\"select-item fi__item\"\n onClick={(e) => selectItem({ label, value }, e)}\n >\n {label}\n {selected.value == value && (\n <FontAwesomeIcon icon={faCheck} className=\"fi__check\" />\n )}\n </button>\n ))}\n </div>\n <FontAwesomeIcon icon={faCaretRight} className=\"fi__icon\" />\n </div>\n </div>\n );\n}\n\nSingleSelect.autoFill = autoFillInput;\n\nfunction autoFillInput(\n value: string,\n elName: string,\n list: { label: string; value: string }[],\n) {\n const inp = document.querySelector(`[name=\"${elName}\"]`) as HTMLInputElement;\n inp.value = `${value || \"\"}`;\n const filtered = list.find((item) => item.value == value);\n const el = document.querySelector(`.${elName}-keyword`);\n el?.setAttribute(\"placeholder\", `${filtered?.label}`);\n}\n\nconst input = \"text-input peer w-full\";\n","import React from \"react\";\n\ntype Tooltip = {\n children: React.ReactNode;\n text: string;\n position: \"top\" | \"bottom\" | \"right\" | \"left\";\n};\n\nexport default function Tooltip({\n children,\n text,\n position = \"top\",\n}: Readonly<Tooltip>) {\n function getAccent() {\n const mapping = {\n top,\n bottom,\n left,\n right,\n };\n return mapping[position];\n }\n return (\n <div className=\"relative\">\n <div className=\"peer\">{children}</div>\n <span className={`tooltip-text ${getAccent()}`}>{text}</span>\n </div>\n );\n}\n\nconst top =\n \"bottom-full translate-y-[-0.3rem] right-0 after:bottom-0 after:translate-y-[0.25rem] \";\nconst bottom =\n \"right-0 top-full translate-y-[0.3rem] after:top-[-0.4rem] after:translate-y-[0.2rem] \";\nconst right =\n \"left-full w-[max-content] translate-x-[0.6rem] after:left-[-0.2rem] top-[-0.2rem] after:top-[0.6rem]\";\nconst left =\n \"right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem] after:right-[-0.2rem] after:top-[0.6rem]\";\n","import React from \"react\";\n\ntype Option = {\n label: string;\n value: string;\n};\n\nexport default function NavTabClient({\n items,\n state,\n}: Readonly<{\n items: Option[];\n state: {\n active: string;\n setActive: (val: string) => void;\n };\n}>) {\n return (\n <nav className=\"fn\" role=\"tablist\">\n {items.map(({ label, value }) => (\n <button\n role=\"tab\"\n key={value}\n type=\"button\"\n aria-selected={state.active == value}\n className={`fn__item ${state.active == value ? \"fn__item--active\" : \"\"}`}\n onClick={() => state.setActive(value)}\n >\n {label}\n </button>\n ))}\n </nav>\n );\n}\n","import { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { faCaretRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport React from \"react\";\n\ntype Card = {\n cardClass?: string;\n title?: string;\n icon?: IconProp;\n footer?: React.ReactNode;\n titleChild?: React.ReactNode;\n children: React.ReactNode;\n};\n\n/* frame is pure CSS (see .nc in futuristic.css), so Card renders on the server */\nexport default function Card({\n title,\n icon,\n footer,\n children,\n cardClass = \"\",\n titleChild,\n}: Readonly<Card>) {\n return (\n <article className={`nc ${cardClass}`}>\n <div className=\"nc__edge\" aria-hidden=\"true\"></div>\n <div className=\"nc__glass\" aria-hidden=\"true\"></div>\n <span className=\"nc__corner nc__corner--tl\" aria-hidden=\"true\"></span>\n <span className=\"nc__corner nc__corner--br\" aria-hidden=\"true\"></span>\n <span className=\"nc__notch\" aria-hidden=\"true\"></span>\n <span className=\"nc__bars\" aria-hidden=\"true\">\n <i className=\"on\"></i>\n <i className=\"on\"></i>\n <i className=\"on\"></i>\n <i className=\"on\"></i>\n <i></i>\n <i></i>\n </span>\n <div className=\"nc__header\">\n <div className=\"nc__head-row\">\n <div className=\"nc__title-wrap\">\n {icon && <FontAwesomeIcon icon={faCaretRight} />}\n <h3 className=\"nc__title\">{title}</h3>\n </div>\n {titleChild}\n </div>\n <div className=\"nc__rule mt-4\"></div>\n </div>\n <div className=\"nc__body\">{children}</div>\n {footer && <div className=\"nc__footer\">{footer}</div>}\n </article>\n );\n}\n\nconst SimpleCard = ({\n icon,\n title,\n footer,\n children,\n titleChild,\n cardClass = \"\",\n}: Card) => {\n return (\n <article className={`nc nc--simple ${cardClass}`}>\n <div className=\"nc__edge\" aria-hidden=\"true\"></div>\n <div className=\"nc__glass\" aria-hidden=\"true\"></div>\n <span className=\"nc__corner nc__corner--tl\" aria-hidden=\"true\"></span>\n <span className=\"nc__corner nc__corner--br\" aria-hidden=\"true\"></span>\n {(title || titleChild) && (\n <div className=\"nc__header\">\n <div className=\"nc__head-row\">\n <div className=\"nc__title-wrap\">\n {icon && <FontAwesomeIcon icon={faCaretRight} />}\n <h3 className=\"nc__title\">{title}</h3>\n </div>\n {titleChild}\n </div>\n <div className=\"nc__rule mt-4\"></div>\n </div>\n )}\n <div className=\"nc__body pt-0!\">{children}</div>\n {footer && <div className=\"nc__footer\">{footer}</div>}\n </article>\n );\n};\n\nCard.Simple = SimpleCard;\n\nconst Footer = ({\n className,\n children,\n}: {\n className?: string;\n children?: React.ReactNode;\n}) => {\n return (\n <div\n className={`${className} border-t border-t-[var(--ss6f-color-border)]`}\n >\n {children}\n </div>\n );\n};\n\nCard.Footer = Footer;\n","import React from \"react\";\nimport iconInfo from \"../../assets/icon-info.svg\";\nimport iconError from \"../../assets/icon-error.svg\";\nimport iconWarning from \"../../assets/icon-warning.svg\";\nimport iconSuccess from \"../../assets/icon-success.svg\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\ntype ToastType = \"warning\" | \"success\" | \"info\" | \"danger\";\ntype Toast = {\n title: string;\n className?: string;\n description: string;\n type: ToastType;\n};\n\nexport const statusIcons: Record<ToastType, string> = {\n info: iconInfo,\n warning: iconWarning,\n success: iconSuccess,\n danger: iconError,\n};\n\nexport default function Toast({\n title,\n description,\n type = \"info\",\n className,\n}: Readonly<Toast>) {\n return (\n <div className={`toast__wrapper ft ft--${type} ${className ?? \"\"}`}>\n <span className=\"ft__corner ft__corner--tl\" aria-hidden=\"true\"></span>\n <span className=\"ft__corner ft__corner--tr\" aria-hidden=\"true\"></span>\n <div className=\"ft__body\">\n <img src={statusIcons[type]} alt=\"\" className=\"ft__icon\" />\n <div>\n <p className=\"ft__title\">{title}</p>\n <p className=\"ft__desc\">{description}</p>\n </div>\n </div>\n <p className=\"ft__bar toast-bar-animate\"></p>\n </div>\n );\n}\n\nconst Inline = ({\n className,\n text,\n type,\n icon = undefined,\n}: {\n className?: string;\n text: string;\n type: ToastType;\n icon?: IconProp;\n}) => {\n return (\n <div className={`ft-inline ft--${type} ${className ?? \"\"}`}>\n {icon ? (\n <FontAwesomeIcon icon={icon} className=\"ft-inline__fa\" />\n ) : (\n <img src={statusIcons[type]} alt=\"\" className=\"ft-inline__icon\" />\n )}\n <p>{text}</p>\n </div>\n );\n};\n\nToast.Inline = Inline;\n","import React from \"react\";\nimport { faCaretRight } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\ntype Expandable = {\n children: React.ReactNode;\n title: string;\n className?: string;\n isOpen?: boolean;\n};\n\nexport default function Expandable({\n children,\n title,\n className,\n isOpen,\n}: Readonly<Expandable>) {\n const name = title.replace(/\\s+/g, \"\");\n return (\n <div className={`expandable fe ${className ?? \"\"}`}>\n <span className=\"fe__glow\" aria-hidden=\"true\"></span>\n <input\n id={name}\n type=\"checkbox\"\n defaultChecked={isOpen}\n className=\"opacity-[0] peer absolute top-0 ex-title\"\n />\n <FontAwesomeIcon icon={faCaretRight} className=\"expandable__icon\" />\n <label htmlFor={name} className=\"expandable__title\">\n {title}\n </label>\n <div className=\"expandable__body\">\n <div className=\"p-[0.75rem] px-[1rem]\">{children}</div>\n </div>\n </div>\n );\n}\n","import React, { useCallback, useMemo, useState } from \"react\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faCheck, faListCheck } from \"@fortawesome/free-solid-svg-icons\";\n\ntype Option = {\n value: string;\n label: string;\n};\n\ntype MultiSelect = {\n label?: string;\n labelHtml?: string;\n outerclass?: string;\n options?: Option[];\n stringOptions?: string[];\n state: {\n value: Option[];\n select: React.Dispatch<React.SetStateAction<Option[]>>;\n };\n};\n\nexport default function MultiSelect({\n state,\n label,\n labelHtml,\n ...attr\n}: Readonly<MultiSelect>) {\n const { options = [], stringOptions = [] } = attr;\n const [keyword, setKeyword] = useState(\"\");\n\n const availableOptions = useMemo(() => {\n const isDefaultOption = options && options.length > 0;\n if (!isDefaultOption)\n return stringOptions.map((opt) => ({ label: opt, value: opt }));\n return options;\n }, [options, stringOptions]);\n\n function getFiltered() {\n return availableOptions.filter(\n ({ label, value }) =>\n (label + \"\").toLowerCase().includes(keyword.toLowerCase()) ||\n (value + \"\").toLowerCase().includes(keyword.toLowerCase()),\n );\n }\n\n function selectItem({ label, value }: { label: string; value: string }) {\n state.select((prev) => {\n const isItemExist = prev.some((item: Option) => item.value == value);\n if (isItemExist) {\n return prev.filter((item: Option) => item.value != value);\n }\n return [...prev, { label, value }];\n });\n }\n\n function isItemExist(value: string) {\n return state.value.find((item: any) => item.value == value);\n }\n\n const selectUnSelectAll = useCallback(() => {\n const isAllSelected = state.value.length == availableOptions.length;\n state.select(isAllSelected ? [] : availableOptions);\n }, [state.value, availableOptions]);\n\n return (\n <div className={`w-full ${attr.outerclass}`}>\n {label && (\n <label htmlFor={labelHtml} className=\"text-input__label fi__label\">\n {label}\n </label>\n )}\n <div className=\"fi\">\n <span className=\"fi__glow\" aria-hidden=\"true\"></span>\n <input\n type=\"search\"\n value={keyword}\n autoComplete=\"off\"\n className={`${input} ${state.value.length > 0 ? \"fi__input--filled\" : \"\"}`}\n onChange={(e) => setKeyword(e.target.value)}\n placeholder={`${state.value.length} Dipilih`}\n />\n <div className=\"select-item__wrapper select-multiple__wrapper fi__menu\">\n {getFiltered().length == 0 && keyword != \"\" && (\n <button disabled className=\"select-item fi__empty\">\n Tidak ada Item\n </button>\n )}\n {getFiltered().map(({ label, value }) => (\n <button\n key={value}\n type=\"button\"\n onClick={() => selectItem({ label, value })}\n className=\"select-item fi__item\"\n >\n {label}\n {isItemExist(value) && (\n <FontAwesomeIcon icon={faCheck} className=\"fi__check\" />\n )}\n </button>\n ))}\n </div>\n <button type=\"button\" className=\"fi__icon\" onClick={selectUnSelectAll}>\n <FontAwesomeIcon icon={faListCheck} />\n </button>\n </div>\n </div>\n );\n}\nconst input = \"text-input peer w-full\";\n","import React from \"react\";\nimport { faMoon, faSun } from \"@fortawesome/free-solid-svg-icons\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\nexport default function ThemeToggle(\n attr: Readonly<React.InputHTMLAttributes<HTMLInputElement>>,\n) {\n return (\n <div className=\"flex items-center h-[3rem]\">\n <label className=\"fs fs--theme\">\n <input type=\"checkbox\" className=\"fs__input\" {...attr} />\n <span className=\"fs__track\" aria-hidden=\"true\">\n <span className=\"fs__knob\">\n <FontAwesomeIcon icon={faMoon} className=\"fs__moon\" />\n <FontAwesomeIcon icon={faSun} className=\"fs__sun\" />\n </span>\n </span>\n </label>\n </div>\n );\n}\n","import React, { useState } from \"react\";\nimport MultiSelect from \"./MultiSelect\";\nimport SingleSelect from \"./SingleSelect\";\n\nconst list = [\n { label: \"Option 1\", value: \"option1\" },\n { label: \"Option 2\", value: \"option2\" },\n { label: \"Option 3\", value: \"option3\" },\n];\nconst stringList = [\"option1\", \"option2\", \"option3\"];\n\nexport default function Dashboard() {\n const [selectedItem, setSelectedItem] = useState<\n { label: string; value: string }[]\n >([]);\n const [sel, setSel] = useState({ label: \"\", value: \"\" });\n\n function updateState(item: string) {\n const filtered = list.find(({ value }) => value == item);\n filtered && setSel(filtered);\n }\n\n return (\n <div className=\"flex items-center gap-[1rem]\">\n <MultiSelect\n label=\"Multi Select\"\n stringOptions={stringList}\n state={{ value: selectedItem, select: setSelectedItem }}\n />\n <SingleSelect\n label=\"Single Select\"\n name=\"newinput\"\n stringOptions={stringList}\n placeholder=\"-- Pilih Status --\"\n value={sel.value}\n />\n </div>\n );\n}\n","import React from \"react\";\nexport default function Badge({\n text,\n type,\n className,\n}: Readonly<{\n text: string;\n type: \"success\" | \"danger\" | \"warning\" | \"info\";\n className?: string;\n}>) {\n return (\n <div className=\"badge__wrapper\">\n {/* ft--{type} supplies the status color (--t), shared with Toast */}\n <span className={`fb ft--${type} ${className ?? \"\"}`}>{text}</span>\n </div>\n );\n}\n","import React from \"react\";\nexport default function Skeleton({ className }: { className?: string }) {\n return (\n <div className={`${className} skeleton`}>\n <span className=\"skeleton__item skeleton-slide\"></span>\n </div>\n );\n}\n","import React from \"react\";\n\nexport default function Navigation() {\n return <nav></nav>;\n}\n\nconst URLNavigation = (props: {\n list: { label: string; href: string }[];\n activeUrl: string;\n outerclass?: string;\n CustomComponent?: React.ElementType;\n}) => {\n const Component = props.CustomComponent || \"a\";\n\n return (\n <nav className={`fnav ${props.outerclass ?? \"\"}`}>\n <span className=\"fnav__glow fnav__glow--tr\" aria-hidden=\"true\"></span>\n <span className=\"fnav__glow fnav__glow--bl\" aria-hidden=\"true\"></span>\n {props.list.map(({ label, href }) => {\n const isActive = href === props.activeUrl;\n return (\n <Component\n key={href}\n href={href}\n aria-current={isActive ? \"page\" : undefined}\n className={`fnav__item ${isActive ? \"fnav__item--active\" : \"\"}`}\n >\n {label}\n </Component>\n );\n })}\n </nav>\n );\n};\n\nNavigation.URL = URLNavigation;\n","import React from \"react\";\nimport Card from \"./Card\";\nimport Button from \"./Button\";\nimport { statusIcons } from \"./Toast\";\n\ntype ConfirmationType = \"info\" | \"warning\" | \"danger\" | \"success\";\n\nconst buttonColor = {\n info: \"info\",\n warning: \"warn\",\n danger: \"danger\",\n success: \"success\",\n} as const;\n\nexport default function Confirmation({\n type = \"warning\",\n text,\n title,\n secondaryAction,\n secondaryLabel = \"Tidak\",\n mainAction,\n mainLabel = \"Ya\",\n}: {\n mainAction: () => void;\n secondaryAction?: () => void;\n mainLabel?: string;\n secondaryLabel?: string;\n title: string;\n text: string;\n type?: ConfirmationType;\n}) {\n return (\n <div className=\"confirmation__outer\">\n <Card\n title={title}\n cardClass=\"fc\"\n footer={\n <div className=\"fc__actions\">\n {secondaryAction && (\n <Button\n type=\"button\"\n btnType=\"outline\"\n color={buttonColor[type]}\n label={secondaryLabel}\n onClick={secondaryAction}\n />\n )}\n <Button\n type=\"button\"\n btnType=\"primary\"\n color={buttonColor[type]}\n label={mainLabel}\n onClick={mainAction}\n />\n </div>\n }\n >\n <div className=\"fc__content\">\n <img src={statusIcons[type]} alt=\"\" className=\"fc__icon\" />\n <p>{text}</p>\n </div>\n </Card>\n </div>\n );\n}\n","import React from \"react\";\n\ntype ProgressBar = {\n value: number;\n max?: number;\n label?: string;\n showValue?: boolean;\n color?: \"primary\" | \"info\" | \"success\" | \"warning\" | \"danger\";\n className?: string;\n};\n\nexport default function ProgressBar({\n value,\n max = 100,\n label,\n showValue = true,\n color = \"primary\",\n className = \"\",\n}: Readonly<ProgressBar>) {\n const percent = Math.min(100, Math.max(0, Math.round((value / max) * 100)));\n // non-primary colors reuse the status palette (ft--{type} sets --t), shared with Toast/Badge\n const colorClass = color === \"primary\" ? \"\" : `ft--${color}`;\n\n return (\n <div className={`fp ${colorClass} ${className}`}>\n {(label || showValue) && (\n <div className=\"fp__head\">\n <span className=\"fp__label\">{label}</span>\n {showValue && <span className=\"fp__value\">{percent}%</span>}\n </div>\n )}\n <div\n role=\"progressbar\"\n aria-label={label}\n aria-valuemin={0}\n aria-valuemax={100}\n className=\"fp__track\"\n aria-valuenow={percent}\n >\n <div className=\"fp__fill\" style={{ width: `${percent}%` }}></div>\n </div>\n </div>\n );\n}\n","import React from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\n\ntype HeaderLink = { label: string; href: string };\ntype HeaderPage = HeaderLink & { description?: string; icon?: IconProp };\n\ntype Header = {\n title: string;\n /** shortcut tabs; first half sits left of the title, the rest on the right */\n tabs?: HeaderLink[];\n /** pages for the drop-down list (the yellow arrow appears only when given) */\n pages?: HeaderPage[];\n activeUrl?: string;\n left?: React.ReactNode;\n right?: React.ReactNode;\n drawerTitle?: string;\n /** link component, e.g. Next.js Link; defaults to <a> */\n CustomComponent?: React.ElementType;\n /** id of the hidden toggle; change it if a page renders more than one Header */\n menuId?: string;\n className?: string;\n};\n\n/* server component: the page list opens via a hidden checkbox (CSS only), no client JS */\nexport default function Header({\n title,\n tabs = [],\n pages = [],\n activeUrl,\n left,\n right,\n drawerTitle = \"All Pages\",\n CustomComponent,\n menuId = \"ph-menu\",\n className = \"\",\n}: Readonly<Header>) {\n const Link = CustomComponent || \"a\";\n const current = (href: string) => (href === activeUrl ? \"page\" : undefined);\n const half = Math.ceil(tabs.length / 2);\n\n const renderTabs = (list: HeaderLink[], side: \"l\" | \"r\") => (\n <nav className={`ph__tabs ph__tabs--${side}`} aria-label=\"Shortcuts\">\n {list.map(({ label, href }) => (\n <Link\n key={href}\n href={href}\n aria-current={current(href)}\n className={`ph-tab ${side === \"r\" ? \"ph-tab--r\" : \"\"}`}\n >\n {label}\n </Link>\n ))}\n </nav>\n );\n\n return (\n <header className={`ph ${className}`}>\n <svg\n className=\"ph__deco\"\n width=\"840\"\n height=\"64\"\n viewBox=\"300 0 840 64\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\n <linearGradient id=\"ph-title\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0\" className=\"ph__stop-panel-top\" />\n <stop offset=\"1\" className=\"ph__stop-panel-bottom\" />\n </linearGradient>\n <linearGradient id=\"ph-inner\" x1=\"0\" y1=\"1\" x2=\"0\" y2=\"0\">\n <stop offset=\"0\" className=\"ph__stop-accent\" stopOpacity=\".32\" />\n <stop offset=\".6\" className=\"ph__stop-accent\" stopOpacity=\"0\" />\n </linearGradient>\n <linearGradient id=\"ph-fadeL\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\">\n <stop offset=\"0\" className=\"ph__stop-yellow\" stopOpacity=\"0\" />\n <stop offset=\"1\" className=\"ph__stop-yellow\" />\n </linearGradient>\n <linearGradient id=\"ph-fadeR\" x1=\"1\" y1=\"0\" x2=\"0\" y2=\"0\">\n <stop offset=\"0\" className=\"ph__stop-yellow\" stopOpacity=\"0\" />\n <stop offset=\"1\" className=\"ph__stop-yellow\" />\n </linearGradient>\n </defs>\n <path d=\"M540 0H900L866 56H574Z\" fill=\"url(#ph-title)\" />\n <path d=\"M540 0H900L866 56H574Z\" fill=\"url(#ph-inner)\" />\n <path\n className=\"ph__deco-corners\"\n d=\"M562 35L574.5 55H612 M878 35L865.5 55H828\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M312 40l8-14 M322 40l8-14 M332 40l8-14 M342 40l8-14 M352 40l8-14\"\n stroke=\"url(#ph-fadeL)\"\n strokeWidth=\"3\"\n />\n <path\n d=\"M1128 40l-8-14 M1118 40l-8-14 M1108 40l-8-14 M1098 40l-8-14 M1088 40l-8-14\"\n stroke=\"url(#ph-fadeR)\"\n strokeWidth=\"3\"\n />\n </svg>\n\n <h1 className=\"ph__title\">{title}</h1>\n\n {tabs.length > 0 && renderTabs(tabs.slice(0, half), \"l\")}\n {tabs.length > 1 && renderTabs(tabs.slice(half), \"r\")}\n\n {left && <div className=\"ph__slot ph__slot--left\">{left}</div>}\n {right && <div className=\"ph__slot ph__slot--right\">{right}</div>}\n\n {pages.length > 0 && (\n <>\n <input\n id={menuId}\n type=\"checkbox\"\n className=\"ph__toggle\"\n aria-label=\"Show all pages\"\n />\n <span className=\"ph__arrow-glow\">\n <label\n htmlFor={menuId}\n className=\"ph__arrow\"\n aria-hidden=\"true\"\n ></label>\n </span>\n <div className=\"ph__drawer\">\n <label\n htmlFor={menuId}\n className=\"ph__backdrop\"\n aria-hidden=\"true\"\n ></label>\n <section className=\"ph__panel\" aria-label={drawerTitle}>\n <div className=\"ph__panel-head\">\n <div>\n <span className=\"ph__kicker\">// NAVIGATE</span>\n <h2 className=\"ph__panel-title\">{drawerTitle}</h2>\n </div>\n <span className=\"ph__count\">\n {String(pages.length).padStart(2, \"0\")} PAGES\n </span>\n </div>\n <div className=\"ph__grid\">\n {pages.map(({ label, href, description, icon }) => (\n <Link\n key={href}\n href={href}\n aria-current={current(href)}\n className=\"ph-page\"\n >\n {icon && (\n <span className=\"ph-page__icon\">\n <FontAwesomeIcon icon={icon} />\n </span>\n )}\n <span>\n <span className=\"ph-page__name\">{label}</span>\n {description && (\n <span className=\"ph-page__desc\">{description}</span>\n )}\n </span>\n </Link>\n ))}\n </div>\n </section>\n </div>\n </>\n )}\n </header>\n );\n}\n","import React from \"react\";\n\ntype Footer = {\n text: React.ReactNode;\n className?: string;\n};\n\n/* mirrors Header: flipped title panel, accent corner lines and yellow slashes, anchored to the center */\nexport default function Footer({ text, className = \"\" }: Readonly<Footer>) {\n return (\n <footer className={`pf ${className}`}>\n <svg\n className=\"pf__deco\"\n width=\"480\"\n height=\"40\"\n viewBox=\"480 0 480 40\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\n <linearGradient id=\"pf-panel\" x1=\"0\" y1=\"1\" x2=\"0\" y2=\"0\">\n <stop offset=\"0\" className=\"ph__stop-panel-top\" />\n <stop offset=\"1\" className=\"ph__stop-panel-bottom\" />\n </linearGradient>\n <linearGradient id=\"pf-inner\" x1=\"0\" y1=\"0\" x2=\"0\" y2=\"1\">\n <stop offset=\"0\" className=\"ph__stop-accent\" stopOpacity=\".28\" />\n <stop offset=\".6\" className=\"ph__stop-accent\" stopOpacity=\"0\" />\n </linearGradient>\n <linearGradient id=\"pf-fadeL\" x1=\"0\" y1=\"0\" x2=\"1\" y2=\"0\">\n <stop offset=\"0\" className=\"ph__stop-yellow\" stopOpacity=\"0\" />\n <stop offset=\"1\" className=\"ph__stop-yellow\" />\n </linearGradient>\n <linearGradient id=\"pf-fadeR\" x1=\"1\" y1=\"0\" x2=\"0\" y2=\"0\">\n <stop offset=\"0\" className=\"ph__stop-yellow\" stopOpacity=\"0\" />\n <stop offset=\"1\" className=\"ph__stop-yellow\" />\n </linearGradient>\n </defs>\n <path d=\"M560 40H880L860 8H580Z\" fill=\"url(#pf-panel)\" />\n <path d=\"M560 40H880L860 8H580Z\" fill=\"url(#pf-inner)\" />\n <path\n className=\"ph__deco-corners\"\n d=\"M572 21L580.5 8.5H612 M868 21L859.5 8.5H828\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n <path\n d=\"M492 13l8 14 M502 13l8 14 M512 13l8 14 M522 13l8 14 M532 13l8 14\"\n stroke=\"url(#pf-fadeL)\"\n strokeWidth=\"3\"\n />\n <path\n d=\"M948 13l-8 14 M938 13l-8 14 M928 13l-8 14 M918 13l-8 14 M908 13l-8 14\"\n stroke=\"url(#pf-fadeR)\"\n strokeWidth=\"3\"\n />\n </svg>\n <p className=\"pf__text\">{text}</p>\n </footer>\n );\n}\n"],"mappings":"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","names":["Footer","React","list","import_react","import_react_fontawesome","_a","React","import_react","import_free_solid_svg_icons","import_react_fontawesome","React","import_react","import_react_fontawesome","import_free_solid_svg_icons","React","list","import_react","React","import_react","React","import_free_solid_svg_icons","import_react_fontawesome","import_react","React","import_react","import_react_fontawesome","React","import_react","import_free_solid_svg_icons","import_react_fontawesome","React","import_react","import_react_fontawesome","import_free_solid_svg_icons","label","isItemExist","React","input","import_react","import_free_solid_svg_icons","import_react_fontawesome","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","React","import_react","import_react_fontawesome","left","right","list","React","import_react","Footer","React"]}