ss6-futuristic-component 1.2.0 → 1.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +11 -0
- package/dist/index.js +2 -2
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -2
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +26 -7
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,17 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 1.2.1 (2026-10-11)
|
|
6
|
+
|
|
7
|
+
### Bug Fixes
|
|
8
|
+
|
|
9
|
+
- **Header.Menu:** long page lists now scroll inside the drawer (title and search stay pinned) instead of scrolling the page; the page behind is locked while the drawer is open.
|
|
10
|
+
|
|
11
|
+
### Changes
|
|
12
|
+
|
|
13
|
+
- No component forces uppercase any more (Header title, tabs, menu title, page names, group headings): text renders exactly as passed.
|
|
14
|
+
- **Header.Menu:** page tiles are wider (min 300px) and shorter (min 60px).
|
|
15
|
+
|
|
5
16
|
## 1.2.0 (2026-10-11)
|
|
6
17
|
|
|
7
18
|
### Features
|
package/dist/index.js
CHANGED
|
@@ -770,7 +770,7 @@ function HeaderMenu({
|
|
|
770
770
|
outerclass: "ph-menu__search",
|
|
771
771
|
onChange: (e) => setKeyword(e.target.value)
|
|
772
772
|
}
|
|
773
|
-
), /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph__count" }, String(total).padStart(2, "0"), " PAGES"))), total === 0 && /* @__PURE__ */ import_react18.default.createElement("p", { className: "ph-menu__empty" }, 'No menu matches "', keyword, '"'), groups.map(([group, list2]) => /* @__PURE__ */ import_react18.default.createElement("section", { key: group || "_", className: "ph-menu__group" }, group && /* @__PURE__ */ import_react18.default.createElement("h3", { className: "ph-menu__group-title" }, group), /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph__grid" }, list2.map(({ label, href, icon }) => /* @__PURE__ */ import_react18.default.createElement(
|
|
773
|
+
), /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph__count" }, String(total).padStart(2, "0"), " PAGES"))), /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph-menu__list" }, total === 0 && /* @__PURE__ */ import_react18.default.createElement("p", { className: "ph-menu__empty" }, 'No menu matches "', keyword, '"'), groups.map(([group, list2]) => /* @__PURE__ */ import_react18.default.createElement("section", { key: group || "_", className: "ph-menu__group" }, group && /* @__PURE__ */ import_react18.default.createElement("h3", { className: "ph-menu__group-title" }, group), /* @__PURE__ */ import_react18.default.createElement("div", { className: "ph__grid" }, list2.map(({ label, href, icon }) => /* @__PURE__ */ import_react18.default.createElement(
|
|
774
774
|
Link,
|
|
775
775
|
{
|
|
776
776
|
key: href,
|
|
@@ -781,7 +781,7 @@ function HeaderMenu({
|
|
|
781
781
|
},
|
|
782
782
|
icon && /* @__PURE__ */ import_react18.default.createElement("span", { className: "ph-page__icon" }, /* @__PURE__ */ import_react18.default.createElement(import_react_fontawesome10.FontAwesomeIcon, { icon })),
|
|
783
783
|
/* @__PURE__ */ import_react18.default.createElement("span", { className: "ph-page__name" }, label)
|
|
784
|
-
))))));
|
|
784
|
+
)))))));
|
|
785
785
|
}
|
|
786
786
|
|
|
787
787
|
// src/components/Header.tsx
|
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","../src/components/Header.tsx","../src/components/HeaderMenu.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 simpleInfo from \"../../assets/simple-info-icon.svg\";\nimport simpleError from \"../../assets/simple-error-icon.svg\";\nimport simpleWarning from \"../../assets/simple-warning-icon.svg\";\nimport simpleSuccess from \"../../assets/simple-success-icon.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\n// lighter icon set for the compact inline toast\nconst simpleIcons: Record<ToastType, string> = {\n info: simpleInfo,\n warning: simpleWarning,\n success: simpleSuccess,\n danger: simpleError,\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={simpleIcons[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 HeaderMenu from \"./HeaderMenu\";\n\ntype HeaderLink = { label: string; href: string };\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 /** drop-down menu content, usually <Header.Menu /> (the yellow arrow appears only when given) */\n menu?: React.ReactNode;\n activeUrl?: string;\n left?: React.ReactNode;\n right?: React.ReactNode;\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 drawer opens via a hidden checkbox (CSS only).\n its content (search + grouped pages) is the client component Header.Menu, passed via `menu` */\nexport default function Header({\n title,\n tabs = [],\n menu,\n activeUrl,\n left,\n right,\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 // yellow slashes ride on the outer end of each tab group, so they never overlap wider tabs.\n // gradients ph-fadeL / ph-fadeR live in the decoration svg's <defs>\n const slashes = (side: \"l\" | \"r\") => (\n <svg\n className={`ph__slash ph__slash--${side}`}\n width=\"48\"\n height=\"14\"\n viewBox=\"0 0 48 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d={\n side === \"l\"\n ? \"M8 14l-8-14 M18 14l-8-14 M28 14l-8-14 M38 14l-8-14 M48 14l-8-14\"\n : \"M0 14l8-14 M10 14l8-14 M20 14l8-14 M30 14l8-14 M40 14l8-14\"\n }\n stroke={`url(#ph-fade${side === \"l\" ? \"L\" : \"R\"})`}\n strokeWidth=\"3\"\n />\n </svg>\n );\n\n const renderTabs = (list: HeaderLink[], side: \"l\" | \"r\") => (\n <nav className={`ph__tabs ph__tabs--${side}`} aria-label=\"Shortcuts\">\n {slashes(side)}\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 <div className=\"ph__bar\" aria-hidden=\"true\"></div>\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 </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 {menu && (\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 {/* glowing dash orbiting the arrow (pathLength=100 keeps the dash math simple) */}\n <svg\n className=\"ph__arrow-ring\"\n width=\"44\"\n height=\"26\"\n viewBox=\"0 0 44 26\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <polygon\n className=\"ph__arrow-track\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n <polygon\n className=\"ph__arrow-dash\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n </svg>\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=\"Menu\">\n {menu}\n </section>\n </div>\n </>\n )}\n </header>\n );\n}\n\nHeader.Menu = HeaderMenu;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faMagnifyingGlass } from \"@fortawesome/free-solid-svg-icons\";\nimport TextInput from \"./TextInput\";\n\ntype HeaderMenuPage = {\n label: string;\n href: string;\n /** group name: pages sharing a description are listed under one heading */\n description?: string;\n icon?: IconProp;\n};\n\ntype HeaderMenu = {\n pages: HeaderMenuPage[];\n activeUrl?: string;\n title?: string;\n searchPlaceholder?: string;\n /** link component, e.g. Next.js Link; defaults to <a> */\n CustomComponent?: React.ElementType;\n};\n\n/* client component (uses state): render it from a \"use client\" file and pass it to <Header menu={...} /> */\nexport default function HeaderMenu({\n pages,\n activeUrl,\n title = \"All Pages\",\n searchPlaceholder = \"Search menu ...\",\n CustomComponent,\n}: Readonly<HeaderMenu>) {\n const Link = CustomComponent || \"a\";\n const [keyword, setKeyword] = useState(\"\");\n const ref = useRef<HTMLDivElement>(null);\n\n // close the drawer by unchecking Header's hidden toggle\n function close() {\n const toggle = ref.current\n ?.closest(\".ph\")\n ?.querySelector<HTMLInputElement>(\".ph__toggle\");\n if (toggle) toggle.checked = false;\n }\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && close();\n document.addEventListener(\"keydown\", onKey);\n return () => document.removeEventListener(\"keydown\", onKey);\n }, []);\n\n // filter by page label or group name, then group in first-seen order\n const groups = useMemo(() => {\n const q = keyword.trim().toLowerCase();\n const map = new Map<string, HeaderMenuPage[]>();\n pages\n .filter(\n ({ label, description = \"\" }) =>\n label.toLowerCase().includes(q) ||\n description.toLowerCase().includes(q),\n )\n .forEach((page) => {\n const key = page.description ?? \"\";\n map.set(key, [...(map.get(key) ?? []), page]);\n });\n return [...map.entries()];\n }, [pages, keyword]);\n\n const total = groups.reduce((n, [, list]) => n + list.length, 0);\n\n return (\n <div ref={ref} className=\"ph-menu\">\n <div className=\"ph__panel-head\">\n <div>\n <span className=\"ph__kicker\">// NAVIGATE</span>\n <h2 className=\"ph__panel-title\">{title}</h2>\n </div>\n <div className=\"ph-menu__tools\">\n <TextInput\n type=\"search\"\n icon={faMagnifyingGlass}\n value={keyword}\n placeholder={searchPlaceholder}\n aria-label={searchPlaceholder}\n outerclass=\"ph-menu__search\"\n onChange={(e) => setKeyword(e.target.value)}\n />\n <span className=\"ph__count\">\n {String(total).padStart(2, \"0\")} PAGES\n </span>\n </div>\n </div>\n\n {total === 0 && <p className=\"ph-menu__empty\">No menu matches \"{keyword}\"</p>}\n\n {groups.map(([group, list]) => (\n <section key={group || \"_\"} className=\"ph-menu__group\">\n {group && <h3 className=\"ph-menu__group-title\">{group}</h3>}\n <div className=\"ph__grid\">\n {list.map(({ label, href, icon }) => (\n <Link\n key={href}\n href={href}\n aria-current={href === activeUrl ? \"page\" : undefined}\n className=\"ph-page\"\n onClick={close}\n >\n {icon && (\n <span className=\"ph-page__icon\">\n <FontAwesomeIcon icon={icon} />\n </span>\n )}\n <span className=\"ph-page__name\">{label}</span>\n </Link>\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n","import React from \"react\";\n\ntype Footer = {\n text: React.ReactNode;\n className?: string;\n};\n\n/* corner lines and slashes follow the panel's slant (20px inset over 44px height).\n glass bar along the bottom 16px, with a center panel that auto-fits the text.\n SVG colors reuse Header's .ph__stop-* / .ph__deco-corners classes */\nexport default function Footer({ text, className = \"\" }: Readonly<Footer>) {\n return (\n <footer className={`pf ${className}`}>\n <div className=\"pf__panel\">\n <p className=\"pf__text\">{text}</p>\n\n <svg\n className=\"pf__corner pf__corner--l\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M13.2 15L19.8 0.5H56\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n <svg\n className=\"pf__corner pf__corner--r\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M42.8 15L36.2 0.5H0\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n\n <svg\n className=\"pf__slash pf__slash--l\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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 </defs>\n <path\n d=\"M0 12l5.5-12 M10 12l5.5-12 M20 12l5.5-12 M30 12l5.5-12 M40 12l5.5-12\"\n stroke=\"url(#pf-fadeL)\"\n strokeWidth=\"3\"\n />\n </svg>\n <svg\n className=\"pf__slash pf__slash--r\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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\n d=\"M1.5 0l5.5 12 M11.5 0l5.5 12 M21.5 0l5.5 12 M31.5 0l5.5 12 M41.5 0l5.5 12\"\n stroke=\"url(#pf-fadeR)\"\n strokeWidth=\"3\"\n />\n </svg>\n </div>\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","import_react_fontawesome","import_free_solid_svg_icons","list","React","left","right","React","list","import_react","Footer","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/HeaderMenu.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 simpleInfo from \"../../assets/simple-info-icon.svg\";\nimport simpleError from \"../../assets/simple-error-icon.svg\";\nimport simpleWarning from \"../../assets/simple-warning-icon.svg\";\nimport simpleSuccess from \"../../assets/simple-success-icon.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\n// lighter icon set for the compact inline toast\nconst simpleIcons: Record<ToastType, string> = {\n info: simpleInfo,\n warning: simpleWarning,\n success: simpleSuccess,\n danger: simpleError,\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={simpleIcons[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 HeaderMenu from \"./HeaderMenu\";\n\ntype HeaderLink = { label: string; href: string };\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 /** drop-down menu content, usually <Header.Menu /> (the yellow arrow appears only when given) */\n menu?: React.ReactNode;\n activeUrl?: string;\n left?: React.ReactNode;\n right?: React.ReactNode;\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 drawer opens via a hidden checkbox (CSS only).\n its content (search + grouped pages) is the client component Header.Menu, passed via `menu` */\nexport default function Header({\n title,\n tabs = [],\n menu,\n activeUrl,\n left,\n right,\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 // yellow slashes ride on the outer end of each tab group, so they never overlap wider tabs.\n // gradients ph-fadeL / ph-fadeR live in the decoration svg's <defs>\n const slashes = (side: \"l\" | \"r\") => (\n <svg\n className={`ph__slash ph__slash--${side}`}\n width=\"48\"\n height=\"14\"\n viewBox=\"0 0 48 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d={\n side === \"l\"\n ? \"M8 14l-8-14 M18 14l-8-14 M28 14l-8-14 M38 14l-8-14 M48 14l-8-14\"\n : \"M0 14l8-14 M10 14l8-14 M20 14l8-14 M30 14l8-14 M40 14l8-14\"\n }\n stroke={`url(#ph-fade${side === \"l\" ? \"L\" : \"R\"})`}\n strokeWidth=\"3\"\n />\n </svg>\n );\n\n const renderTabs = (list: HeaderLink[], side: \"l\" | \"r\") => (\n <nav className={`ph__tabs ph__tabs--${side}`} aria-label=\"Shortcuts\">\n {slashes(side)}\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 <div className=\"ph__bar\" aria-hidden=\"true\"></div>\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 </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 {menu && (\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 {/* glowing dash orbiting the arrow (pathLength=100 keeps the dash math simple) */}\n <svg\n className=\"ph__arrow-ring\"\n width=\"44\"\n height=\"26\"\n viewBox=\"0 0 44 26\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <polygon\n className=\"ph__arrow-track\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n <polygon\n className=\"ph__arrow-dash\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n </svg>\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=\"Menu\">\n {menu}\n </section>\n </div>\n </>\n )}\n </header>\n );\n}\n\nHeader.Menu = HeaderMenu;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faMagnifyingGlass } from \"@fortawesome/free-solid-svg-icons\";\nimport TextInput from \"./TextInput\";\n\ntype HeaderMenuPage = {\n label: string;\n href: string;\n /** group name: pages sharing a description are listed under one heading */\n description?: string;\n icon?: IconProp;\n};\n\ntype HeaderMenu = {\n pages: HeaderMenuPage[];\n activeUrl?: string;\n title?: string;\n searchPlaceholder?: string;\n /** link component, e.g. Next.js Link; defaults to <a> */\n CustomComponent?: React.ElementType;\n};\n\n/* client component (uses state): render it from a \"use client\" file and pass it to <Header menu={...} /> */\nexport default function HeaderMenu({\n pages,\n activeUrl,\n title = \"All Pages\",\n searchPlaceholder = \"Search menu ...\",\n CustomComponent,\n}: Readonly<HeaderMenu>) {\n const Link = CustomComponent || \"a\";\n const [keyword, setKeyword] = useState(\"\");\n const ref = useRef<HTMLDivElement>(null);\n\n // close the drawer by unchecking Header's hidden toggle\n function close() {\n const toggle = ref.current\n ?.closest(\".ph\")\n ?.querySelector<HTMLInputElement>(\".ph__toggle\");\n if (toggle) toggle.checked = false;\n }\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && close();\n document.addEventListener(\"keydown\", onKey);\n return () => document.removeEventListener(\"keydown\", onKey);\n }, []);\n\n // filter by page label or group name, then group in first-seen order\n const groups = useMemo(() => {\n const q = keyword.trim().toLowerCase();\n const map = new Map<string, HeaderMenuPage[]>();\n pages\n .filter(\n ({ label, description = \"\" }) =>\n label.toLowerCase().includes(q) ||\n description.toLowerCase().includes(q),\n )\n .forEach((page) => {\n const key = page.description ?? \"\";\n map.set(key, [...(map.get(key) ?? []), page]);\n });\n return [...map.entries()];\n }, [pages, keyword]);\n\n const total = groups.reduce((n, [, list]) => n + list.length, 0);\n\n return (\n <div ref={ref} className=\"ph-menu\">\n <div className=\"ph__panel-head\">\n <div>\n <span className=\"ph__kicker\">// NAVIGATE</span>\n <h2 className=\"ph__panel-title\">{title}</h2>\n </div>\n <div className=\"ph-menu__tools\">\n <TextInput\n type=\"search\"\n icon={faMagnifyingGlass}\n value={keyword}\n placeholder={searchPlaceholder}\n aria-label={searchPlaceholder}\n outerclass=\"ph-menu__search\"\n onChange={(e) => setKeyword(e.target.value)}\n />\n <span className=\"ph__count\">\n {String(total).padStart(2, \"0\")} PAGES\n </span>\n </div>\n </div>\n\n {/* only this list scrolls; title and search stay pinned */}\n <div className=\"ph-menu__list\">\n {total === 0 && (\n <p className=\"ph-menu__empty\">No menu matches \"{keyword}\"</p>\n )}\n\n {groups.map(([group, list]) => (\n <section key={group || \"_\"} className=\"ph-menu__group\">\n {group && <h3 className=\"ph-menu__group-title\">{group}</h3>}\n <div className=\"ph__grid\">\n {list.map(({ label, href, icon }) => (\n <Link\n key={href}\n href={href}\n aria-current={href === activeUrl ? \"page\" : undefined}\n className=\"ph-page\"\n onClick={close}\n >\n {icon && (\n <span className=\"ph-page__icon\">\n <FontAwesomeIcon icon={icon} />\n </span>\n )}\n <span className=\"ph-page__name\">{label}</span>\n </Link>\n ))}\n </div>\n </section>\n ))}\n </div>\n </div>\n );\n}\n","import React from \"react\";\n\ntype Footer = {\n text: React.ReactNode;\n className?: string;\n};\n\n/* corner lines and slashes follow the panel's slant (20px inset over 44px height).\n glass bar along the bottom 16px, with a center panel that auto-fits the text.\n SVG colors reuse Header's .ph__stop-* / .ph__deco-corners classes */\nexport default function Footer({ text, className = \"\" }: Readonly<Footer>) {\n return (\n <footer className={`pf ${className}`}>\n <div className=\"pf__panel\">\n <p className=\"pf__text\">{text}</p>\n\n <svg\n className=\"pf__corner pf__corner--l\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M13.2 15L19.8 0.5H56\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n <svg\n className=\"pf__corner pf__corner--r\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M42.8 15L36.2 0.5H0\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n\n <svg\n className=\"pf__slash pf__slash--l\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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 </defs>\n <path\n d=\"M0 12l5.5-12 M10 12l5.5-12 M20 12l5.5-12 M30 12l5.5-12 M40 12l5.5-12\"\n stroke=\"url(#pf-fadeL)\"\n strokeWidth=\"3\"\n />\n </svg>\n <svg\n className=\"pf__slash pf__slash--r\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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\n d=\"M1.5 0l5.5 12 M11.5 0l5.5 12 M21.5 0l5.5 12 M31.5 0l5.5 12 M41.5 0l5.5 12\"\n stroke=\"url(#pf-fadeR)\"\n strokeWidth=\"3\"\n />\n </svg>\n </div>\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","import_react_fontawesome","import_free_solid_svg_icons","list","React","left","right","React","list","import_react","Footer","React"]}
|
package/dist/index.mjs
CHANGED
|
@@ -719,7 +719,7 @@ function HeaderMenu({
|
|
|
719
719
|
outerclass: "ph-menu__search",
|
|
720
720
|
onChange: (e) => setKeyword(e.target.value)
|
|
721
721
|
}
|
|
722
|
-
), /* @__PURE__ */ React18.createElement("span", { className: "ph__count" }, String(total).padStart(2, "0"), " PAGES"))), total === 0 && /* @__PURE__ */ React18.createElement("p", { className: "ph-menu__empty" }, 'No menu matches "', keyword, '"'), groups.map(([group, list2]) => /* @__PURE__ */ React18.createElement("section", { key: group || "_", className: "ph-menu__group" }, group && /* @__PURE__ */ React18.createElement("h3", { className: "ph-menu__group-title" }, group), /* @__PURE__ */ React18.createElement("div", { className: "ph__grid" }, list2.map(({ label, href, icon }) => /* @__PURE__ */ React18.createElement(
|
|
722
|
+
), /* @__PURE__ */ React18.createElement("span", { className: "ph__count" }, String(total).padStart(2, "0"), " PAGES"))), /* @__PURE__ */ React18.createElement("div", { className: "ph-menu__list" }, total === 0 && /* @__PURE__ */ React18.createElement("p", { className: "ph-menu__empty" }, 'No menu matches "', keyword, '"'), groups.map(([group, list2]) => /* @__PURE__ */ React18.createElement("section", { key: group || "_", className: "ph-menu__group" }, group && /* @__PURE__ */ React18.createElement("h3", { className: "ph-menu__group-title" }, group), /* @__PURE__ */ React18.createElement("div", { className: "ph__grid" }, list2.map(({ label, href, icon }) => /* @__PURE__ */ React18.createElement(
|
|
723
723
|
Link,
|
|
724
724
|
{
|
|
725
725
|
key: href,
|
|
@@ -730,7 +730,7 @@ function HeaderMenu({
|
|
|
730
730
|
},
|
|
731
731
|
icon && /* @__PURE__ */ React18.createElement("span", { className: "ph-page__icon" }, /* @__PURE__ */ React18.createElement(FontAwesomeIcon10, { icon })),
|
|
732
732
|
/* @__PURE__ */ React18.createElement("span", { className: "ph-page__name" }, label)
|
|
733
|
-
))))));
|
|
733
|
+
)))))));
|
|
734
734
|
}
|
|
735
735
|
|
|
736
736
|
// src/components/Header.tsx
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../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/HeaderMenu.tsx","../src/components/Footer.tsx"],"sourcesContent":["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 simpleInfo from \"../../assets/simple-info-icon.svg\";\nimport simpleError from \"../../assets/simple-error-icon.svg\";\nimport simpleWarning from \"../../assets/simple-warning-icon.svg\";\nimport simpleSuccess from \"../../assets/simple-success-icon.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\n// lighter icon set for the compact inline toast\nconst simpleIcons: Record<ToastType, string> = {\n info: simpleInfo,\n warning: simpleWarning,\n success: simpleSuccess,\n danger: simpleError,\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={simpleIcons[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 HeaderMenu from \"./HeaderMenu\";\n\ntype HeaderLink = { label: string; href: string };\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 /** drop-down menu content, usually <Header.Menu /> (the yellow arrow appears only when given) */\n menu?: React.ReactNode;\n activeUrl?: string;\n left?: React.ReactNode;\n right?: React.ReactNode;\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 drawer opens via a hidden checkbox (CSS only).\n its content (search + grouped pages) is the client component Header.Menu, passed via `menu` */\nexport default function Header({\n title,\n tabs = [],\n menu,\n activeUrl,\n left,\n right,\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 // yellow slashes ride on the outer end of each tab group, so they never overlap wider tabs.\n // gradients ph-fadeL / ph-fadeR live in the decoration svg's <defs>\n const slashes = (side: \"l\" | \"r\") => (\n <svg\n className={`ph__slash ph__slash--${side}`}\n width=\"48\"\n height=\"14\"\n viewBox=\"0 0 48 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d={\n side === \"l\"\n ? \"M8 14l-8-14 M18 14l-8-14 M28 14l-8-14 M38 14l-8-14 M48 14l-8-14\"\n : \"M0 14l8-14 M10 14l8-14 M20 14l8-14 M30 14l8-14 M40 14l8-14\"\n }\n stroke={`url(#ph-fade${side === \"l\" ? \"L\" : \"R\"})`}\n strokeWidth=\"3\"\n />\n </svg>\n );\n\n const renderTabs = (list: HeaderLink[], side: \"l\" | \"r\") => (\n <nav className={`ph__tabs ph__tabs--${side}`} aria-label=\"Shortcuts\">\n {slashes(side)}\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 <div className=\"ph__bar\" aria-hidden=\"true\"></div>\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 </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 {menu && (\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 {/* glowing dash orbiting the arrow (pathLength=100 keeps the dash math simple) */}\n <svg\n className=\"ph__arrow-ring\"\n width=\"44\"\n height=\"26\"\n viewBox=\"0 0 44 26\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <polygon\n className=\"ph__arrow-track\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n <polygon\n className=\"ph__arrow-dash\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n </svg>\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=\"Menu\">\n {menu}\n </section>\n </div>\n </>\n )}\n </header>\n );\n}\n\nHeader.Menu = HeaderMenu;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faMagnifyingGlass } from \"@fortawesome/free-solid-svg-icons\";\nimport TextInput from \"./TextInput\";\n\ntype HeaderMenuPage = {\n label: string;\n href: string;\n /** group name: pages sharing a description are listed under one heading */\n description?: string;\n icon?: IconProp;\n};\n\ntype HeaderMenu = {\n pages: HeaderMenuPage[];\n activeUrl?: string;\n title?: string;\n searchPlaceholder?: string;\n /** link component, e.g. Next.js Link; defaults to <a> */\n CustomComponent?: React.ElementType;\n};\n\n/* client component (uses state): render it from a \"use client\" file and pass it to <Header menu={...} /> */\nexport default function HeaderMenu({\n pages,\n activeUrl,\n title = \"All Pages\",\n searchPlaceholder = \"Search menu ...\",\n CustomComponent,\n}: Readonly<HeaderMenu>) {\n const Link = CustomComponent || \"a\";\n const [keyword, setKeyword] = useState(\"\");\n const ref = useRef<HTMLDivElement>(null);\n\n // close the drawer by unchecking Header's hidden toggle\n function close() {\n const toggle = ref.current\n ?.closest(\".ph\")\n ?.querySelector<HTMLInputElement>(\".ph__toggle\");\n if (toggle) toggle.checked = false;\n }\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && close();\n document.addEventListener(\"keydown\", onKey);\n return () => document.removeEventListener(\"keydown\", onKey);\n }, []);\n\n // filter by page label or group name, then group in first-seen order\n const groups = useMemo(() => {\n const q = keyword.trim().toLowerCase();\n const map = new Map<string, HeaderMenuPage[]>();\n pages\n .filter(\n ({ label, description = \"\" }) =>\n label.toLowerCase().includes(q) ||\n description.toLowerCase().includes(q),\n )\n .forEach((page) => {\n const key = page.description ?? \"\";\n map.set(key, [...(map.get(key) ?? []), page]);\n });\n return [...map.entries()];\n }, [pages, keyword]);\n\n const total = groups.reduce((n, [, list]) => n + list.length, 0);\n\n return (\n <div ref={ref} className=\"ph-menu\">\n <div className=\"ph__panel-head\">\n <div>\n <span className=\"ph__kicker\">// NAVIGATE</span>\n <h2 className=\"ph__panel-title\">{title}</h2>\n </div>\n <div className=\"ph-menu__tools\">\n <TextInput\n type=\"search\"\n icon={faMagnifyingGlass}\n value={keyword}\n placeholder={searchPlaceholder}\n aria-label={searchPlaceholder}\n outerclass=\"ph-menu__search\"\n onChange={(e) => setKeyword(e.target.value)}\n />\n <span className=\"ph__count\">\n {String(total).padStart(2, \"0\")} PAGES\n </span>\n </div>\n </div>\n\n {total === 0 && <p className=\"ph-menu__empty\">No menu matches \"{keyword}\"</p>}\n\n {groups.map(([group, list]) => (\n <section key={group || \"_\"} className=\"ph-menu__group\">\n {group && <h3 className=\"ph-menu__group-title\">{group}</h3>}\n <div className=\"ph__grid\">\n {list.map(({ label, href, icon }) => (\n <Link\n key={href}\n href={href}\n aria-current={href === activeUrl ? \"page\" : undefined}\n className=\"ph-page\"\n onClick={close}\n >\n {icon && (\n <span className=\"ph-page__icon\">\n <FontAwesomeIcon icon={icon} />\n </span>\n )}\n <span className=\"ph-page__name\">{label}</span>\n </Link>\n ))}\n </div>\n </section>\n ))}\n </div>\n );\n}\n","import React from \"react\";\n\ntype Footer = {\n text: React.ReactNode;\n className?: string;\n};\n\n/* corner lines and slashes follow the panel's slant (20px inset over 44px height).\n glass bar along the bottom 16px, with a center panel that auto-fits the text.\n SVG colors reuse Header's .ph__stop-* / .ph__deco-corners classes */\nexport default function Footer({ text, className = \"\" }: Readonly<Footer>) {\n return (\n <footer className={`pf ${className}`}>\n <div className=\"pf__panel\">\n <p className=\"pf__text\">{text}</p>\n\n <svg\n className=\"pf__corner pf__corner--l\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M13.2 15L19.8 0.5H56\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n <svg\n className=\"pf__corner pf__corner--r\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M42.8 15L36.2 0.5H0\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n\n <svg\n className=\"pf__slash pf__slash--l\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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 </defs>\n <path\n d=\"M0 12l5.5-12 M10 12l5.5-12 M20 12l5.5-12 M30 12l5.5-12 M40 12l5.5-12\"\n stroke=\"url(#pf-fadeL)\"\n strokeWidth=\"3\"\n />\n </svg>\n <svg\n className=\"pf__slash pf__slash--r\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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\n d=\"M1.5 0l5.5 12 M11.5 0l5.5 12 M21.5 0l5.5 12 M31.5 0l5.5 12 M41.5 0l5.5 12\"\n stroke=\"url(#pf-fadeR)\"\n strokeWidth=\"3\"\n />\n </svg>\n </div>\n </footer>\n );\n}\n"],"mappings":"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","names":["list","React","FontAwesomeIcon","_a","React","FontAwesomeIcon","React","FontAwesomeIcon","React","FontAwesomeIcon","React","FontAwesomeIcon","React","FontAwesomeIcon","list","React","React","faCaretRight","FontAwesomeIcon","React","React","FontAwesomeIcon","React","React","faCaretRight","FontAwesomeIcon","React","useMemo","useState","FontAwesomeIcon","faCheck","useState","useMemo","label","isItemExist","React","input","FontAwesomeIcon","faCheck","React","FontAwesomeIcon","React","FontAwesomeIcon","React","useState","useState","React","React","React","React","React","React","React","React","React","useEffect","useMemo","useState","FontAwesomeIcon","useState","useEffect","useMemo","list","React","FontAwesomeIcon","left","right","React","list","React","Footer"]}
|
|
1
|
+
{"version":3,"sources":["../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/HeaderMenu.tsx","../src/components/Footer.tsx"],"sourcesContent":["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 simpleInfo from \"../../assets/simple-info-icon.svg\";\nimport simpleError from \"../../assets/simple-error-icon.svg\";\nimport simpleWarning from \"../../assets/simple-warning-icon.svg\";\nimport simpleSuccess from \"../../assets/simple-success-icon.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\n// lighter icon set for the compact inline toast\nconst simpleIcons: Record<ToastType, string> = {\n info: simpleInfo,\n warning: simpleWarning,\n success: simpleSuccess,\n danger: simpleError,\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={simpleIcons[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 HeaderMenu from \"./HeaderMenu\";\n\ntype HeaderLink = { label: string; href: string };\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 /** drop-down menu content, usually <Header.Menu /> (the yellow arrow appears only when given) */\n menu?: React.ReactNode;\n activeUrl?: string;\n left?: React.ReactNode;\n right?: React.ReactNode;\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 drawer opens via a hidden checkbox (CSS only).\n its content (search + grouped pages) is the client component Header.Menu, passed via `menu` */\nexport default function Header({\n title,\n tabs = [],\n menu,\n activeUrl,\n left,\n right,\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 // yellow slashes ride on the outer end of each tab group, so they never overlap wider tabs.\n // gradients ph-fadeL / ph-fadeR live in the decoration svg's <defs>\n const slashes = (side: \"l\" | \"r\") => (\n <svg\n className={`ph__slash ph__slash--${side}`}\n width=\"48\"\n height=\"14\"\n viewBox=\"0 0 48 14\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n d={\n side === \"l\"\n ? \"M8 14l-8-14 M18 14l-8-14 M28 14l-8-14 M38 14l-8-14 M48 14l-8-14\"\n : \"M0 14l8-14 M10 14l8-14 M20 14l8-14 M30 14l8-14 M40 14l8-14\"\n }\n stroke={`url(#ph-fade${side === \"l\" ? \"L\" : \"R\"})`}\n strokeWidth=\"3\"\n />\n </svg>\n );\n\n const renderTabs = (list: HeaderLink[], side: \"l\" | \"r\") => (\n <nav className={`ph__tabs ph__tabs--${side}`} aria-label=\"Shortcuts\">\n {slashes(side)}\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 <div className=\"ph__bar\" aria-hidden=\"true\"></div>\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 </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 {menu && (\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 {/* glowing dash orbiting the arrow (pathLength=100 keeps the dash math simple) */}\n <svg\n className=\"ph__arrow-ring\"\n width=\"44\"\n height=\"26\"\n viewBox=\"0 0 44 26\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <polygon\n className=\"ph__arrow-track\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n <polygon\n className=\"ph__arrow-dash\"\n points=\"1,1 43,1 22,25\"\n pathLength=\"100\"\n />\n </svg>\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=\"Menu\">\n {menu}\n </section>\n </div>\n </>\n )}\n </header>\n );\n}\n\nHeader.Menu = HeaderMenu;\n","import React, { useEffect, useMemo, useRef, useState } from \"react\";\nimport { IconProp } from \"@fortawesome/fontawesome-svg-core\";\nimport { FontAwesomeIcon } from \"@fortawesome/react-fontawesome\";\nimport { faMagnifyingGlass } from \"@fortawesome/free-solid-svg-icons\";\nimport TextInput from \"./TextInput\";\n\ntype HeaderMenuPage = {\n label: string;\n href: string;\n /** group name: pages sharing a description are listed under one heading */\n description?: string;\n icon?: IconProp;\n};\n\ntype HeaderMenu = {\n pages: HeaderMenuPage[];\n activeUrl?: string;\n title?: string;\n searchPlaceholder?: string;\n /** link component, e.g. Next.js Link; defaults to <a> */\n CustomComponent?: React.ElementType;\n};\n\n/* client component (uses state): render it from a \"use client\" file and pass it to <Header menu={...} /> */\nexport default function HeaderMenu({\n pages,\n activeUrl,\n title = \"All Pages\",\n searchPlaceholder = \"Search menu ...\",\n CustomComponent,\n}: Readonly<HeaderMenu>) {\n const Link = CustomComponent || \"a\";\n const [keyword, setKeyword] = useState(\"\");\n const ref = useRef<HTMLDivElement>(null);\n\n // close the drawer by unchecking Header's hidden toggle\n function close() {\n const toggle = ref.current\n ?.closest(\".ph\")\n ?.querySelector<HTMLInputElement>(\".ph__toggle\");\n if (toggle) toggle.checked = false;\n }\n\n useEffect(() => {\n const onKey = (e: KeyboardEvent) => e.key === \"Escape\" && close();\n document.addEventListener(\"keydown\", onKey);\n return () => document.removeEventListener(\"keydown\", onKey);\n }, []);\n\n // filter by page label or group name, then group in first-seen order\n const groups = useMemo(() => {\n const q = keyword.trim().toLowerCase();\n const map = new Map<string, HeaderMenuPage[]>();\n pages\n .filter(\n ({ label, description = \"\" }) =>\n label.toLowerCase().includes(q) ||\n description.toLowerCase().includes(q),\n )\n .forEach((page) => {\n const key = page.description ?? \"\";\n map.set(key, [...(map.get(key) ?? []), page]);\n });\n return [...map.entries()];\n }, [pages, keyword]);\n\n const total = groups.reduce((n, [, list]) => n + list.length, 0);\n\n return (\n <div ref={ref} className=\"ph-menu\">\n <div className=\"ph__panel-head\">\n <div>\n <span className=\"ph__kicker\">// NAVIGATE</span>\n <h2 className=\"ph__panel-title\">{title}</h2>\n </div>\n <div className=\"ph-menu__tools\">\n <TextInput\n type=\"search\"\n icon={faMagnifyingGlass}\n value={keyword}\n placeholder={searchPlaceholder}\n aria-label={searchPlaceholder}\n outerclass=\"ph-menu__search\"\n onChange={(e) => setKeyword(e.target.value)}\n />\n <span className=\"ph__count\">\n {String(total).padStart(2, \"0\")} PAGES\n </span>\n </div>\n </div>\n\n {/* only this list scrolls; title and search stay pinned */}\n <div className=\"ph-menu__list\">\n {total === 0 && (\n <p className=\"ph-menu__empty\">No menu matches \"{keyword}\"</p>\n )}\n\n {groups.map(([group, list]) => (\n <section key={group || \"_\"} className=\"ph-menu__group\">\n {group && <h3 className=\"ph-menu__group-title\">{group}</h3>}\n <div className=\"ph__grid\">\n {list.map(({ label, href, icon }) => (\n <Link\n key={href}\n href={href}\n aria-current={href === activeUrl ? \"page\" : undefined}\n className=\"ph-page\"\n onClick={close}\n >\n {icon && (\n <span className=\"ph-page__icon\">\n <FontAwesomeIcon icon={icon} />\n </span>\n )}\n <span className=\"ph-page__name\">{label}</span>\n </Link>\n ))}\n </div>\n </section>\n ))}\n </div>\n </div>\n );\n}\n","import React from \"react\";\n\ntype Footer = {\n text: React.ReactNode;\n className?: string;\n};\n\n/* corner lines and slashes follow the panel's slant (20px inset over 44px height).\n glass bar along the bottom 16px, with a center panel that auto-fits the text.\n SVG colors reuse Header's .ph__stop-* / .ph__deco-corners classes */\nexport default function Footer({ text, className = \"\" }: Readonly<Footer>) {\n return (\n <footer className={`pf ${className}`}>\n <div className=\"pf__panel\">\n <p className=\"pf__text\">{text}</p>\n\n <svg\n className=\"pf__corner pf__corner--l\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M13.2 15L19.8 0.5H56\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n <svg\n className=\"pf__corner pf__corner--r\"\n width=\"56\"\n height=\"16\"\n viewBox=\"0 0 56 16\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <path\n className=\"ph__deco-corners\"\n d=\"M42.8 15L36.2 0.5H0\"\n strokeWidth=\"2.5\"\n strokeLinejoin=\"round\"\n strokeLinecap=\"round\"\n />\n </svg>\n\n <svg\n className=\"pf__slash pf__slash--l\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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 </defs>\n <path\n d=\"M0 12l5.5-12 M10 12l5.5-12 M20 12l5.5-12 M30 12l5.5-12 M40 12l5.5-12\"\n stroke=\"url(#pf-fadeL)\"\n strokeWidth=\"3\"\n />\n </svg>\n <svg\n className=\"pf__slash pf__slash--r\"\n width=\"47\"\n height=\"12\"\n viewBox=\"0 0 47 12\"\n fill=\"none\"\n aria-hidden=\"true\"\n >\n <defs>\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\n d=\"M1.5 0l5.5 12 M11.5 0l5.5 12 M21.5 0l5.5 12 M31.5 0l5.5 12 M41.5 0l5.5 12\"\n stroke=\"url(#pf-fadeR)\"\n strokeWidth=\"3\"\n />\n </svg>\n </div>\n </footer>\n );\n}\n"],"mappings":"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","names":["list","React","FontAwesomeIcon","_a","React","FontAwesomeIcon","React","FontAwesomeIcon","React","FontAwesomeIcon","React","FontAwesomeIcon","React","FontAwesomeIcon","list","React","React","faCaretRight","FontAwesomeIcon","React","React","FontAwesomeIcon","React","React","faCaretRight","FontAwesomeIcon","React","useMemo","useState","FontAwesomeIcon","faCheck","useState","useMemo","label","isItemExist","React","input","FontAwesomeIcon","faCheck","React","FontAwesomeIcon","React","FontAwesomeIcon","React","useState","useState","React","React","React","React","React","React","React","React","React","useEffect","useMemo","useState","FontAwesomeIcon","useState","useEffect","useMemo","list","React","FontAwesomeIcon","left","right","React","list","React","Footer"]}
|
package/dist/styles.css
CHANGED
|
@@ -283,6 +283,9 @@
|
|
|
283
283
|
.text-\(--ss6f-color-info\) {
|
|
284
284
|
color: var(--ss6f-color-info);
|
|
285
285
|
}
|
|
286
|
+
.uppercase {
|
|
287
|
+
text-transform: uppercase;
|
|
288
|
+
}
|
|
286
289
|
.opacity-\[0\] {
|
|
287
290
|
opacity: 0;
|
|
288
291
|
}
|
|
@@ -1753,7 +1756,6 @@ svg.fi__icon {
|
|
|
1753
1756
|
font-size: 22px;
|
|
1754
1757
|
font-weight: 700;
|
|
1755
1758
|
letter-spacing: 0.18em;
|
|
1756
|
-
text-transform: uppercase;
|
|
1757
1759
|
color: var(--heading);
|
|
1758
1760
|
text-shadow: 0 0 12px var(--accent);
|
|
1759
1761
|
@supports (color: color-mix(in lab, red, red)) {
|
|
@@ -1801,7 +1803,6 @@ svg.fi__icon {
|
|
|
1801
1803
|
height: 36px;
|
|
1802
1804
|
font: 600 11px/1 var(--font);
|
|
1803
1805
|
letter-spacing: 0.12em;
|
|
1804
|
-
text-transform: uppercase;
|
|
1805
1806
|
text-decoration: none;
|
|
1806
1807
|
color: var(--body);
|
|
1807
1808
|
background: var(--muted-edge);
|
|
@@ -2017,7 +2018,6 @@ svg.fi__icon {
|
|
|
2017
2018
|
margin: 0;
|
|
2018
2019
|
font-size: 20px;
|
|
2019
2020
|
letter-spacing: 0.14em;
|
|
2020
|
-
text-transform: uppercase;
|
|
2021
2021
|
color: var(--heading);
|
|
2022
2022
|
}
|
|
2023
2023
|
.ph__count {
|
|
@@ -2027,7 +2027,7 @@ svg.fi__icon {
|
|
|
2027
2027
|
}
|
|
2028
2028
|
.ph__grid {
|
|
2029
2029
|
display: grid;
|
|
2030
|
-
grid-template-columns: repeat(auto-fill, minmax(
|
|
2030
|
+
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
2031
2031
|
gap: 16px;
|
|
2032
2032
|
}
|
|
2033
2033
|
.ph-page {
|
|
@@ -2044,7 +2044,7 @@ svg.fi__icon {
|
|
|
2044
2044
|
display: flex;
|
|
2045
2045
|
align-items: center;
|
|
2046
2046
|
gap: 14px;
|
|
2047
|
-
min-height:
|
|
2047
|
+
min-height: 60px;
|
|
2048
2048
|
padding: 0 20px;
|
|
2049
2049
|
text-decoration: none;
|
|
2050
2050
|
color: var(--text);
|
|
@@ -2109,7 +2109,6 @@ svg.fi__icon {
|
|
|
2109
2109
|
font-size: 13px;
|
|
2110
2110
|
font-weight: 600;
|
|
2111
2111
|
letter-spacing: 0.12em;
|
|
2112
|
-
text-transform: uppercase;
|
|
2113
2112
|
}
|
|
2114
2113
|
.ph-page__desc {
|
|
2115
2114
|
display: block;
|
|
@@ -2206,6 +2205,27 @@ svg.fi__icon {
|
|
|
2206
2205
|
display: flex;
|
|
2207
2206
|
flex-direction: column;
|
|
2208
2207
|
gap: 24px;
|
|
2208
|
+
min-height: 0;
|
|
2209
|
+
}
|
|
2210
|
+
.ph__panel {
|
|
2211
|
+
max-height: 100%;
|
|
2212
|
+
}
|
|
2213
|
+
.ph-menu__list {
|
|
2214
|
+
display: flex;
|
|
2215
|
+
flex-direction: column;
|
|
2216
|
+
gap: 24px;
|
|
2217
|
+
min-height: 0;
|
|
2218
|
+
overflow-y: auto;
|
|
2219
|
+
overscroll-behavior: contain;
|
|
2220
|
+
padding-right: 6px;
|
|
2221
|
+
scrollbar-width: thin;
|
|
2222
|
+
scrollbar-color: var(--accent) transparent;
|
|
2223
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
2224
|
+
scrollbar-color: color-mix(in srgb, var(--accent) 45%, transparent) transparent;
|
|
2225
|
+
}
|
|
2226
|
+
}
|
|
2227
|
+
html:has(.ph__toggle:checked) {
|
|
2228
|
+
overflow: hidden;
|
|
2209
2229
|
}
|
|
2210
2230
|
.ph-menu .ph__panel-head {
|
|
2211
2231
|
align-items: center;
|
|
@@ -2231,7 +2251,6 @@ svg.fi__icon {
|
|
|
2231
2251
|
font-size: 11px;
|
|
2232
2252
|
font-weight: 600;
|
|
2233
2253
|
letter-spacing: 0.18em;
|
|
2234
|
-
text-transform: uppercase;
|
|
2235
2254
|
color: var(--accent-text);
|
|
2236
2255
|
}
|
|
2237
2256
|
.ph-menu__group-title::before {
|
package/package.json
CHANGED
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
"webpack-dev-middleware": "^7.4.6"
|
|
35
35
|
},
|
|
36
36
|
"name": "ss6-futuristic-component",
|
|
37
|
-
"version": "1.2.
|
|
37
|
+
"version": "1.2.1",
|
|
38
38
|
"description": "Collection of reusable futuristic-styled components for SS6 web applications",
|
|
39
39
|
"main": "dist/index.js",
|
|
40
40
|
"module": "dist/index.mjs",
|