ss6-futuristic-component 1.2.1 → 1.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/index.js +5 -5
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +5 -5
- package/dist/index.mjs.map +1 -1
- package/dist/styles.css +154 -100
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
|
|
5
|
+
## 1.3.0 (2026-10-13)
|
|
6
|
+
|
|
7
|
+
### Features
|
|
8
|
+
|
|
9
|
+
- **Header:** mobile layout under 768px: the center title panel, title and shortcut tabs are hidden, the side slots and menu arrow stay, and the drop-down menu stacks into one column.
|
|
10
|
+
- **Header:** a glowing yellow streak now sweeps along the bar's bottom edge (static under `prefers-reduced-motion`), replacing the two fixed yellow ticks.
|
|
11
|
+
- **Tooltip:** restyled as a chamfered glass chip with a 1px accent edge and a glowing yellow tick; fades in on hover and keyboard focus.
|
|
12
|
+
- **Aligned controls:** new `--control-h` token (40px) gives TextInput, SingleSelect, MultiSelect, Button, the Expandable bar, Navigation.URL and Toast.Inline the same outer height, so they line up in one row.
|
|
13
|
+
|
|
14
|
+
### Changes
|
|
15
|
+
|
|
16
|
+
- **Header:** the title is rendered in uppercase.
|
|
17
|
+
- **Header.Menu:** tiles never overflow narrow screens (`minmax(min(300px, 100%), 1fr)`); drawer height uses `100dvh` for mobile browser bars.
|
|
18
|
+
|
|
5
19
|
## 1.2.1 (2026-10-11)
|
|
6
20
|
|
|
7
21
|
### Bug Fixes
|
package/dist/index.js
CHANGED
|
@@ -353,10 +353,10 @@ function Tooltip({
|
|
|
353
353
|
}
|
|
354
354
|
return /* @__PURE__ */ import_react5.default.createElement("div", { className: "relative" }, /* @__PURE__ */ import_react5.default.createElement("div", { className: "peer" }, children), /* @__PURE__ */ import_react5.default.createElement("span", { className: `tooltip-text ${getAccent()}` }, text));
|
|
355
355
|
}
|
|
356
|
-
var top = "bottom-full translate-y-[-
|
|
357
|
-
var bottom = "right-0 top-full translate-y-[
|
|
358
|
-
var right = "left-full w-[max-content] translate-x-[0.6rem]
|
|
359
|
-
var left = "right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem]
|
|
356
|
+
var top = "bottom-full translate-y-[-6px] right-0";
|
|
357
|
+
var bottom = "right-0 top-full translate-y-[6px]";
|
|
358
|
+
var right = "left-full w-[max-content] translate-x-[0.6rem] top-[-0.2rem]";
|
|
359
|
+
var left = "right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem]";
|
|
360
360
|
|
|
361
361
|
// src/components/NavTabClient.tsx
|
|
362
362
|
var import_react6 = __toESM(require("react"));
|
|
@@ -851,7 +851,7 @@ function Header({
|
|
|
851
851
|
strokeLinecap: "round"
|
|
852
852
|
}
|
|
853
853
|
)
|
|
854
|
-
), /* @__PURE__ */ import_react19.default.createElement("h1", { className: "ph__title" }, title), tabs.length > 0 && renderTabs(tabs.slice(0, half), "l"), tabs.length > 1 && renderTabs(tabs.slice(half), "r"), left2 && /* @__PURE__ */ import_react19.default.createElement("div", { className: "ph__slot ph__slot--left" }, left2), right2 && /* @__PURE__ */ import_react19.default.createElement("div", { className: "ph__slot ph__slot--right" }, right2), menu && /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
854
|
+
), /* @__PURE__ */ import_react19.default.createElement("h1", { className: "ph__title" }, title == null ? void 0 : title.toUpperCase()), tabs.length > 0 && renderTabs(tabs.slice(0, half), "l"), tabs.length > 1 && renderTabs(tabs.slice(half), "r"), left2 && /* @__PURE__ */ import_react19.default.createElement("div", { className: "ph__slot ph__slot--left" }, left2), right2 && /* @__PURE__ */ import_react19.default.createElement("div", { className: "ph__slot ph__slot--right" }, right2), menu && /* @__PURE__ */ import_react19.default.createElement(import_react19.default.Fragment, null, /* @__PURE__ */ import_react19.default.createElement(
|
|
855
855
|
"input",
|
|
856
856
|
{
|
|
857
857
|
id: menuId,
|
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 {/* 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"]}
|
|
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 = \"bottom-full translate-y-[-6px] right-0\";\nconst bottom = \"right-0 top-full translate-y-[6px]\";\nconst right = \"left-full w-[max-content] translate-x-[0.6rem] top-[-0.2rem]\";\nconst left = \"right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem]\";\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?.toUpperCase()}</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
|
@@ -302,10 +302,10 @@ function Tooltip({
|
|
|
302
302
|
}
|
|
303
303
|
return /* @__PURE__ */ React5.createElement("div", { className: "relative" }, /* @__PURE__ */ React5.createElement("div", { className: "peer" }, children), /* @__PURE__ */ React5.createElement("span", { className: `tooltip-text ${getAccent()}` }, text));
|
|
304
304
|
}
|
|
305
|
-
var top = "bottom-full translate-y-[-
|
|
306
|
-
var bottom = "right-0 top-full translate-y-[
|
|
307
|
-
var right = "left-full w-[max-content] translate-x-[0.6rem]
|
|
308
|
-
var left = "right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem]
|
|
305
|
+
var top = "bottom-full translate-y-[-6px] right-0";
|
|
306
|
+
var bottom = "right-0 top-full translate-y-[6px]";
|
|
307
|
+
var right = "left-full w-[max-content] translate-x-[0.6rem] top-[-0.2rem]";
|
|
308
|
+
var left = "right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem]";
|
|
309
309
|
|
|
310
310
|
// src/components/NavTabClient.tsx
|
|
311
311
|
import React6 from "react";
|
|
@@ -800,7 +800,7 @@ function Header({
|
|
|
800
800
|
strokeLinecap: "round"
|
|
801
801
|
}
|
|
802
802
|
)
|
|
803
|
-
), /* @__PURE__ */ React19.createElement("h1", { className: "ph__title" }, title), tabs.length > 0 && renderTabs(tabs.slice(0, half), "l"), tabs.length > 1 && renderTabs(tabs.slice(half), "r"), left2 && /* @__PURE__ */ React19.createElement("div", { className: "ph__slot ph__slot--left" }, left2), right2 && /* @__PURE__ */ React19.createElement("div", { className: "ph__slot ph__slot--right" }, right2), menu && /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
|
|
803
|
+
), /* @__PURE__ */ React19.createElement("h1", { className: "ph__title" }, title == null ? void 0 : title.toUpperCase()), tabs.length > 0 && renderTabs(tabs.slice(0, half), "l"), tabs.length > 1 && renderTabs(tabs.slice(half), "r"), left2 && /* @__PURE__ */ React19.createElement("div", { className: "ph__slot ph__slot--left" }, left2), right2 && /* @__PURE__ */ React19.createElement("div", { className: "ph__slot ph__slot--right" }, right2), menu && /* @__PURE__ */ React19.createElement(React19.Fragment, null, /* @__PURE__ */ React19.createElement(
|
|
804
804
|
"input",
|
|
805
805
|
{
|
|
806
806
|
id: menuId,
|
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 {/* 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"]}
|
|
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 = \"bottom-full translate-y-[-6px] right-0\";\nconst bottom = \"right-0 top-full translate-y-[6px]\";\nconst right = \"left-full w-[max-content] translate-x-[0.6rem] top-[-0.2rem]\";\nconst left = \"right-full w-[max-content] translate-x-[-0.6rem] top-[-0.2rem]\";\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?.toUpperCase()}</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
|
@@ -17,6 +17,9 @@
|
|
|
17
17
|
.absolute {
|
|
18
18
|
position: absolute;
|
|
19
19
|
}
|
|
20
|
+
.fixed {
|
|
21
|
+
position: fixed;
|
|
22
|
+
}
|
|
20
23
|
.relative {
|
|
21
24
|
position: relative;
|
|
22
25
|
}
|
|
@@ -110,9 +113,18 @@
|
|
|
110
113
|
.h-screen {
|
|
111
114
|
height: 100vh;
|
|
112
115
|
}
|
|
116
|
+
.\!w-\[220px\] {
|
|
117
|
+
width: 220px !important;
|
|
118
|
+
}
|
|
113
119
|
.\!w-\[250px\] {
|
|
114
120
|
width: 250px !important;
|
|
115
121
|
}
|
|
122
|
+
.\!w-auto {
|
|
123
|
+
width: auto !important;
|
|
124
|
+
}
|
|
125
|
+
.w-\[16rem\] {
|
|
126
|
+
width: 16rem;
|
|
127
|
+
}
|
|
116
128
|
.w-\[30rem\] {
|
|
117
129
|
width: 30rem;
|
|
118
130
|
}
|
|
@@ -143,12 +155,12 @@
|
|
|
143
155
|
--tw-translate-x: 0.6rem;
|
|
144
156
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
145
157
|
}
|
|
146
|
-
.translate-y-\[-
|
|
147
|
-
--tw-translate-y: -
|
|
158
|
+
.translate-y-\[-6px\] {
|
|
159
|
+
--tw-translate-y: -6px;
|
|
148
160
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
149
161
|
}
|
|
150
|
-
.translate-y-\[
|
|
151
|
-
--tw-translate-y:
|
|
162
|
+
.translate-y-\[6px\] {
|
|
163
|
+
--tw-translate-y: 6px;
|
|
152
164
|
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
153
165
|
}
|
|
154
166
|
.transform {
|
|
@@ -160,6 +172,9 @@
|
|
|
160
172
|
.grid-cols-2 {
|
|
161
173
|
grid-template-columns: repeat(2, minmax(0, 1fr));
|
|
162
174
|
}
|
|
175
|
+
.flex-wrap {
|
|
176
|
+
flex-wrap: wrap;
|
|
177
|
+
}
|
|
163
178
|
.items-center {
|
|
164
179
|
align-items: center;
|
|
165
180
|
}
|
|
@@ -305,53 +320,10 @@
|
|
|
305
320
|
display: flex;
|
|
306
321
|
}
|
|
307
322
|
}
|
|
308
|
-
.after\:top-\[-0\.4rem\] {
|
|
309
|
-
&::after {
|
|
310
|
-
content: var(--tw-content);
|
|
311
|
-
top: -0.4rem;
|
|
312
|
-
}
|
|
313
|
-
}
|
|
314
|
-
.after\:top-\[0\.6rem\] {
|
|
315
|
-
&::after {
|
|
316
|
-
content: var(--tw-content);
|
|
317
|
-
top: 0.6rem;
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
.after\:right-\[-0\.2rem\] {
|
|
321
|
-
&::after {
|
|
322
|
-
content: var(--tw-content);
|
|
323
|
-
right: -0.2rem;
|
|
324
|
-
}
|
|
325
|
-
}
|
|
326
|
-
.after\:bottom-0 {
|
|
327
|
-
&::after {
|
|
328
|
-
content: var(--tw-content);
|
|
329
|
-
bottom: calc(var(--spacing) * 0);
|
|
330
|
-
}
|
|
331
|
-
}
|
|
332
|
-
.after\:left-\[-0\.2rem\] {
|
|
333
|
-
&::after {
|
|
334
|
-
content: var(--tw-content);
|
|
335
|
-
left: -0.2rem;
|
|
336
|
-
}
|
|
337
|
-
}
|
|
338
|
-
.after\:translate-y-\[0\.2rem\] {
|
|
339
|
-
&::after {
|
|
340
|
-
content: var(--tw-content);
|
|
341
|
-
--tw-translate-y: 0.2rem;
|
|
342
|
-
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
343
|
-
}
|
|
344
|
-
}
|
|
345
|
-
.after\:translate-y-\[0\.25rem\] {
|
|
346
|
-
&::after {
|
|
347
|
-
content: var(--tw-content);
|
|
348
|
-
--tw-translate-y: 0.25rem;
|
|
349
|
-
translate: var(--tw-translate-x) var(--tw-translate-y);
|
|
350
|
-
}
|
|
351
|
-
}
|
|
352
323
|
}
|
|
353
324
|
:root {
|
|
354
325
|
--font: "JetBrains Mono", ui-monospace, monospace;
|
|
326
|
+
--control-h: 40px;
|
|
355
327
|
}
|
|
356
328
|
:where(:root), [data-theme="light"] {
|
|
357
329
|
--accent: #1597d6;
|
|
@@ -806,7 +778,7 @@
|
|
|
806
778
|
}
|
|
807
779
|
.fx__face--icon {
|
|
808
780
|
justify-content: center;
|
|
809
|
-
width:
|
|
781
|
+
width: calc(var(--control-h) - var(--depth));
|
|
810
782
|
padding: 0;
|
|
811
783
|
}
|
|
812
784
|
.fx::before {
|
|
@@ -821,7 +793,7 @@
|
|
|
821
793
|
isolation: isolate;
|
|
822
794
|
display: flex;
|
|
823
795
|
align-items: center;
|
|
824
|
-
min-height:
|
|
796
|
+
min-height: calc(var(--control-h) - var(--depth));
|
|
825
797
|
padding: 0 14px;
|
|
826
798
|
color: var(--ink);
|
|
827
799
|
background: var(--edge);
|
|
@@ -899,6 +871,8 @@
|
|
|
899
871
|
width: 64px;
|
|
900
872
|
}
|
|
901
873
|
.fi .text-input {
|
|
874
|
+
height: var(--control-h);
|
|
875
|
+
padding-block: 0;
|
|
902
876
|
color: var(--text);
|
|
903
877
|
background: transparent;
|
|
904
878
|
}
|
|
@@ -1070,13 +1044,12 @@ svg.fi__icon {
|
|
|
1070
1044
|
}
|
|
1071
1045
|
.ft__title {
|
|
1072
1046
|
margin: 0;
|
|
1073
|
-
font-size: 1.
|
|
1047
|
+
font-size: 1.2rem;
|
|
1074
1048
|
font-weight: 600;
|
|
1075
|
-
line-height: 1.1;
|
|
1076
1049
|
color: var(--heading);
|
|
1077
1050
|
}
|
|
1078
1051
|
.ft__desc {
|
|
1079
|
-
margin:
|
|
1052
|
+
margin: 0.7rem 0 0.2rem 0;
|
|
1080
1053
|
line-height: 1.6;
|
|
1081
1054
|
color: var(--body);
|
|
1082
1055
|
}
|
|
@@ -1096,7 +1069,8 @@ svg.fi__icon {
|
|
|
1096
1069
|
align-items: center;
|
|
1097
1070
|
gap: 0.8rem;
|
|
1098
1071
|
width: 100%;
|
|
1099
|
-
|
|
1072
|
+
min-height: var(--control-h);
|
|
1073
|
+
padding: 4px 1rem 4px 0.8rem;
|
|
1100
1074
|
line-height: 1.2;
|
|
1101
1075
|
color: var(--text);
|
|
1102
1076
|
background: linear-gradient( 90deg, var(--t), var(--t) );
|
|
@@ -1124,6 +1098,59 @@ svg.fi__icon {
|
|
|
1124
1098
|
font-size: 1.3rem;
|
|
1125
1099
|
color: var(--t);
|
|
1126
1100
|
}
|
|
1101
|
+
.tooltip-text {
|
|
1102
|
+
--cut: polygon(
|
|
1103
|
+
6px 0,
|
|
1104
|
+
100% 0,
|
|
1105
|
+
100% calc(100% - 6px),
|
|
1106
|
+
calc(100% - 6px) 100%,
|
|
1107
|
+
0 100%,
|
|
1108
|
+
0 6px
|
|
1109
|
+
);
|
|
1110
|
+
z-index: 50;
|
|
1111
|
+
isolation: isolate;
|
|
1112
|
+
padding: 0.5rem 0.75rem;
|
|
1113
|
+
font-family: var(--font);
|
|
1114
|
+
letter-spacing: 0.04em;
|
|
1115
|
+
color: var(--text);
|
|
1116
|
+
background: var(--accent);
|
|
1117
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1118
|
+
background: color-mix(in srgb, var(--accent) 55%, transparent);
|
|
1119
|
+
}
|
|
1120
|
+
clip-path: var(--cut);
|
|
1121
|
+
filter: drop-shadow( 0 0 6px var(--accent) );
|
|
1122
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1123
|
+
filter: drop-shadow( 0 0 6px color-mix(in srgb, var(--accent) 35%, transparent) );
|
|
1124
|
+
}
|
|
1125
|
+
opacity: 0;
|
|
1126
|
+
transition: opacity 0.15s, visibility 0.15s;
|
|
1127
|
+
pointer-events: none;
|
|
1128
|
+
}
|
|
1129
|
+
.tooltip-text::before {
|
|
1130
|
+
content: "";
|
|
1131
|
+
position: absolute;
|
|
1132
|
+
inset: 1px;
|
|
1133
|
+
z-index: -1;
|
|
1134
|
+
background: linear-gradient(160deg, var(--glass-from), var(--glass-to)), var(--bg);
|
|
1135
|
+
@supports (color: color-mix(in lab, red, red)) {
|
|
1136
|
+
background: linear-gradient(160deg, var(--glass-from), var(--glass-to)), color-mix(in srgb, var(--bg) 85%, transparent);
|
|
1137
|
+
}
|
|
1138
|
+
clip-path: polygon( 5.6px 0, 100% 0, 100% calc(100% - 5.6px), calc(100% - 5.6px) 100%, 0 100%, 0 5.6px );
|
|
1139
|
+
}
|
|
1140
|
+
.tooltip-text::after {
|
|
1141
|
+
content: "";
|
|
1142
|
+
position: absolute;
|
|
1143
|
+
left: 10px;
|
|
1144
|
+
bottom: 0;
|
|
1145
|
+
width: 18px;
|
|
1146
|
+
height: 2px;
|
|
1147
|
+
background: var(--yellow);
|
|
1148
|
+
box-shadow: 0 0 6px var(--yellow);
|
|
1149
|
+
}
|
|
1150
|
+
.peer:hover ~ .tooltip-text, .peer:focus-within ~ .tooltip-text {
|
|
1151
|
+
visibility: visible;
|
|
1152
|
+
opacity: 1;
|
|
1153
|
+
}
|
|
1127
1154
|
.fs {
|
|
1128
1155
|
position: relative;
|
|
1129
1156
|
display: inline-flex;
|
|
@@ -1375,9 +1402,13 @@ svg.fi__icon {
|
|
|
1375
1402
|
}
|
|
1376
1403
|
.fe .expandable__icon {
|
|
1377
1404
|
position: absolute;
|
|
1405
|
+
top: calc((var(--control-h) - 1px) / 2);
|
|
1406
|
+
translate: 0 -50%;
|
|
1378
1407
|
color: var(--accent-text);
|
|
1379
1408
|
}
|
|
1380
1409
|
.fe .expandable__title {
|
|
1410
|
+
height: calc(var(--control-h) - 1px);
|
|
1411
|
+
padding-block: 0;
|
|
1381
1412
|
color: var(--heading);
|
|
1382
1413
|
}
|
|
1383
1414
|
.fe .expandable__body {
|
|
@@ -1506,7 +1537,8 @@ svg.fi__icon {
|
|
|
1506
1537
|
z-index: 1;
|
|
1507
1538
|
display: grid;
|
|
1508
1539
|
align-items: center;
|
|
1509
|
-
|
|
1540
|
+
height: calc(var(--control-h) - 6px);
|
|
1541
|
+
padding: 0 1.2rem;
|
|
1510
1542
|
border-radius: 3px;
|
|
1511
1543
|
line-height: 1;
|
|
1512
1544
|
color: var(--muted);
|
|
@@ -1698,20 +1730,31 @@ svg.fi__icon {
|
|
|
1698
1730
|
border-bottom: 1px solid var(--hair-strong);
|
|
1699
1731
|
pointer-events: none;
|
|
1700
1732
|
}
|
|
1701
|
-
.
|
|
1733
|
+
.ph__bar::after {
|
|
1702
1734
|
content: "";
|
|
1703
1735
|
position: absolute;
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1736
|
+
left: 0;
|
|
1737
|
+
right: 0;
|
|
1738
|
+
bottom: -1px;
|
|
1707
1739
|
height: 2px;
|
|
1708
|
-
background: var(--yellow);
|
|
1740
|
+
background: linear-gradient(90deg, transparent, var(--yellow), transparent) no-repeat;
|
|
1741
|
+
background-size: 30% 100%;
|
|
1742
|
+
filter: drop-shadow(0 0 4px var(--yellow));
|
|
1743
|
+
animation: ph-sweep 3s linear infinite;
|
|
1709
1744
|
}
|
|
1710
|
-
|
|
1711
|
-
|
|
1745
|
+
@keyframes ph-sweep {
|
|
1746
|
+
from {
|
|
1747
|
+
background-position: -43% 0;
|
|
1748
|
+
}
|
|
1749
|
+
to {
|
|
1750
|
+
background-position: 143% 0;
|
|
1751
|
+
}
|
|
1712
1752
|
}
|
|
1713
|
-
|
|
1714
|
-
|
|
1753
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1754
|
+
.ph__bar::after {
|
|
1755
|
+
animation: none;
|
|
1756
|
+
background-position: 50% 0;
|
|
1757
|
+
}
|
|
1715
1758
|
}
|
|
1716
1759
|
.ph__deco {
|
|
1717
1760
|
position: absolute;
|
|
@@ -1942,6 +1985,7 @@ svg.fi__icon {
|
|
|
1942
1985
|
left: 0;
|
|
1943
1986
|
right: 0;
|
|
1944
1987
|
height: calc(100vh - 65px);
|
|
1988
|
+
height: calc(100dvh - 65px);
|
|
1945
1989
|
overflow: hidden;
|
|
1946
1990
|
pointer-events: none;
|
|
1947
1991
|
visibility: hidden;
|
|
@@ -2027,7 +2071,7 @@ svg.fi__icon {
|
|
|
2027
2071
|
}
|
|
2028
2072
|
.ph__grid {
|
|
2029
2073
|
display: grid;
|
|
2030
|
-
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
|
2074
|
+
grid-template-columns: repeat(auto-fill, minmax(min(300px, 100%), 1fr));
|
|
2031
2075
|
gap: 16px;
|
|
2032
2076
|
}
|
|
2033
2077
|
.ph-page {
|
|
@@ -2275,6 +2319,51 @@ html:has(.ph__toggle:checked) {
|
|
|
2275
2319
|
letter-spacing: 0.08em;
|
|
2276
2320
|
color: var(--muted);
|
|
2277
2321
|
}
|
|
2322
|
+
@media (max-width: 768px) {
|
|
2323
|
+
.ph__deco, .ph__title, .ph__tabs {
|
|
2324
|
+
display: none;
|
|
2325
|
+
}
|
|
2326
|
+
.ph__slot--left {
|
|
2327
|
+
left: 16px;
|
|
2328
|
+
}
|
|
2329
|
+
.ph__slot--right {
|
|
2330
|
+
right: 16px;
|
|
2331
|
+
}
|
|
2332
|
+
.ph__panel {
|
|
2333
|
+
gap: 16px;
|
|
2334
|
+
padding: 16px;
|
|
2335
|
+
}
|
|
2336
|
+
.ph__panel::before {
|
|
2337
|
+
left: 16px;
|
|
2338
|
+
right: 16px;
|
|
2339
|
+
}
|
|
2340
|
+
.ph-menu {
|
|
2341
|
+
gap: 16px;
|
|
2342
|
+
}
|
|
2343
|
+
.ph-menu .ph__panel-head {
|
|
2344
|
+
flex-direction: column;
|
|
2345
|
+
align-items: stretch;
|
|
2346
|
+
gap: 12px;
|
|
2347
|
+
}
|
|
2348
|
+
.ph__panel-title {
|
|
2349
|
+
font-size: 16px;
|
|
2350
|
+
}
|
|
2351
|
+
.ph-menu__tools {
|
|
2352
|
+
gap: 12px;
|
|
2353
|
+
}
|
|
2354
|
+
.ph-menu__search {
|
|
2355
|
+
flex: 1;
|
|
2356
|
+
width: auto;
|
|
2357
|
+
min-width: 0;
|
|
2358
|
+
}
|
|
2359
|
+
.ph__grid {
|
|
2360
|
+
gap: 8px;
|
|
2361
|
+
}
|
|
2362
|
+
.ph-page {
|
|
2363
|
+
min-height: 52px;
|
|
2364
|
+
padding: 0 14px;
|
|
2365
|
+
}
|
|
2366
|
+
}
|
|
2278
2367
|
html {
|
|
2279
2368
|
font-size: 13px;
|
|
2280
2369
|
color: var(--ss6f-color-text-primary);
|
|
@@ -2493,45 +2582,16 @@ body:has(.confirmation__outer) {
|
|
|
2493
2582
|
visibility: hidden;
|
|
2494
2583
|
position: absolute;
|
|
2495
2584
|
max-width: 15rem;
|
|
2496
|
-
border-radius: 0.3rem;
|
|
2497
|
-
background-color: var(--ss6f-color-text-primary);
|
|
2498
2585
|
padding-inline: 0.5rem;
|
|
2499
2586
|
padding-block: 0.4rem;
|
|
2500
2587
|
font-size: 0.7rem;
|
|
2501
2588
|
--tw-leading: 1.3;
|
|
2502
2589
|
line-height: 1.3;
|
|
2503
|
-
color: var(--ss6f-color-bg-surface);
|
|
2504
|
-
opacity: 0.8;
|
|
2505
2590
|
&:is(:where(.peer):hover ~ *) {
|
|
2506
2591
|
@media (hover: hover) {
|
|
2507
2592
|
visibility: visible;
|
|
2508
2593
|
}
|
|
2509
2594
|
}
|
|
2510
|
-
&::after {
|
|
2511
|
-
content: var(--tw-content);
|
|
2512
|
-
position: absolute;
|
|
2513
|
-
}
|
|
2514
|
-
&::after {
|
|
2515
|
-
content: var(--tw-content);
|
|
2516
|
-
right: 0.6rem;
|
|
2517
|
-
}
|
|
2518
|
-
&::after {
|
|
2519
|
-
content: var(--tw-content);
|
|
2520
|
-
width: calc(var(--spacing) * 2);
|
|
2521
|
-
height: calc(var(--spacing) * 2);
|
|
2522
|
-
}
|
|
2523
|
-
&::after {
|
|
2524
|
-
content: var(--tw-content);
|
|
2525
|
-
rotate: 45deg;
|
|
2526
|
-
}
|
|
2527
|
-
&::after {
|
|
2528
|
-
content: var(--tw-content);
|
|
2529
|
-
background-color: var(--ss6f-color-text-primary);
|
|
2530
|
-
}
|
|
2531
|
-
&::after {
|
|
2532
|
-
--tw-content: '';
|
|
2533
|
-
content: var(--tw-content);
|
|
2534
|
-
}
|
|
2535
2595
|
}
|
|
2536
2596
|
.toast__wrapper {
|
|
2537
2597
|
position: absolute;
|
|
@@ -2830,11 +2890,6 @@ body:has(.confirmation__outer) {
|
|
|
2830
2890
|
syntax: "*";
|
|
2831
2891
|
inherits: false;
|
|
2832
2892
|
}
|
|
2833
|
-
@property --tw-content {
|
|
2834
|
-
syntax: "*";
|
|
2835
|
-
initial-value: "";
|
|
2836
|
-
inherits: false;
|
|
2837
|
-
}
|
|
2838
2893
|
@property --tw-gradient-position {
|
|
2839
2894
|
syntax: "*";
|
|
2840
2895
|
inherits: false;
|
|
@@ -2968,7 +3023,6 @@ body:has(.confirmation__outer) {
|
|
|
2968
3023
|
--tw-drop-shadow-color: initial;
|
|
2969
3024
|
--tw-drop-shadow-alpha: 100%;
|
|
2970
3025
|
--tw-drop-shadow-size: initial;
|
|
2971
|
-
--tw-content: "";
|
|
2972
3026
|
--tw-gradient-position: initial;
|
|
2973
3027
|
--tw-gradient-from: #0000;
|
|
2974
3028
|
--tw-gradient-via: #0000;
|
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.
|
|
37
|
+
"version": "1.3.0",
|
|
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",
|