@nobak/design-system 1.0.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/LICENSE +73 -0
- package/README.md +142 -0
- package/lib/assets/icons.js +67 -0
- package/lib/components/AccountOverview/AccountOverview.js +122 -0
- package/lib/components/AdminPanel.js +58 -0
- package/lib/components/AssetExchange/AssetExchange.js +189 -0
- package/lib/components/AuthenticationFlow.js +216 -0
- package/lib/components/ConversationInterface/ConversationInterface.js +232 -0
- package/lib/components/DevFooter.js +38 -0
- package/lib/components/DevMenu.js +35 -0
- package/lib/components/DevSidebar.js +28 -0
- package/lib/components/DigitalDisplay.js +83 -0
- package/lib/components/Footer.js +45 -0
- package/lib/components/HeroContainer.js +10 -0
- package/lib/components/IntentRecognition/IntentRecognition.js +174 -0
- package/lib/components/Logo.js +259 -0
- package/lib/components/MenuBar.js +56 -0
- package/lib/components/NetworkSettings.js +223 -0
- package/lib/components/RecoverySetup/RecoverySetup.js +354 -0
- package/lib/components/RisingSun.js +122 -0
- package/lib/components/Symbol.js +226 -0
- package/lib/components/TransactionComposer/TransactionComposer.js +258 -0
- package/lib/components/TransactionConfirmation.js +184 -0
- package/lib/components/WalletMenu.js +33 -0
- package/lib/components/console/code/CodeBlock.js +150 -0
- package/lib/components/console/code/index.js +9 -0
- package/lib/components/console/data/DataTable.js +245 -0
- package/lib/components/console/data/MetricCard.js +79 -0
- package/lib/components/console/data/index.js +11 -0
- package/lib/components/console/documentation/index.js +10 -0
- package/lib/components/console/forms/APIKeyGenerator.js +261 -0
- package/lib/components/console/forms/SearchBar.js +210 -0
- package/lib/components/console/forms/index.js +10 -0
- package/lib/components/console/index.js +29 -0
- package/lib/components/console/layout/ConsoleCard.js +82 -0
- package/lib/components/console/layout/ConsoleLayout.js +86 -0
- package/lib/components/console/layout/index.js +10 -0
- package/lib/components/console/monitoring/StatusIndicator.js +128 -0
- package/lib/components/console/monitoring/index.js +9 -0
- package/lib/components/console/navigation/DevFooter.js +38 -0
- package/lib/components/console/navigation/DevMenu.js +35 -0
- package/lib/components/console/navigation/DevSidebar.js +28 -0
- package/lib/components/console/navigation/index.js +11 -0
- package/lib/components/console/settings/index.js +10 -0
- package/lib/components/index.js +12 -0
- package/lib/design/ColorPicker.stories.js +9 -0
- package/lib/design/HSLTool-V1.js +345 -0
- package/lib/design/HSLTool-V2.js +475 -0
- package/lib/design/HSLTool-V3.js +543 -0
- package/lib/design/HSLTool-V4.js +1139 -0
- package/lib/design/HSLTool.js +374 -0
- package/lib/design/OKLCHColorPicker.stories.js +24 -0
- package/lib/design/OKLCHTool.js +1014 -0
- package/lib/index.js +4 -0
- package/lib/shared/components/Avatar/Avatar.js +18 -0
- package/lib/shared/components/Avatar/index.js +1 -0
- package/lib/shared/components/Badge/Badge.js +34 -0
- package/lib/shared/components/Badge/index.js +1 -0
- package/lib/shared/components/Breadcrumb/Breadcrumb.js +13 -0
- package/lib/shared/components/Breadcrumb/index.js +1 -0
- package/lib/shared/components/Button/Button.js +184 -0
- package/lib/shared/components/Button/index.js +1 -0
- package/lib/shared/components/Calendar/Calendar.js +155 -0
- package/lib/shared/components/Calendar/CalendarDay.js +251 -0
- package/lib/shared/components/Calendar/CalendarHeader.js +88 -0
- package/lib/shared/components/Calendar/CalendarMonth.js +106 -0
- package/lib/shared/components/Calendar/CalendarWeek.js +267 -0
- package/lib/shared/components/Calendar/constants.js +73 -0
- package/lib/shared/components/Calendar/index.js +3 -0
- package/lib/shared/components/Calendar/types.d.js +0 -0
- package/lib/shared/components/Cartel/Cartel.js +44 -0
- package/lib/shared/components/Cartel/index.js +1 -0
- package/lib/shared/components/Cell/Cell.js +105 -0
- package/lib/shared/components/Cell/index.js +1 -0
- package/lib/shared/components/Checkbox/Checkbox.js +27 -0
- package/lib/shared/components/Checkbox/index.js +1 -0
- package/lib/shared/components/Clock/Clock.js +6 -0
- package/lib/shared/components/Clock/index.js +1 -0
- package/lib/shared/components/ColorChecker/ColorChecker.js +89 -0
- package/lib/shared/components/ColorChecker/index.js +2 -0
- package/lib/shared/components/ColorChecker/utils.js +159 -0
- package/lib/shared/components/Command/Command.js +95 -0
- package/lib/shared/components/Command/index.js +1 -0
- package/lib/shared/components/Container/Container.js +18 -0
- package/lib/shared/components/Container/index.js +1 -0
- package/lib/shared/components/Cover/Cover.js +17 -0
- package/lib/shared/components/Cover/index.js +1 -0
- package/lib/shared/components/DatePicker/DatePicker.js +52 -0
- package/lib/shared/components/DatePicker/components/Calendar.js +125 -0
- package/lib/shared/components/DatePicker/components/CalendarDay.js +23 -0
- package/lib/shared/components/DatePicker/components/DateWrapper.js +15 -0
- package/lib/shared/components/DatePicker/components/index.js +2 -0
- package/lib/shared/components/DatePicker/index.js +1 -0
- package/lib/shared/components/DateTime/DateTime.js +51 -0
- package/lib/shared/components/DateTime/index.js +1 -0
- package/lib/shared/components/Debug/Debug.js +12 -0
- package/lib/shared/components/Debug/index.js +1 -0
- package/lib/shared/components/Disclosure/Disclosure.js +31 -0
- package/lib/shared/components/Disclosure/index.js +1 -0
- package/lib/shared/components/Dropdown/Dropdown.js +91 -0
- package/lib/shared/components/Dropdown/index.js +1 -0
- package/lib/shared/components/EmptyState/EmptyState.js +40 -0
- package/lib/shared/components/EmptyState/index.js +1 -0
- package/lib/shared/components/Form/Form.js +41 -0
- package/lib/shared/components/Form/components/DynamicForm.js +66 -0
- package/lib/shared/components/Form/components/StepperForm.js +266 -0
- package/lib/shared/components/Form/components/index.js +2 -0
- package/lib/shared/components/Form/context/Form.js +164 -0
- package/lib/shared/components/Form/context/index.js +1 -0
- package/lib/shared/components/Form/index.js +1 -0
- package/lib/shared/components/Form/types.d.js +1 -0
- package/lib/shared/components/Form/utils/index.js +31 -0
- package/lib/shared/components/GroupItems/GroupItems.js +17 -0
- package/lib/shared/components/GroupItems/index.js +1 -0
- package/lib/shared/components/Header/Header.js +26 -0
- package/lib/shared/components/Header/index.js +1 -0
- package/lib/shared/components/Heading/Heading.js +5 -0
- package/lib/shared/components/Heading/index.js +1 -0
- package/lib/shared/components/Icon/Icon.js +28 -0
- package/lib/shared/components/Icon/index.js +1 -0
- package/lib/shared/components/Identicons/Identicons.js +6 -0
- package/lib/shared/components/Identicons/index.d.js +0 -0
- package/lib/shared/components/Identicons/index.js +1 -0
- package/lib/shared/components/Image/Image.js +22 -0
- package/lib/shared/components/Image/index.js +1 -0
- package/lib/shared/components/Input/Input.js +201 -0
- package/lib/shared/components/Input/components/CheckBoxInput.js +81 -0
- package/lib/shared/components/Input/components/DateInput.js +89 -0
- package/lib/shared/components/Input/components/DefaultInput.js +102 -0
- package/lib/shared/components/Input/components/FileReaderInput.js +88 -0
- package/lib/shared/components/Input/components/NumberInput.js +141 -0
- package/lib/shared/components/Input/components/PickerInput.js +122 -0
- package/lib/shared/components/Input/components/RCInput.js +112 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxBasic.js +56 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxCard.js +27 -0
- package/lib/shared/components/Input/components/Radiobox/RadioboxFull.js +44 -0
- package/lib/shared/components/Input/components/Radiobox/index.js +3 -0
- package/lib/shared/components/Input/components/RadioboxInput.js +102 -0
- package/lib/shared/components/Input/components/SelectInput.js +70 -0
- package/lib/shared/components/Input/components/TextAreaInput.js +67 -0
- package/lib/shared/components/Input/components/TextInput.js +139 -0
- package/lib/shared/components/Input/components/TimeInput.js +37 -0
- package/lib/shared/components/Input/components/UploadFileInput.js +123 -0
- package/lib/shared/components/Input/components/index.js +13 -0
- package/lib/shared/components/Input/components/types.d.js +0 -0
- package/lib/shared/components/Input/index.js +1 -0
- package/lib/shared/components/Input/types.d.js +0 -0
- package/lib/shared/components/Layout/Layout.js +13 -0
- package/lib/shared/components/Layout/index.js +1 -0
- package/lib/shared/components/List/List.js +30 -0
- package/lib/shared/components/List/index.js +1 -0
- package/lib/shared/components/Loader/Loader.js +27 -0
- package/lib/shared/components/Loader/index.js +1 -0
- package/lib/shared/components/Modal/Modal.js +102 -0
- package/lib/shared/components/Modal/index.js +1 -0
- package/lib/shared/components/Notification/Notification.js +39 -0
- package/lib/shared/components/Notification/index.js +1 -0
- package/lib/shared/components/Person/Person.js +81 -0
- package/lib/shared/components/Person/index.js +1 -0
- package/lib/shared/components/Popover/Popover.js +39 -0
- package/lib/shared/components/Popover/index.js +1 -0
- package/lib/shared/components/QRCode/QRCode.js +329 -0
- package/lib/shared/components/QRCode/index.js +1 -0
- package/lib/shared/components/RadioGroup/RadioGroup.js +35 -0
- package/lib/shared/components/RadioGroup/components/DefaultGroup.js +71 -0
- package/lib/shared/components/RadioGroup/components/VerticalGroup.js +83 -0
- package/lib/shared/components/RadioGroup/components/index.js +2 -0
- package/lib/shared/components/RadioGroup/index.js +1 -0
- package/lib/shared/components/Search/Search.js +12 -0
- package/lib/shared/components/Search/index.js +1 -0
- package/lib/shared/components/Select/Select.js +90 -0
- package/lib/shared/components/Select/index.js +1 -0
- package/lib/shared/components/Sidebar/Sidebar.js +42 -0
- package/lib/shared/components/Sidebar/index.js +1 -0
- package/lib/shared/components/SlideOver/SlideOver.js +81 -0
- package/lib/shared/components/SlideOver/index.js +1 -0
- package/lib/shared/components/Slider/Slider.js +80 -0
- package/lib/shared/components/Slider/index.js +1 -0
- package/lib/shared/components/Stepper/Stepper.js +32 -0
- package/lib/shared/components/Stepper/index.js +1 -0
- package/lib/shared/components/Steps/Steps.js +53 -0
- package/lib/shared/components/Steps/index.js +1 -0
- package/lib/shared/components/Switch/Switch.js +26 -0
- package/lib/shared/components/Switch/index.js +1 -0
- package/lib/shared/components/Tab/Tab.js +59 -0
- package/lib/shared/components/Tab/index.js +1 -0
- package/lib/shared/components/Table/Table.js +47 -0
- package/lib/shared/components/Table/index.js +1 -0
- package/lib/shared/components/Text/Text.js +11 -0
- package/lib/shared/components/Text/index.js +1 -0
- package/lib/shared/components/TextList/TextList.js +15 -0
- package/lib/shared/components/TextList/index.js +1 -0
- package/lib/shared/components/TimePicker/TimePicker.js +161 -0
- package/lib/shared/components/TimePicker/index.js +1 -0
- package/lib/shared/components/Tooltip/Tooltip.js +13 -0
- package/lib/shared/components/Tooltip/index.js +1 -0
- package/lib/shared/components/Uploader/Uploader.js +63 -0
- package/lib/shared/components/Uploader/index.js +1 -0
- package/lib/shared/components/Video/Video.js +20 -0
- package/lib/shared/components/Video/index.js +1 -0
- package/lib/shared/components/index.d.js +0 -0
- package/lib/shared/components/index.js +50 -0
- package/lib/shared/elements/Color/ColorPallet.js +20 -0
- package/lib/shared/elements/Color/index.js +1 -0
- package/lib/shared/elements/Text.js +37 -0
- package/lib/shared/elements/index.js +1 -0
- package/lib/shared/helpers/FakeLink.js +8 -0
- package/lib/shared/helpers/constants.js +359 -0
- package/lib/shared/helpers/index.js +2 -0
- package/lib/shared/helpers/isEqual.js +56 -0
- package/lib/shared/index.d.js +0 -0
- package/lib/shared/index.js +1 -0
- package/lib/shared/stories/components/Avatar.stories.js +17 -0
- package/lib/shared/stories/components/Badge.stories.dev.js +37 -0
- package/lib/shared/stories/components/Button.stories.js +553 -0
- package/lib/shared/stories/components/Calendar.stories.js +62 -0
- package/lib/shared/stories/components/Cartel.stories.js +32 -0
- package/lib/shared/stories/components/Checkbox.stories.js +15 -0
- package/lib/shared/stories/components/ColorChecker.stories.dev.js +16 -0
- package/lib/shared/stories/components/DateTime.stories.js +27 -0
- package/lib/shared/stories/components/Disclosure.stories.js +30 -0
- package/lib/shared/stories/components/Dropdown.stories.js +39 -0
- package/lib/shared/stories/components/Form/Default.stories.js +201 -0
- package/lib/shared/stories/components/Form/DummyForm.stories.js +48 -0
- package/lib/shared/stories/components/Form/DynamicForm.stories.js +155 -0
- package/lib/shared/stories/components/Form/StepperForm.stories.js +138 -0
- package/lib/shared/stories/components/Form/ValidateForm.stories.js +70 -0
- package/lib/shared/stories/components/Form/Validation.stories.js +184 -0
- package/lib/shared/stories/components/GroupItems.stories.js +23 -0
- package/lib/shared/stories/components/Header.stories.js +29 -0
- package/lib/shared/stories/components/Heading.stories.js +27 -0
- package/lib/shared/stories/components/Icon.stories.js +22 -0
- package/lib/shared/stories/components/Image.stories.js +23 -0
- package/lib/shared/stories/components/Input/Checkbox.stories.js +45 -0
- package/lib/shared/stories/components/Input/DatePicker.stories.js +23 -0
- package/lib/shared/stories/components/Input/Defaut.stories.js +24 -0
- package/lib/shared/stories/components/Input/Number.stories.js +24 -0
- package/lib/shared/stories/components/Input/RCI.stories.js +59 -0
- package/lib/shared/stories/components/Input/Radiobox.stories.dev.js +28 -0
- package/lib/shared/stories/components/Input/Select.stories.dev.js +27 -0
- package/lib/shared/stories/components/Input/SelectMultiple.stories.dev.js +510 -0
- package/lib/shared/stories/components/Input/Textarea.stories.js +24 -0
- package/lib/shared/stories/components/List.stories.js +34 -0
- package/lib/shared/stories/components/Loader.stories.js +15 -0
- package/lib/shared/stories/components/Modal.stories.js +50 -0
- package/lib/shared/stories/components/Notification.stories.js +22 -0
- package/lib/shared/stories/components/Person.stories.js +41 -0
- package/lib/shared/stories/components/Picker.stories.js +15 -0
- package/lib/shared/stories/components/Popover.stories.js +36 -0
- package/lib/shared/stories/components/QRCode.stories.js +20 -0
- package/lib/shared/stories/components/RadioGroup.stories.js +56 -0
- package/lib/shared/stories/components/Select.stories.js +50 -0
- package/lib/shared/stories/components/Sidebar.stories.js +35 -0
- package/lib/shared/stories/components/Slider.stories.dev.js +48 -0
- package/lib/shared/stories/components/Stepper/Stepper.stories.js +38 -0
- package/lib/shared/stories/components/Steps.stories.js +15 -0
- package/lib/shared/stories/components/Switch.stories.js +15 -0
- package/lib/shared/stories/components/Tab.stories.js +15 -0
- package/lib/shared/stories/components/Table.stories.js +95 -0
- package/lib/shared/stories/components/TextList.stories.js +23 -0
- package/lib/shared/stories/components/Tooltip.stories.dev.js +40 -0
- package/lib/shared/stories/elements/Color.stories.js +269 -0
- package/lib/shared/stories/elements/Text.stories.js +45 -0
- package/lib/shared/types/index.js +1 -0
- package/lib/stories/Foundation/BrandIdentity.prod.stories.js +510 -0
- package/lib/stories/Foundation/Logo.stories.js +19 -0
- package/lib/stories/Foundation/RisingSun.stories.js +16 -0
- package/lib/stories/Foundation/Shadows.stories.js +601 -0
- package/lib/stories/Foundation/Symbol.stories.js +18 -0
- package/lib/stories/HeroContainer.stories.js +18 -0
- package/lib/styles/accessibilityTokens.js +72 -0
- package/lib/styles/borderWidth.js +10 -0
- package/lib/styles/colors.js +303 -0
- package/lib/styles/elevation.js +240 -0
- package/lib/styles/icons.js +218 -0
- package/lib/styles/index.js +29 -0
- package/lib/styles/motion.js +668 -0
- package/lib/styles/opacity.js +10 -0
- package/lib/styles/radius.js +11 -0
- package/lib/styles/sizing.js +35 -0
- package/lib/styles/space.js +24 -0
- package/lib/styles/theme/darkTheme.js +471 -0
- package/lib/styles/theme/index.js +44 -0
- package/lib/styles/theme/lightTheme.js +480 -0
- package/lib/styles/theme/themeTypes.js +1 -0
- package/lib/styles/theme/themeUtils.js +63 -0
- package/lib/styles/typography-advanced.js +510 -0
- package/lib/styles/typography.js +1419 -0
- package/lib/styles/zIndex.js +19 -0
- package/lib/tokens/borders.js +161 -0
- package/lib/tokens/colors.js +426 -0
- package/lib/tokens/components.js +499 -0
- package/lib/tokens/index.js +84 -0
- package/lib/tokens/lighting.js +384 -0
- package/lib/tokens/motion.js +284 -0
- package/lib/tokens/semantic.js +367 -0
- package/lib/tokens/shadows.js +114 -0
- package/lib/tokens/spacing.js +189 -0
- package/lib/tokens/typography.js +268 -0
- package/package.json +176 -0
- package/styles/generated-tokens.css +677 -0
- package/styles/index.css +2 -0
- package/styles/main.css +610 -0
- package/tailwind.config.js +64 -0
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { return Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = c(GeneratorFunctionPrototype, u, "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
|
|
3
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
4
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
5
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
6
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
8
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
9
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
10
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
11
|
+
import React, { useState } from 'react';
|
|
12
|
+
import { Modal } from "../shared";
|
|
13
|
+
import { Button } from "../shared/elements/Button";
|
|
14
|
+
import { AuthenticationFlow } from "./AuthenticationFlow";
|
|
15
|
+
// Placeholders for missing components
|
|
16
|
+
// Replace with your actual design system components if available
|
|
17
|
+
|
|
18
|
+
var SecurityLevelIndicator = function SecurityLevelIndicator(_ref) {
|
|
19
|
+
var level = _ref.level;
|
|
20
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
21
|
+
className: "mb-2 p-2 rounded text-white ".concat(level === 'high' ? 'bg-red-600' : level === 'medium' ? 'bg-yellow-600' : 'bg-green-600')
|
|
22
|
+
}, "Security Level: ", level.charAt(0).toUpperCase() + level.slice(1));
|
|
23
|
+
};
|
|
24
|
+
var StellarTransactionPreview = function StellarTransactionPreview(_ref2) {
|
|
25
|
+
var tx = _ref2.tx;
|
|
26
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
27
|
+
className: "p-3 bg-neutral-100 rounded border mb-3"
|
|
28
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
29
|
+
className: "font-bold mb-2"
|
|
30
|
+
}, "Transaction Overview"), /*#__PURE__*/React.createElement("div", null, "Amount: ", /*#__PURE__*/React.createElement("span", {
|
|
31
|
+
className: "font-mono text-primary-800"
|
|
32
|
+
}, tx.amount)), /*#__PURE__*/React.createElement("div", null, "Asset: ", /*#__PURE__*/React.createElement("span", {
|
|
33
|
+
className: "font-mono text-primary-800"
|
|
34
|
+
}, tx.asset)), /*#__PURE__*/React.createElement("div", null, "To: ", /*#__PURE__*/React.createElement("span", {
|
|
35
|
+
className: "font-mono text-primary-800"
|
|
36
|
+
}, tx.to)), /*#__PURE__*/React.createElement("div", null, "From: ", /*#__PURE__*/React.createElement("span", {
|
|
37
|
+
className: "font-mono text-primary-800"
|
|
38
|
+
}, tx.from)), /*#__PURE__*/React.createElement("div", null, "Memo: ", /*#__PURE__*/React.createElement("span", {
|
|
39
|
+
className: "font-mono text-primary-800"
|
|
40
|
+
}, tx.memo || '-')));
|
|
41
|
+
};
|
|
42
|
+
var TransactionSuccess = function TransactionSuccess(_ref3) {
|
|
43
|
+
var onClose = _ref3.onClose;
|
|
44
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: "flex flex-col items-center p-6"
|
|
46
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: "text-green-700 font-bold text-lg mb-2"
|
|
48
|
+
}, "Transaction Successful!"), /*#__PURE__*/React.createElement(Button, {
|
|
49
|
+
text: "Close",
|
|
50
|
+
variant: "primary",
|
|
51
|
+
onClick: onClose
|
|
52
|
+
}));
|
|
53
|
+
};
|
|
54
|
+
var TransactionError = function TransactionError(_ref4) {
|
|
55
|
+
var onRetry = _ref4.onRetry,
|
|
56
|
+
onClose = _ref4.onClose;
|
|
57
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
58
|
+
className: "flex flex-col items-center p-6"
|
|
59
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
60
|
+
className: "text-red-700 font-bold text-lg mb-2"
|
|
61
|
+
}, "Transaction Failed"), /*#__PURE__*/React.createElement("div", {
|
|
62
|
+
className: "mb-4 text-sm text-neutral-700"
|
|
63
|
+
}, "Please check your network or try again."), /*#__PURE__*/React.createElement(Button, {
|
|
64
|
+
text: "Retry",
|
|
65
|
+
variant: "primary",
|
|
66
|
+
onClick: onRetry
|
|
67
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
68
|
+
text: "Cancel",
|
|
69
|
+
variant: "secondary",
|
|
70
|
+
onClick: onClose,
|
|
71
|
+
className: "mt-2"
|
|
72
|
+
}));
|
|
73
|
+
};
|
|
74
|
+
export var TransactionConfirmation = function TransactionConfirmation(_ref5) {
|
|
75
|
+
var open = _ref5.open,
|
|
76
|
+
onClose = _ref5.onClose,
|
|
77
|
+
transaction = _ref5.transaction,
|
|
78
|
+
onConfirm = _ref5.onConfirm;
|
|
79
|
+
var _useState = useState('confirm'),
|
|
80
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
81
|
+
state = _useState2[0],
|
|
82
|
+
setState = _useState2[1];
|
|
83
|
+
var _useState3 = useState(null),
|
|
84
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
85
|
+
error = _useState4[0],
|
|
86
|
+
setError = _useState4[1];
|
|
87
|
+
var handleAuthenticate = /*#__PURE__*/function () {
|
|
88
|
+
var _ref6 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
89
|
+
var result;
|
|
90
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
91
|
+
while (1) switch (_context.prev = _context.next) {
|
|
92
|
+
case 0:
|
|
93
|
+
setState('pending');
|
|
94
|
+
_context.prev = 1;
|
|
95
|
+
_context.next = 4;
|
|
96
|
+
return onConfirm(transaction);
|
|
97
|
+
case 4:
|
|
98
|
+
result = _context.sent;
|
|
99
|
+
setState(result === 'success' ? 'success' : 'error');
|
|
100
|
+
_context.next = 12;
|
|
101
|
+
break;
|
|
102
|
+
case 8:
|
|
103
|
+
_context.prev = 8;
|
|
104
|
+
_context.t0 = _context["catch"](1);
|
|
105
|
+
setError(_context.t0.message || 'Unknown error');
|
|
106
|
+
setState('error');
|
|
107
|
+
case 12:
|
|
108
|
+
case "end":
|
|
109
|
+
return _context.stop();
|
|
110
|
+
}
|
|
111
|
+
}, _callee, null, [[1, 8]]);
|
|
112
|
+
}));
|
|
113
|
+
return function handleAuthenticate() {
|
|
114
|
+
return _ref6.apply(this, arguments);
|
|
115
|
+
};
|
|
116
|
+
}();
|
|
117
|
+
|
|
118
|
+
// Reset state when modal opens
|
|
119
|
+
React.useEffect(function () {
|
|
120
|
+
if (open) {
|
|
121
|
+
setState('confirm');
|
|
122
|
+
setError(null);
|
|
123
|
+
}
|
|
124
|
+
}, [open]);
|
|
125
|
+
return /*#__PURE__*/React.createElement(Modal, {
|
|
126
|
+
open: open,
|
|
127
|
+
onClose: onClose,
|
|
128
|
+
title: "Confirm Transaction"
|
|
129
|
+
}, state === 'confirm' && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(SecurityLevelIndicator, {
|
|
130
|
+
level: transaction.riskLevel
|
|
131
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
132
|
+
className: "mb-2 text-sm text-neutral-700"
|
|
133
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
134
|
+
className: "font-semibold"
|
|
135
|
+
}, "Network:"), " ", transaction.network, /*#__PURE__*/React.createElement("span", {
|
|
136
|
+
className: "ml-4 font-semibold"
|
|
137
|
+
}, "Source:"), " ", transaction.from), /*#__PURE__*/React.createElement(StellarTransactionPreview, {
|
|
138
|
+
tx: transaction
|
|
139
|
+
}), /*#__PURE__*/React.createElement("div", {
|
|
140
|
+
className: "flex items-center gap-2 mb-3"
|
|
141
|
+
}, /*#__PURE__*/React.createElement("span", {
|
|
142
|
+
className: "font-semibold"
|
|
143
|
+
}, "Fee:"), /*#__PURE__*/React.createElement("span", {
|
|
144
|
+
className: "font-mono text-blue-800"
|
|
145
|
+
}, transaction.fee), /*#__PURE__*/React.createElement("span", {
|
|
146
|
+
className: "ml-4 font-semibold"
|
|
147
|
+
}, "Network Impact:"), /*#__PURE__*/React.createElement("span", {
|
|
148
|
+
className: "font-mono text-yellow-700"
|
|
149
|
+
}, transaction.networkImpact)), /*#__PURE__*/React.createElement(Button, {
|
|
150
|
+
text: "Authenticate & Confirm",
|
|
151
|
+
variant: "primary",
|
|
152
|
+
onClick: function onClick() {
|
|
153
|
+
return setState('auth');
|
|
154
|
+
}
|
|
155
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
156
|
+
text: "Cancel",
|
|
157
|
+
variant: "secondary",
|
|
158
|
+
onClick: onClose,
|
|
159
|
+
className: "ml-2"
|
|
160
|
+
})), state === 'auth' && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement(AuthenticationFlow, {
|
|
161
|
+
riskLevel: transaction.riskLevel,
|
|
162
|
+
twoFactorEnabled: transaction.twoFactorEnabled,
|
|
163
|
+
biometricSupported: transaction.biometricSupported,
|
|
164
|
+
onAuthenticated: handleAuthenticate
|
|
165
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
166
|
+
text: "Back",
|
|
167
|
+
variant: "secondary",
|
|
168
|
+
onClick: function onClick() {
|
|
169
|
+
return setState('confirm');
|
|
170
|
+
},
|
|
171
|
+
className: "mt-2"
|
|
172
|
+
})), state === 'pending' && /*#__PURE__*/React.createElement("div", {
|
|
173
|
+
className: "flex flex-col items-center p-6"
|
|
174
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
175
|
+
className: "text-blue-700 font-bold text-lg mb-2"
|
|
176
|
+
}, "Processing...")), state === 'success' && /*#__PURE__*/React.createElement(TransactionSuccess, {
|
|
177
|
+
onClose: onClose
|
|
178
|
+
}), state === 'error' && /*#__PURE__*/React.createElement(TransactionError, {
|
|
179
|
+
onRetry: handleAuthenticate,
|
|
180
|
+
onClose: onClose
|
|
181
|
+
}), error && /*#__PURE__*/React.createElement("div", {
|
|
182
|
+
className: "text-red-600 text-xs mt-2"
|
|
183
|
+
}, error));
|
|
184
|
+
};
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Logo } from "./";
|
|
3
|
+
import { Button } from "../shared";
|
|
4
|
+
var WalletMenu = function WalletMenu(_ref) {
|
|
5
|
+
var menuItems = _ref.menuItems,
|
|
6
|
+
Link = _ref.component;
|
|
7
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
8
|
+
className: "flex justify-center bg-primary-400"
|
|
9
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
10
|
+
className: "flex justify-between items-center p-4 w-full max-w-screen-sm"
|
|
11
|
+
}, /*#__PURE__*/React.createElement(Link, {
|
|
12
|
+
to: "/"
|
|
13
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
14
|
+
className: "flex items-center"
|
|
15
|
+
}, /*#__PURE__*/React.createElement(Logo, {
|
|
16
|
+
type: "Isologo",
|
|
17
|
+
size: "small"
|
|
18
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
19
|
+
className: "flex space-x-6 items-center"
|
|
20
|
+
}, menuItems.map(function (item, index) {
|
|
21
|
+
return /*#__PURE__*/React.createElement(Button, {
|
|
22
|
+
key: index,
|
|
23
|
+
text: item.label,
|
|
24
|
+
variant: "basic",
|
|
25
|
+
type: "link",
|
|
26
|
+
to: item.to,
|
|
27
|
+
component: item.component || Link,
|
|
28
|
+
size: "small",
|
|
29
|
+
active: item.isActive
|
|
30
|
+
});
|
|
31
|
+
}))));
|
|
32
|
+
};
|
|
33
|
+
export { WalletMenu };
|
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
2
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { return Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = c(GeneratorFunctionPrototype, u, "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
|
|
3
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
4
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
5
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
6
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
8
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
9
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
10
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
11
|
+
/**
|
|
12
|
+
* CodeBlock
|
|
13
|
+
*
|
|
14
|
+
* Display code snippets with syntax highlighting and copy functionality.
|
|
15
|
+
* Perfect for API documentation and examples.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* <CodeBlock
|
|
19
|
+
* language="javascript"
|
|
20
|
+
* code={`const response = await fetch('https://api.nobak.io/v1/...')`}
|
|
21
|
+
* showLineNumbers
|
|
22
|
+
* copyable
|
|
23
|
+
* />
|
|
24
|
+
*/
|
|
25
|
+
|
|
26
|
+
import React, { useState } from 'react';
|
|
27
|
+
import clsx from 'clsx';
|
|
28
|
+
export var CodeBlock = function CodeBlock(_ref) {
|
|
29
|
+
var code = _ref.code,
|
|
30
|
+
_ref$language = _ref.language,
|
|
31
|
+
language = _ref$language === void 0 ? 'javascript' : _ref$language,
|
|
32
|
+
_ref$showLineNumbers = _ref.showLineNumbers,
|
|
33
|
+
showLineNumbers = _ref$showLineNumbers === void 0 ? false : _ref$showLineNumbers,
|
|
34
|
+
_ref$copyable = _ref.copyable,
|
|
35
|
+
copyable = _ref$copyable === void 0 ? true : _ref$copyable,
|
|
36
|
+
_ref$showLanguage = _ref.showLanguage,
|
|
37
|
+
showLanguage = _ref$showLanguage === void 0 ? true : _ref$showLanguage,
|
|
38
|
+
title = _ref.title,
|
|
39
|
+
maxHeight = _ref.maxHeight,
|
|
40
|
+
_ref$theme = _ref.theme,
|
|
41
|
+
theme = _ref$theme === void 0 ? 'dark' : _ref$theme,
|
|
42
|
+
className = _ref.className;
|
|
43
|
+
var _useState = useState(false),
|
|
44
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
45
|
+
copied = _useState2[0],
|
|
46
|
+
setCopied = _useState2[1];
|
|
47
|
+
var handleCopy = /*#__PURE__*/function () {
|
|
48
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee() {
|
|
49
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
50
|
+
while (1) switch (_context.prev = _context.next) {
|
|
51
|
+
case 0:
|
|
52
|
+
_context.prev = 0;
|
|
53
|
+
_context.next = 3;
|
|
54
|
+
return navigator.clipboard.writeText(code);
|
|
55
|
+
case 3:
|
|
56
|
+
setCopied(true);
|
|
57
|
+
setTimeout(function () {
|
|
58
|
+
return setCopied(false);
|
|
59
|
+
}, 2000);
|
|
60
|
+
_context.next = 10;
|
|
61
|
+
break;
|
|
62
|
+
case 7:
|
|
63
|
+
_context.prev = 7;
|
|
64
|
+
_context.t0 = _context["catch"](0);
|
|
65
|
+
console.error('Failed to copy:', _context.t0);
|
|
66
|
+
case 10:
|
|
67
|
+
case "end":
|
|
68
|
+
return _context.stop();
|
|
69
|
+
}
|
|
70
|
+
}, _callee, null, [[0, 7]]);
|
|
71
|
+
}));
|
|
72
|
+
return function handleCopy() {
|
|
73
|
+
return _ref2.apply(this, arguments);
|
|
74
|
+
};
|
|
75
|
+
}();
|
|
76
|
+
var lines = code.split(': ');
|
|
77
|
+
var languageLabels = {
|
|
78
|
+
javascript: 'JavaScript',
|
|
79
|
+
typescript: 'TypeScript',
|
|
80
|
+
python: 'Python',
|
|
81
|
+
bash: 'Bash',
|
|
82
|
+
json: 'JSON',
|
|
83
|
+
html: 'HTML',
|
|
84
|
+
css: 'CSS',
|
|
85
|
+
curl: 'cURL'
|
|
86
|
+
};
|
|
87
|
+
var containerClasses = clsx('code-block', 'rounded-lg', 'overflow-hidden', 'border', {
|
|
88
|
+
'bg-gray-900 border-gray-700': theme === 'dark',
|
|
89
|
+
'bg-gray-50 border-gray-200': theme === 'light'
|
|
90
|
+
}, className);
|
|
91
|
+
var codeClasses = clsx('font-mono text-sm', {
|
|
92
|
+
'text-gray-100': theme === 'dark',
|
|
93
|
+
'text-gray-900': theme === 'light'
|
|
94
|
+
});
|
|
95
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
96
|
+
className: containerClasses
|
|
97
|
+
}, (title || showLanguage || copyable) && /*#__PURE__*/React.createElement("div", {
|
|
98
|
+
className: clsx('flex items-center justify-between px-4 py-2 border-b', {
|
|
99
|
+
'bg-gray-800 border-gray-700': theme === 'dark',
|
|
100
|
+
'bg-gray-100 border-gray-200': theme === 'light'
|
|
101
|
+
})
|
|
102
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
103
|
+
className: "flex items-center gap-3"
|
|
104
|
+
}, title && /*#__PURE__*/React.createElement("span", {
|
|
105
|
+
className: clsx('text-sm font-medium', {
|
|
106
|
+
'text-gray-300': theme === 'dark',
|
|
107
|
+
'text-gray-700': theme === 'light'
|
|
108
|
+
})
|
|
109
|
+
}, title), showLanguage && /*#__PURE__*/React.createElement("span", {
|
|
110
|
+
className: clsx('text-xs px-2 py-1 rounded', {
|
|
111
|
+
'bg-gray-700 text-gray-300': theme === 'dark',
|
|
112
|
+
'bg-gray-200 text-gray-600': theme === 'light'
|
|
113
|
+
})
|
|
114
|
+
}, languageLabels[language] || language)), copyable && /*#__PURE__*/React.createElement("button", {
|
|
115
|
+
onClick: handleCopy,
|
|
116
|
+
className: clsx('text-xs px-3 py-1 rounded transition-colors', {
|
|
117
|
+
'bg-green-600 text-white': copied,
|
|
118
|
+
'bg-gray-700 text-gray-300 hover:bg-gray-600': !copied && theme === 'dark',
|
|
119
|
+
'bg-gray-200 text-gray-700 hover:bg-gray-300': !copied && theme === 'light'
|
|
120
|
+
})
|
|
121
|
+
}, copied ? '✓ Copied!' : '📋 Copy')), /*#__PURE__*/React.createElement("div", {
|
|
122
|
+
className: "overflow-x-auto",
|
|
123
|
+
style: {
|
|
124
|
+
maxHeight: maxHeight || 'none'
|
|
125
|
+
}
|
|
126
|
+
}, /*#__PURE__*/React.createElement("pre", {
|
|
127
|
+
className: "p-4"
|
|
128
|
+
}, /*#__PURE__*/React.createElement("code", {
|
|
129
|
+
className: codeClasses
|
|
130
|
+
}, showLineNumbers ? /*#__PURE__*/React.createElement("table", {
|
|
131
|
+
className: "w-full"
|
|
132
|
+
}, /*#__PURE__*/React.createElement("tbody", null, lines.map(function (line, index) {
|
|
133
|
+
return /*#__PURE__*/React.createElement("tr", {
|
|
134
|
+
key: index
|
|
135
|
+
}, /*#__PURE__*/React.createElement("td", {
|
|
136
|
+
className: clsx('pr-4 text-right select-none', {
|
|
137
|
+
'text-gray-500': theme === 'dark',
|
|
138
|
+
'text-gray-400': theme === 'light'
|
|
139
|
+
}),
|
|
140
|
+
style: {
|
|
141
|
+
width: ': '
|
|
142
|
+
}
|
|
143
|
+
}, index + 1), /*#__PURE__*/React.createElement("td", null, /*#__PURE__*/React.createElement("span", {
|
|
144
|
+
className: "whitespace-pre"
|
|
145
|
+
}, line || ' ')));
|
|
146
|
+
}))) : /*#__PURE__*/React.createElement("span", {
|
|
147
|
+
className: "whitespace-pre"
|
|
148
|
+
}, code)))));
|
|
149
|
+
};
|
|
150
|
+
CodeBlock.displayName = 'CodeBlock';
|
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
2
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
3
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
4
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
5
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
6
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
7
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
8
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
9
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
10
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
11
|
+
/**
|
|
12
|
+
* DataTable
|
|
13
|
+
*
|
|
14
|
+
* Display tabular data with sorting, filtering, and pagination.
|
|
15
|
+
* Perfect for API keys, logs, users, and other structured data.
|
|
16
|
+
*
|
|
17
|
+
* @example
|
|
18
|
+
* <DataTable
|
|
19
|
+
* columns={columns}
|
|
20
|
+
* data={data}
|
|
21
|
+
* sortable
|
|
22
|
+
* filterable
|
|
23
|
+
* pagination
|
|
24
|
+
* />
|
|
25
|
+
*/
|
|
26
|
+
|
|
27
|
+
import React, { useState, useMemo } from 'react';
|
|
28
|
+
import clsx from 'clsx';
|
|
29
|
+
export var DataTable = function DataTable(_ref) {
|
|
30
|
+
var columns = _ref.columns,
|
|
31
|
+
data = _ref.data,
|
|
32
|
+
_ref$sortable = _ref.sortable,
|
|
33
|
+
sortable = _ref$sortable === void 0 ? false : _ref$sortable,
|
|
34
|
+
_ref$selectable = _ref.selectable,
|
|
35
|
+
selectable = _ref$selectable === void 0 ? false : _ref$selectable,
|
|
36
|
+
_ref$selectedRows = _ref.selectedRows,
|
|
37
|
+
selectedRows = _ref$selectedRows === void 0 ? [] : _ref$selectedRows,
|
|
38
|
+
onSelectRows = _ref.onSelectRows,
|
|
39
|
+
onRowClick = _ref.onRowClick,
|
|
40
|
+
_ref$rowKey = _ref.rowKey,
|
|
41
|
+
rowKey = _ref$rowKey === void 0 ? 'id' : _ref$rowKey,
|
|
42
|
+
_ref$loading = _ref.loading,
|
|
43
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
44
|
+
_ref$emptyMessage = _ref.emptyMessage,
|
|
45
|
+
emptyMessage = _ref$emptyMessage === void 0 ? 'No data available' : _ref$emptyMessage,
|
|
46
|
+
_ref$pagination = _ref.pagination,
|
|
47
|
+
pagination = _ref$pagination === void 0 ? false : _ref$pagination,
|
|
48
|
+
_ref$pageSize = _ref.pageSize,
|
|
49
|
+
pageSize = _ref$pageSize === void 0 ? 10 : _ref$pageSize,
|
|
50
|
+
className = _ref.className;
|
|
51
|
+
var _useState = useState(null),
|
|
52
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
53
|
+
sortColumn = _useState2[0],
|
|
54
|
+
setSortColumn = _useState2[1];
|
|
55
|
+
var _useState3 = useState('asc'),
|
|
56
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
57
|
+
sortDirection = _useState4[0],
|
|
58
|
+
setSortDirection = _useState4[1];
|
|
59
|
+
var _useState5 = useState(1),
|
|
60
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
61
|
+
currentPage = _useState6[0],
|
|
62
|
+
setCurrentPage = _useState6[1];
|
|
63
|
+
|
|
64
|
+
// Sorting logic
|
|
65
|
+
var sortedData = useMemo(function () {
|
|
66
|
+
if (!sortColumn) return data;
|
|
67
|
+
return _toConsumableArray(data).sort(function (a, b) {
|
|
68
|
+
var aVal = a[sortColumn];
|
|
69
|
+
var bVal = b[sortColumn];
|
|
70
|
+
if (aVal === bVal) return 0;
|
|
71
|
+
var comparison = aVal > bVal ? 1 : -1;
|
|
72
|
+
return sortDirection === 'asc' ? comparison : -comparison;
|
|
73
|
+
});
|
|
74
|
+
}, [data, sortColumn, sortDirection]);
|
|
75
|
+
|
|
76
|
+
// Pagination logic
|
|
77
|
+
var paginatedData = useMemo(function () {
|
|
78
|
+
if (!pagination) return sortedData;
|
|
79
|
+
var startIndex = (currentPage - 1) * pageSize;
|
|
80
|
+
var endIndex = startIndex + pageSize;
|
|
81
|
+
return sortedData.slice(startIndex, endIndex);
|
|
82
|
+
}, [sortedData, pagination, currentPage, pageSize]);
|
|
83
|
+
var totalPages = Math.ceil(sortedData.length / pageSize);
|
|
84
|
+
|
|
85
|
+
// Handle sort
|
|
86
|
+
var handleSort = function handleSort(columnKey) {
|
|
87
|
+
if (!sortable) return;
|
|
88
|
+
if (sortColumn === columnKey) {
|
|
89
|
+
setSortDirection(sortDirection === 'asc' ? 'desc' : 'asc');
|
|
90
|
+
} else {
|
|
91
|
+
setSortColumn(columnKey);
|
|
92
|
+
setSortDirection('asc');
|
|
93
|
+
}
|
|
94
|
+
};
|
|
95
|
+
|
|
96
|
+
// Handle select all
|
|
97
|
+
var handleSelectAll = function handleSelectAll() {
|
|
98
|
+
if (!onSelectRows) return;
|
|
99
|
+
if (selectedRows.length === data.length) {
|
|
100
|
+
onSelectRows([]);
|
|
101
|
+
} else {
|
|
102
|
+
onSelectRows(data.map(function (row) {
|
|
103
|
+
return row[rowKey];
|
|
104
|
+
}));
|
|
105
|
+
}
|
|
106
|
+
};
|
|
107
|
+
|
|
108
|
+
// Handle select row
|
|
109
|
+
var handleSelectRow = function handleSelectRow(key) {
|
|
110
|
+
if (!onSelectRows) return;
|
|
111
|
+
if (selectedRows.includes(key)) {
|
|
112
|
+
onSelectRows(selectedRows.filter(function (k) {
|
|
113
|
+
return k !== key;
|
|
114
|
+
}));
|
|
115
|
+
} else {
|
|
116
|
+
onSelectRows([].concat(_toConsumableArray(selectedRows), [key]));
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
var isAllSelected = selectedRows.length === data.length && data.length > 0;
|
|
120
|
+
var isSomeSelected = selectedRows.length > 0 && selectedRows.length < data.length;
|
|
121
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
122
|
+
className: clsx('data-table', className)
|
|
123
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
124
|
+
className: "overflow-x-auto"
|
|
125
|
+
}, /*#__PURE__*/React.createElement("table", {
|
|
126
|
+
className: "w-full"
|
|
127
|
+
}, /*#__PURE__*/React.createElement("thead", {
|
|
128
|
+
className: "bg-gray-50 border-b border-gray-200"
|
|
129
|
+
}, /*#__PURE__*/React.createElement("tr", null, selectable && /*#__PURE__*/React.createElement("th", {
|
|
130
|
+
className: "px-6 py-3 text-left w-12"
|
|
131
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
132
|
+
type: "checkbox",
|
|
133
|
+
checked: isAllSelected,
|
|
134
|
+
ref: function ref(input) {
|
|
135
|
+
if (input) input.indeterminate = isSomeSelected;
|
|
136
|
+
},
|
|
137
|
+
onChange: handleSelectAll,
|
|
138
|
+
className: "rounded border-gray-300 text-primary-600 focus:ring-primary-500"
|
|
139
|
+
})), columns.map(function (column) {
|
|
140
|
+
return /*#__PURE__*/React.createElement("th", {
|
|
141
|
+
key: column.key,
|
|
142
|
+
className: clsx('px-6 py-3 text-xs font-medium text-gray-500 uppercase tracking-wider', {
|
|
143
|
+
'cursor-pointer hover:bg-gray-100 select-none': sortable && column.sortable !== false,
|
|
144
|
+
'text-left': column.align === 'left' || !column.align,
|
|
145
|
+
'text-center': column.align === 'center',
|
|
146
|
+
'text-right': column.align === 'right'
|
|
147
|
+
}),
|
|
148
|
+
style: {
|
|
149
|
+
width: column.width
|
|
150
|
+
},
|
|
151
|
+
onClick: function onClick() {
|
|
152
|
+
return column.sortable !== false && handleSort(column.key);
|
|
153
|
+
}
|
|
154
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
155
|
+
className: "flex items-center gap-2"
|
|
156
|
+
}, /*#__PURE__*/React.createElement("span", null, column.label), sortable && column.sortable !== false && /*#__PURE__*/React.createElement("span", {
|
|
157
|
+
className: "text-gray-400"
|
|
158
|
+
}, sortColumn === column.key ? sortDirection === 'asc' ? '↑' : '↓' : '↕')));
|
|
159
|
+
}))), /*#__PURE__*/React.createElement("tbody", {
|
|
160
|
+
className: "bg-white divide-y divide-gray-200"
|
|
161
|
+
}, loading ? /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
|
|
162
|
+
colSpan: columns.length + (selectable ? 1 : 0),
|
|
163
|
+
className: "px-6 py-12 text-center"
|
|
164
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
165
|
+
className: "flex items-center justify-center"
|
|
166
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
167
|
+
className: "animate-spin rounded-full h-8 w-8 border-b-2 border-primary-500"
|
|
168
|
+
})))) : paginatedData.length === 0 ? /*#__PURE__*/React.createElement("tr", null, /*#__PURE__*/React.createElement("td", {
|
|
169
|
+
colSpan: columns.length + (selectable ? 1 : 0),
|
|
170
|
+
className: "px-6 py-12 text-center text-gray-500"
|
|
171
|
+
}, emptyMessage)) : paginatedData.map(function (row) {
|
|
172
|
+
var key = row[rowKey];
|
|
173
|
+
var isSelected = selectedRows.includes(key);
|
|
174
|
+
return /*#__PURE__*/React.createElement("tr", {
|
|
175
|
+
key: key,
|
|
176
|
+
className: clsx('transition-colors', {
|
|
177
|
+
'hover:bg-gray-50': onRowClick,
|
|
178
|
+
'cursor-pointer': onRowClick,
|
|
179
|
+
'bg-primary-50': isSelected
|
|
180
|
+
}),
|
|
181
|
+
onClick: function onClick() {
|
|
182
|
+
return onRowClick === null || onRowClick === void 0 ? void 0 : onRowClick(row);
|
|
183
|
+
}
|
|
184
|
+
}, selectable && /*#__PURE__*/React.createElement("td", {
|
|
185
|
+
className: "px-6 py-4"
|
|
186
|
+
}, /*#__PURE__*/React.createElement("input", {
|
|
187
|
+
type: "checkbox",
|
|
188
|
+
checked: isSelected,
|
|
189
|
+
onChange: function onChange(e) {
|
|
190
|
+
e.stopPropagation();
|
|
191
|
+
handleSelectRow(key);
|
|
192
|
+
},
|
|
193
|
+
onClick: function onClick(e) {
|
|
194
|
+
return e.stopPropagation();
|
|
195
|
+
},
|
|
196
|
+
className: "rounded border-gray-300 text-primary-600 focus:ring-primary-500"
|
|
197
|
+
})), columns.map(function (column) {
|
|
198
|
+
return /*#__PURE__*/React.createElement("td", {
|
|
199
|
+
key: column.key,
|
|
200
|
+
className: clsx('px-6 py-4 text-sm text-gray-900', {
|
|
201
|
+
'text-left': column.align === 'left' || !column.align,
|
|
202
|
+
'text-center': column.align === 'center',
|
|
203
|
+
'text-right': column.align === 'right'
|
|
204
|
+
})
|
|
205
|
+
}, column.render ? column.render(row[column.key], row) : row[column.key]);
|
|
206
|
+
}));
|
|
207
|
+
})))), pagination && !loading && paginatedData.length > 0 && /*#__PURE__*/React.createElement("div", {
|
|
208
|
+
className: "px-6 py-4 border-t border-gray-200 flex items-center justify-between"
|
|
209
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
210
|
+
className: "text-sm text-gray-700"
|
|
211
|
+
}, "Showing ", (currentPage - 1) * pageSize + 1, " to", ' ', Math.min(currentPage * pageSize, sortedData.length), " of ", sortedData.length, " results"), /*#__PURE__*/React.createElement("div", {
|
|
212
|
+
className: "flex gap-2"
|
|
213
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
214
|
+
onClick: function onClick() {
|
|
215
|
+
return setCurrentPage(function (p) {
|
|
216
|
+
return Math.max(1, p - 1);
|
|
217
|
+
});
|
|
218
|
+
},
|
|
219
|
+
disabled: currentPage === 1,
|
|
220
|
+
className: clsx('px-3 py-1 rounded border text-sm', currentPage === 1 ? 'border-gray-200 text-gray-400 cursor-not-allowed' : 'border-gray-300 text-gray-700 hover:bg-gray-50')
|
|
221
|
+
}, "Previous"), /*#__PURE__*/React.createElement("div", {
|
|
222
|
+
className: "flex items-center gap-1"
|
|
223
|
+
}, Array.from({
|
|
224
|
+
length: totalPages
|
|
225
|
+
}, function (_, i) {
|
|
226
|
+
return i + 1;
|
|
227
|
+
}).map(function (page) {
|
|
228
|
+
return /*#__PURE__*/React.createElement("button", {
|
|
229
|
+
key: page,
|
|
230
|
+
onClick: function onClick() {
|
|
231
|
+
return setCurrentPage(page);
|
|
232
|
+
},
|
|
233
|
+
className: clsx('px-3 py-1 rounded text-sm', page === currentPage ? 'bg-primary-500 text-white' : 'text-gray-700 hover:bg-gray-50')
|
|
234
|
+
}, page);
|
|
235
|
+
})), /*#__PURE__*/React.createElement("button", {
|
|
236
|
+
onClick: function onClick() {
|
|
237
|
+
return setCurrentPage(function (p) {
|
|
238
|
+
return Math.min(totalPages, p + 1);
|
|
239
|
+
});
|
|
240
|
+
},
|
|
241
|
+
disabled: currentPage === totalPages,
|
|
242
|
+
className: clsx('px-3 py-1 rounded border text-sm', currentPage === totalPages ? 'border-gray-200 text-gray-400 cursor-not-allowed' : 'border-gray-300 text-gray-700 hover:bg-gray-50')
|
|
243
|
+
}, "Next"))));
|
|
244
|
+
};
|
|
245
|
+
DataTable.displayName = 'DataTable';
|