@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,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConsoleCard
|
|
3
|
+
*
|
|
4
|
+
* Reusable card component for the Nobak Developer Console.
|
|
5
|
+
* Provides consistent styling and structure for content sections.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <ConsoleCard
|
|
9
|
+
* title="API Usage"
|
|
10
|
+
* subtitle="Last 30 days"
|
|
11
|
+
* actions={<Button icon="refresh" />}
|
|
12
|
+
* footer="Updated 2 minutes ago"
|
|
13
|
+
* >
|
|
14
|
+
* <UsageChart />
|
|
15
|
+
* </ConsoleCard>
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import clsx from 'clsx';
|
|
20
|
+
export var ConsoleCard = function ConsoleCard(_ref) {
|
|
21
|
+
var title = _ref.title,
|
|
22
|
+
subtitle = _ref.subtitle,
|
|
23
|
+
actions = _ref.actions,
|
|
24
|
+
children = _ref.children,
|
|
25
|
+
footer = _ref.footer,
|
|
26
|
+
_ref$variant = _ref.variant,
|
|
27
|
+
variant = _ref$variant === void 0 ? 'default' : _ref$variant,
|
|
28
|
+
_ref$loading = _ref.loading,
|
|
29
|
+
loading = _ref$loading === void 0 ? false : _ref$loading,
|
|
30
|
+
_ref$error = _ref.error,
|
|
31
|
+
error = _ref$error === void 0 ? false : _ref$error,
|
|
32
|
+
errorMessage = _ref.errorMessage,
|
|
33
|
+
className = _ref.className,
|
|
34
|
+
_ref$padding = _ref.padding,
|
|
35
|
+
padding = _ref$padding === void 0 ? 'medium' : _ref$padding;
|
|
36
|
+
var cardClasses = clsx('console-card', 'rounded-lg', 'transition-all', 'duration-200', {
|
|
37
|
+
// Variants
|
|
38
|
+
'bg-white border border-gray-200 shadow-sm hover:shadow-md': variant === 'default',
|
|
39
|
+
'bg-white border border-gray-200 shadow-lg': variant === 'elevated',
|
|
40
|
+
'bg-transparent border-2 border-gray-300': variant === 'outlined',
|
|
41
|
+
'bg-gray-50': variant === 'flat',
|
|
42
|
+
// States
|
|
43
|
+
'opacity-60 pointer-events-none': loading,
|
|
44
|
+
'border-red-300 bg-red-50': error
|
|
45
|
+
}, className);
|
|
46
|
+
var contentClasses = clsx('console-card__content', {
|
|
47
|
+
'p-0': padding === 'none',
|
|
48
|
+
'p-3': padding === 'small',
|
|
49
|
+
'p-6': padding === 'medium',
|
|
50
|
+
'p-8': padding === 'large'
|
|
51
|
+
});
|
|
52
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
53
|
+
className: cardClasses
|
|
54
|
+
}, (title || subtitle || actions) && /*#__PURE__*/React.createElement("div", {
|
|
55
|
+
className: "console-card__header flex items-start justify-between p-6 pb-4 border-b border-gray-100"
|
|
56
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
57
|
+
className: "flex-1"
|
|
58
|
+
}, title && /*#__PURE__*/React.createElement("h3", {
|
|
59
|
+
className: "text-lg font-semibold text-gray-900 mb-1"
|
|
60
|
+
}, title), subtitle && /*#__PURE__*/React.createElement("p", {
|
|
61
|
+
className: "text-sm text-gray-600"
|
|
62
|
+
}, subtitle)), actions && /*#__PURE__*/React.createElement("div", {
|
|
63
|
+
className: "console-card__actions ml-4"
|
|
64
|
+
}, actions)), /*#__PURE__*/React.createElement("div", {
|
|
65
|
+
className: contentClasses
|
|
66
|
+
}, loading && /*#__PURE__*/React.createElement("div", {
|
|
67
|
+
className: "flex items-center justify-center py-8"
|
|
68
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
className: "animate-spin rounded-full h-8 w-8 border-b-2 border-primary-500"
|
|
70
|
+
})), error && errorMessage && /*#__PURE__*/React.createElement("div", {
|
|
71
|
+
className: "bg-red-100 border border-red-300 text-red-700 px-4 py-3 rounded mb-4"
|
|
72
|
+
}, /*#__PURE__*/React.createElement("p", {
|
|
73
|
+
className: "font-medium"
|
|
74
|
+
}, "Error"), /*#__PURE__*/React.createElement("p", {
|
|
75
|
+
className: "text-sm"
|
|
76
|
+
}, errorMessage)), !loading && children), footer && /*#__PURE__*/React.createElement("div", {
|
|
77
|
+
className: "console-card__footer px-6 py-4 bg-gray-50 border-t border-gray-100 rounded-b-lg"
|
|
78
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
79
|
+
className: "text-sm text-gray-600"
|
|
80
|
+
}, footer)));
|
|
81
|
+
};
|
|
82
|
+
ConsoleCard.displayName = 'ConsoleCard';
|
|
@@ -0,0 +1,86 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ConsoleLayout
|
|
3
|
+
*
|
|
4
|
+
* Main layout wrapper for all Nobak Developer Console pages.
|
|
5
|
+
* Provides consistent structure with navigation, sidebar, and content area.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <ConsoleLayout
|
|
9
|
+
* title="API Keys"
|
|
10
|
+
* breadcrumbs={['Dashboard', 'Security', 'API Keys']}
|
|
11
|
+
* actions={<Button text="Create New Key" />}
|
|
12
|
+
* sidebar={<DevSidebar items={sidebarItems} />}
|
|
13
|
+
* >
|
|
14
|
+
* <APIKeysContent />
|
|
15
|
+
* </ConsoleLayout>
|
|
16
|
+
*/
|
|
17
|
+
|
|
18
|
+
import React from 'react';
|
|
19
|
+
import clsx from 'clsx';
|
|
20
|
+
export var ConsoleLayout = function ConsoleLayout(_ref) {
|
|
21
|
+
var title = _ref.title,
|
|
22
|
+
subtitle = _ref.subtitle,
|
|
23
|
+
breadcrumbs = _ref.breadcrumbs,
|
|
24
|
+
actions = _ref.actions,
|
|
25
|
+
navigation = _ref.navigation,
|
|
26
|
+
sidebar = _ref.sidebar,
|
|
27
|
+
children = _ref.children,
|
|
28
|
+
footer = _ref.footer,
|
|
29
|
+
_ref$showSidebar = _ref.showSidebar,
|
|
30
|
+
showSidebar = _ref$showSidebar === void 0 ? true : _ref$showSidebar,
|
|
31
|
+
_ref$fullWidth = _ref.fullWidth,
|
|
32
|
+
fullWidth = _ref$fullWidth === void 0 ? false : _ref$fullWidth,
|
|
33
|
+
className = _ref.className;
|
|
34
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
35
|
+
className: clsx('console-layout', 'min-h-screen', 'bg-gray-50', className)
|
|
36
|
+
}, navigation && /*#__PURE__*/React.createElement("div", {
|
|
37
|
+
className: "console-layout__navigation sticky top-0 z-50 bg-white border-b border-gray-200"
|
|
38
|
+
}, navigation), /*#__PURE__*/React.createElement("div", {
|
|
39
|
+
className: "console-layout__container flex"
|
|
40
|
+
}, showSidebar && sidebar && /*#__PURE__*/React.createElement("aside", {
|
|
41
|
+
className: "console-layout__sidebar hidden lg:block w-64 bg-white border-r border-gray-200 min-h-screen"
|
|
42
|
+
}, sidebar), /*#__PURE__*/React.createElement("main", {
|
|
43
|
+
className: "console-layout__main flex-1"
|
|
44
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
45
|
+
className: "console-layout__header bg-white border-b border-gray-200 px-8 py-6"
|
|
46
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
47
|
+
className: clsx({
|
|
48
|
+
'max-w-7xl mx-auto': !fullWidth
|
|
49
|
+
})
|
|
50
|
+
}, breadcrumbs && breadcrumbs.length > 0 && /*#__PURE__*/React.createElement("nav", {
|
|
51
|
+
className: "console-layout__breadcrumbs mb-4"
|
|
52
|
+
}, /*#__PURE__*/React.createElement("ol", {
|
|
53
|
+
className: "flex items-center space-x-2 text-sm"
|
|
54
|
+
}, breadcrumbs.map(function (crumb, index) {
|
|
55
|
+
return /*#__PURE__*/React.createElement("li", {
|
|
56
|
+
key: index,
|
|
57
|
+
className: "flex items-center"
|
|
58
|
+
}, index > 0 && /*#__PURE__*/React.createElement("span", {
|
|
59
|
+
className: "text-gray-400 mx-2"
|
|
60
|
+
}, "/"), crumb.href ? /*#__PURE__*/React.createElement("a", {
|
|
61
|
+
href: crumb.href,
|
|
62
|
+
className: "text-gray-600 hover:text-gray-900 transition-colors"
|
|
63
|
+
}, crumb.label) : /*#__PURE__*/React.createElement("span", {
|
|
64
|
+
className: "text-gray-900 font-medium"
|
|
65
|
+
}, crumb.label));
|
|
66
|
+
}))), /*#__PURE__*/React.createElement("div", {
|
|
67
|
+
className: "flex items-start justify-between"
|
|
68
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
69
|
+
className: "flex-1"
|
|
70
|
+
}, /*#__PURE__*/React.createElement("h1", {
|
|
71
|
+
className: "text-3xl font-bold text-gray-900 mb-2"
|
|
72
|
+
}, title), subtitle && /*#__PURE__*/React.createElement("p", {
|
|
73
|
+
className: "text-gray-600"
|
|
74
|
+
}, subtitle)), actions && /*#__PURE__*/React.createElement("div", {
|
|
75
|
+
className: "console-layout__actions ml-6"
|
|
76
|
+
}, actions)))), /*#__PURE__*/React.createElement("div", {
|
|
77
|
+
className: "console-layout__content px-8 py-8"
|
|
78
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
79
|
+
className: clsx({
|
|
80
|
+
'max-w-7xl mx-auto': !fullWidth
|
|
81
|
+
})
|
|
82
|
+
}, children)), footer && /*#__PURE__*/React.createElement("div", {
|
|
83
|
+
className: "console-layout__footer border-t border-gray-200 bg-white"
|
|
84
|
+
}, footer))));
|
|
85
|
+
};
|
|
86
|
+
ConsoleLayout.displayName = 'ConsoleLayout';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console Layout Components
|
|
3
|
+
*
|
|
4
|
+
* Core layout components for the Nobak Developer Console
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { ConsoleLayout } from "./ConsoleLayout";
|
|
8
|
+
export { ConsoleCard } from "./ConsoleCard";
|
|
9
|
+
|
|
10
|
+
// export { ConsoleDashboard } from './ConsoleDashboard';
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* StatusIndicator
|
|
3
|
+
*
|
|
4
|
+
* Display API/service status with visual indicators.
|
|
5
|
+
* Shows operational status, uptime, and incident information.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* <StatusIndicator
|
|
9
|
+
* status="operational"
|
|
10
|
+
* label="API Status"
|
|
11
|
+
* uptime="99.9%"
|
|
12
|
+
* />
|
|
13
|
+
*/
|
|
14
|
+
|
|
15
|
+
import React from 'react';
|
|
16
|
+
import clsx from 'clsx';
|
|
17
|
+
var statusConfig = {
|
|
18
|
+
operational: {
|
|
19
|
+
color: 'text-green-700',
|
|
20
|
+
bgColor: 'bg-green-50',
|
|
21
|
+
borderColor: 'border-green-200',
|
|
22
|
+
label: 'Operational',
|
|
23
|
+
icon: '✓'
|
|
24
|
+
},
|
|
25
|
+
degraded: {
|
|
26
|
+
color: 'text-yellow-700',
|
|
27
|
+
bgColor: 'bg-yellow-50',
|
|
28
|
+
borderColor: 'border-yellow-200',
|
|
29
|
+
label: 'Degraded Performance',
|
|
30
|
+
icon: '⚠'
|
|
31
|
+
},
|
|
32
|
+
partial: {
|
|
33
|
+
color: 'text-orange-700',
|
|
34
|
+
bgColor: 'bg-orange-50',
|
|
35
|
+
borderColor: 'border-orange-200',
|
|
36
|
+
label: 'Partial Outage',
|
|
37
|
+
icon: '⚠'
|
|
38
|
+
},
|
|
39
|
+
down: {
|
|
40
|
+
color: 'text-red-700',
|
|
41
|
+
bgColor: 'bg-red-50',
|
|
42
|
+
borderColor: 'border-red-200',
|
|
43
|
+
label: 'Major Outage',
|
|
44
|
+
icon: '✕'
|
|
45
|
+
},
|
|
46
|
+
maintenance: {
|
|
47
|
+
color: 'text-blue-700',
|
|
48
|
+
bgColor: 'bg-blue-50',
|
|
49
|
+
borderColor: 'border-blue-200',
|
|
50
|
+
label: 'Scheduled Maintenance',
|
|
51
|
+
icon: ': '
|
|
52
|
+
}
|
|
53
|
+
};
|
|
54
|
+
export var StatusIndicator = function StatusIndicator(_ref) {
|
|
55
|
+
var status = _ref.status,
|
|
56
|
+
label = _ref.label,
|
|
57
|
+
uptime = _ref.uptime,
|
|
58
|
+
lastUpdated = _ref.lastUpdated,
|
|
59
|
+
_ref$detailed = _ref.detailed,
|
|
60
|
+
detailed = _ref$detailed === void 0 ? false : _ref$detailed,
|
|
61
|
+
_ref$size = _ref.size,
|
|
62
|
+
size = _ref$size === void 0 ? 'medium' : _ref$size,
|
|
63
|
+
className = _ref.className,
|
|
64
|
+
onClick = _ref.onClick;
|
|
65
|
+
var config = statusConfig[status];
|
|
66
|
+
var containerClasses = clsx('status-indicator', 'inline-flex', 'items-center', 'gap-2', 'rounded-lg', 'border', config.bgColor, config.borderColor, {
|
|
67
|
+
'px-2 py-1 text-xs': size === 'small',
|
|
68
|
+
'px-3 py-2 text-sm': size === 'medium',
|
|
69
|
+
'px-4 py-3 text-base': size === 'large',
|
|
70
|
+
'cursor-pointer hover:shadow-md transition-shadow': onClick
|
|
71
|
+
}, className);
|
|
72
|
+
var dotClasses = clsx('status-indicator__dot', 'rounded-full', {
|
|
73
|
+
'w-2 h-2': size === 'small',
|
|
74
|
+
'w-3 h-3': size === 'medium',
|
|
75
|
+
'w-4 h-4': size === 'large',
|
|
76
|
+
'bg-green-500 animate-pulse': status === 'operational',
|
|
77
|
+
'bg-yellow-500': status === 'degraded',
|
|
78
|
+
'bg-orange-500': status === 'partial',
|
|
79
|
+
'bg-red-500 animate-pulse': status === 'down',
|
|
80
|
+
'bg-blue-500': status === 'maintenance'
|
|
81
|
+
});
|
|
82
|
+
if (!detailed) {
|
|
83
|
+
// Compact view
|
|
84
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: containerClasses,
|
|
86
|
+
onClick: onClick
|
|
87
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
88
|
+
className: dotClasses
|
|
89
|
+
}), /*#__PURE__*/React.createElement("span", {
|
|
90
|
+
className: clsx('font-medium', config.color)
|
|
91
|
+
}, label || config.label));
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
// Detailed view
|
|
95
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
96
|
+
className: clsx('status-indicator-detailed', 'bg-white', 'rounded-lg', 'border', 'border-gray-200', 'p-6', 'shadow-sm', {
|
|
97
|
+
'cursor-pointer hover:shadow-md transition-shadow': onClick
|
|
98
|
+
}, className),
|
|
99
|
+
onClick: onClick
|
|
100
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
101
|
+
className: "flex items-center justify-between mb-4"
|
|
102
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
103
|
+
className: "flex items-center gap-3"
|
|
104
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
105
|
+
className: dotClasses
|
|
106
|
+
}), /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("h3", {
|
|
107
|
+
className: "text-lg font-semibold text-gray-900"
|
|
108
|
+
}, label || 'System Status'), /*#__PURE__*/React.createElement("p", {
|
|
109
|
+
className: clsx('text-sm font-medium', config.color)
|
|
110
|
+
}, config.label))), /*#__PURE__*/React.createElement("div", {
|
|
111
|
+
className: "text-3xl"
|
|
112
|
+
}, config.icon)), (uptime || lastUpdated) && /*#__PURE__*/React.createElement("div", {
|
|
113
|
+
className: "grid grid-cols-2 gap-4 pt-4 border-t border-gray-100"
|
|
114
|
+
}, uptime && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("p", {
|
|
115
|
+
className: "text-xs text-gray-600 uppercase tracking-wide mb-1"
|
|
116
|
+
}, "Uptime"), /*#__PURE__*/React.createElement("p", {
|
|
117
|
+
className: "text-2xl font-bold text-gray-900"
|
|
118
|
+
}, uptime)), lastUpdated && /*#__PURE__*/React.createElement("div", null, /*#__PURE__*/React.createElement("p", {
|
|
119
|
+
className: "text-xs text-gray-600 uppercase tracking-wide mb-1"
|
|
120
|
+
}, "Last Updated"), /*#__PURE__*/React.createElement("p", {
|
|
121
|
+
className: "text-sm text-gray-700"
|
|
122
|
+
}, lastUpdated))), onClick && /*#__PURE__*/React.createElement("div", {
|
|
123
|
+
className: "mt-4 pt-4 border-t border-gray-100"
|
|
124
|
+
}, /*#__PURE__*/React.createElement("button", {
|
|
125
|
+
className: "text-sm text-primary-600 hover:text-primary-700 font-medium"
|
|
126
|
+
}, "View Status Page \u2192")));
|
|
127
|
+
};
|
|
128
|
+
StatusIndicator.displayName = 'StatusIndicator';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button } from "../../../shared";
|
|
3
|
+
var DevFooter = function DevFooter(_ref) {
|
|
4
|
+
var children = _ref.children,
|
|
5
|
+
Link = _ref.component,
|
|
6
|
+
docs_url = _ref.docs_url,
|
|
7
|
+
main_url = _ref.main_url;
|
|
8
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
9
|
+
className: "flex justify-center"
|
|
10
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
11
|
+
className: "flex justify-between items-center py-8 w-full max-w-screen-xl"
|
|
12
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
13
|
+
className: "flex items-center"
|
|
14
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
15
|
+
text: "Nobak",
|
|
16
|
+
type: "link",
|
|
17
|
+
component: Link,
|
|
18
|
+
variant: "basic",
|
|
19
|
+
to: main_url,
|
|
20
|
+
customCss: "text-primary-800"
|
|
21
|
+
})), /*#__PURE__*/React.createElement("div", {
|
|
22
|
+
className: "flex space-x-6 items-center"
|
|
23
|
+
}, /*#__PURE__*/React.createElement(Button, {
|
|
24
|
+
text: "API Documentation",
|
|
25
|
+
type: "link",
|
|
26
|
+
component: Link,
|
|
27
|
+
variant: "basic",
|
|
28
|
+
to: docs_url,
|
|
29
|
+
customCss: "text-primary-1200"
|
|
30
|
+
}), /*#__PURE__*/React.createElement(Button, {
|
|
31
|
+
type: "anchor",
|
|
32
|
+
to: "/faq",
|
|
33
|
+
text: "FAQ",
|
|
34
|
+
variant: "basic",
|
|
35
|
+
customCss: "text-primary-1200"
|
|
36
|
+
}))));
|
|
37
|
+
};
|
|
38
|
+
export { DevFooter };
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Logo } from "../..";
|
|
3
|
+
import { Button } from "../../../shared";
|
|
4
|
+
var DevMenu = function DevMenu(_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-xl"
|
|
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: "ml-2 text-p1-bold"
|
|
20
|
+
}, "Developers"))), /*#__PURE__*/React.createElement("div", {
|
|
21
|
+
className: "flex space-x-6 items-center"
|
|
22
|
+
}, menuItems.map(function (item, index) {
|
|
23
|
+
return /*#__PURE__*/React.createElement(Button, {
|
|
24
|
+
key: index,
|
|
25
|
+
text: item.label,
|
|
26
|
+
variant: "basic",
|
|
27
|
+
type: "link",
|
|
28
|
+
to: item.to,
|
|
29
|
+
component: item.component || Link,
|
|
30
|
+
size: "small",
|
|
31
|
+
active: item.isActive
|
|
32
|
+
});
|
|
33
|
+
}))));
|
|
34
|
+
};
|
|
35
|
+
export { DevMenu };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { Button } from "../../../shared";
|
|
3
|
+
var DevSidebar = function DevSidebar(_ref) {
|
|
4
|
+
var sidebarItems = _ref.sidebarItems,
|
|
5
|
+
Link = _ref.component;
|
|
6
|
+
console.log('sidebarItems', sidebarItems);
|
|
7
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
8
|
+
className: "sticky top-0 z-10"
|
|
9
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
10
|
+
className: "w-64 flex flex-col justify-between p-4"
|
|
11
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
12
|
+
className: "mt-8 flex-1"
|
|
13
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
14
|
+
className: "flex flex-col space-y-4 pl-2 pr-2 pt-2"
|
|
15
|
+
}, sidebarItems.map(function (item, index) {
|
|
16
|
+
return /*#__PURE__*/React.createElement(Button, {
|
|
17
|
+
key: index,
|
|
18
|
+
text: item.label,
|
|
19
|
+
variant: "air",
|
|
20
|
+
size: "small",
|
|
21
|
+
type: "link",
|
|
22
|
+
component: Link,
|
|
23
|
+
to: item.to,
|
|
24
|
+
active: item.isActive
|
|
25
|
+
});
|
|
26
|
+
})))));
|
|
27
|
+
};
|
|
28
|
+
export { DevSidebar };
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console Navigation Components
|
|
3
|
+
*
|
|
4
|
+
* Navigation components for the Nobak Developer Console
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
export { DevMenu } from "./DevMenu";
|
|
8
|
+
export { DevSidebar } from "./DevSidebar";
|
|
9
|
+
export { DevFooter } from "./DevFooter";
|
|
10
|
+
|
|
11
|
+
// export { Breadcrumbs } from './Breadcrumbs';
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Console Settings Components
|
|
3
|
+
*
|
|
4
|
+
* Settings and configuration components
|
|
5
|
+
*/
|
|
6
|
+
|
|
7
|
+
// Export settings components here
|
|
8
|
+
// export { SettingsPanel } from './SettingsPanel';
|
|
9
|
+
// export { TeamManagement } from './TeamManagement';
|
|
10
|
+
// export { BillingDashboard } from './BillingDashboard';
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export { RisingSun } from "./RisingSun";
|
|
2
|
+
export { MenuBar } from "./MenuBar";
|
|
3
|
+
export { DevMenu } from "./DevMenu";
|
|
4
|
+
export { Logo } from "./Logo";
|
|
5
|
+
export { Footer } from "./Footer";
|
|
6
|
+
export { DevFooter } from "./DevFooter";
|
|
7
|
+
export { AdminPanel } from "./AdminPanel";
|
|
8
|
+
export { HeroContainer } from "./HeroContainer";
|
|
9
|
+
export { DevSidebar } from "./DevSidebar";
|
|
10
|
+
export { WalletMenu } from "./WalletMenu";
|
|
11
|
+
export { DigitalDisplay } from "./DigitalDisplay";
|
|
12
|
+
export { Symbol } from "./Symbol";
|