@shohojdhara/atomix 0.1.4 → 0.1.6
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/dist/css/{atomix-0.1.4.css → atomix-0.1.6.css} +1 -1
- package/dist/css/{atomix-0.1.4.css.map → atomix-0.1.6.css.map} +1 -1
- package/dist/css/{atomix-0.1.4.min.css → atomix-0.1.6.min.css} +1 -1
- package/dist/css/{atomix-0.1.4.min.css.map → atomix-0.1.6.min.css.map} +1 -1
- package/dist/js/202.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/202.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/202.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/202.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/202.atomix-0.1.6.react.js +2 -0
- package/dist/js/202.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/308.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/308.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/308.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/308.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/308.atomix-0.1.6.react.js +2 -0
- package/dist/js/308.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/34.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/34.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/34.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/34.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/34.atomix-0.1.6.react.js +2 -0
- package/dist/js/34.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/471.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/471.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/471.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/471.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/471.atomix-0.1.6.react.js +2 -0
- package/dist/js/471.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/54.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/54.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/54.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/54.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/54.atomix-0.1.6.react.js +2 -0
- package/dist/js/54.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/619.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/619.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/619.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/619.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/619.atomix-0.1.6.react.js +2 -0
- package/dist/js/619.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/690.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/690.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/690.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/690.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/690.atomix-0.1.6.react.js +2 -0
- package/dist/js/690.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/894.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/894.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/894.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/894.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/894.atomix-0.1.6.react.js +2 -0
- package/dist/js/894.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/897.atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/897.atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/897.atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/897.atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/897.atomix-0.1.6.react.js +2 -0
- package/dist/js/897.atomix-0.1.6.react.js.map +1 -0
- package/dist/js/atomix-0.1.6.react.cjs.js +2 -0
- package/dist/js/atomix-0.1.6.react.cjs.js.map +1 -0
- package/dist/js/atomix-0.1.6.react.esm.js +2 -0
- package/dist/js/atomix-0.1.6.react.esm.js.map +1 -0
- package/dist/js/atomix-0.1.6.react.js +2 -0
- package/dist/js/atomix-0.1.6.react.js.map +1 -0
- package/dist/types/components/Accordion/Accordion.d.ts +3 -1
- package/dist/types/components/Avatar/Avatar.d.ts +3 -1
- package/dist/types/components/Avatar/AvatarGroup.d.ts +4 -2
- package/dist/types/components/Badge/Badge.d.ts +4 -1
- package/dist/types/components/Badge/index.d.ts +2 -3
- package/dist/types/components/Breadcrumb/Breadcrumb.d.ts +2 -1
- package/dist/types/components/Callout/Callout.d.ts +4 -1
- package/dist/types/components/Card/Card.d.ts +3 -1
- package/dist/types/components/ColorModeToggle/ColorModeToggle.d.ts +3 -1
- package/dist/types/components/ColorModeToggle/index.d.ts +2 -1
- package/dist/types/components/Countdown/Countdown.d.ts +4 -2
- package/dist/types/components/DataTable/DataTable.d.ts +3 -1
- package/dist/types/components/DatePicker/DatePicker.d.ts +2 -0
- package/dist/types/components/Dropdown/Dropdown.d.ts +4 -1
- package/dist/types/components/EdgePanel/EdgePanel.d.ts +4 -1
- package/dist/types/components/Form/Checkbox.d.ts +3 -1
- package/dist/types/components/Form/Form.d.ts +3 -1
- package/dist/types/components/Form/FormGroup.d.ts +3 -1
- package/dist/types/components/Form/Input.d.ts +3 -1
- package/dist/types/components/Form/Radio.d.ts +3 -1
- package/dist/types/components/Form/Select.d.ts +3 -1
- package/dist/types/components/Form/Textarea.d.ts +3 -1
- package/dist/types/components/Form/index.d.ts +7 -7
- package/dist/types/components/Hero/Hero.d.ts +4 -2
- package/dist/types/components/Hero/index.d.ts +2 -2
- package/dist/types/components/Icon/Icon.d.ts +4 -2
- package/dist/types/components/List/List.d.ts +3 -1
- package/dist/types/components/Messages/Messages.d.ts +3 -2
- package/dist/types/components/Messages/index.d.ts +1 -1
- package/dist/types/components/Modal/Modal.d.ts +3 -1
- package/dist/types/components/Navbar/Menu.d.ts +4 -2
- package/dist/types/components/Navbar/Nav.d.ts +4 -1
- package/dist/types/components/Navbar/Navbar.d.ts +4 -1
- package/dist/types/components/Pagination/Pagination.d.ts +4 -1
- package/dist/types/components/PhotoViewer/PhotoViewer.d.ts +3 -1
- package/dist/types/components/Popover/Popover.d.ts +4 -1
- package/dist/types/components/ProductReview/ProductReview.d.ts +4 -2
- package/dist/types/components/Progress/Progress.d.ts +4 -1
- package/dist/types/components/Rating/Rating.d.ts +1 -1
- package/dist/types/components/River/River.d.ts +4 -3
- package/dist/types/components/River/index.d.ts +1 -3
- package/dist/types/components/SectionIntro/SectionIntro.d.ts +4 -2
- package/dist/types/components/Spinner/Spinner.d.ts +4 -1
- package/dist/types/components/Spinner/index.d.ts +2 -1
- package/dist/types/components/Steps/Steps.d.ts +5 -3
- package/dist/types/components/Tab/Tab.d.ts +6 -3
- package/dist/types/components/Testimonial/Testimonial.d.ts +5 -3
- package/dist/types/components/Todo/Todo.d.ts +3 -1
- package/dist/types/components/Toggle/Toggle.d.ts +5 -2
- package/dist/types/components/Tooltip/Tooltip.d.ts +5 -2
- package/dist/types/components/Upload/Upload.d.ts +4 -2
- package/dist/types/components/index.d.ts +78 -37
- package/dist/types/index.d.ts +2 -2
- package/package.json +13 -13
- package/src/components/Accordion/Accordion.tsx +11 -2
- package/src/components/Avatar/Avatar.tsx +12 -2
- package/src/components/Avatar/AvatarGroup.tsx +11 -2
- package/src/components/Badge/Badge.tsx +13 -2
- package/src/components/Badge/index.tsx +2 -4
- package/src/components/Breadcrumb/Breadcrumb.tsx +9 -3
- package/src/components/Callout/Callout.tsx +13 -2
- package/src/components/Card/Card.tsx +12 -2
- package/src/components/ColorModeToggle/ColorModeToggle.tsx +11 -2
- package/src/components/ColorModeToggle/index.ts +2 -1
- package/src/components/Countdown/Countdown.tsx +13 -3
- package/src/components/DataTable/DataTable.tsx +11 -2
- package/src/components/DatePicker/DatePicker.tsx +5 -0
- package/src/components/Dropdown/Dropdown.tsx +14 -1
- package/src/components/EdgePanel/EdgePanel.tsx +15 -2
- package/src/components/Form/Checkbox.tsx +12 -2
- package/src/components/Form/Form.tsx +11 -2
- package/src/components/Form/FormGroup.tsx +11 -2
- package/src/components/Form/Input.tsx +11 -2
- package/src/components/Form/Radio.tsx +11 -2
- package/src/components/Form/Select.tsx +11 -2
- package/src/components/Form/Textarea.tsx +11 -2
- package/src/components/Form/index.ts +7 -7
- package/src/components/Hero/Hero.tsx +13 -4
- package/src/components/Hero/index.ts +2 -2
- package/src/components/Icon/Icon.tsx +12 -3
- package/src/components/List/List.tsx +13 -2
- package/src/components/Messages/Messages.tsx +11 -4
- package/src/components/Messages/index.ts +1 -1
- package/src/components/Modal/Modal.tsx +11 -2
- package/src/components/Navbar/Menu.tsx +12 -1
- package/src/components/Navbar/Nav.tsx +12 -2
- package/src/components/Navbar/Navbar.tsx +14 -2
- package/src/components/Pagination/Pagination.tsx +14 -2
- package/src/components/PhotoViewer/PhotoViewer.tsx +10 -1
- package/src/components/Popover/Popover.tsx +13 -2
- package/src/components/ProductReview/ProductReview.tsx +11 -2
- package/src/components/Progress/Progress.tsx +10 -2
- package/src/components/Rating/Rating.tsx +9 -2
- package/src/components/River/River.tsx +11 -4
- package/src/components/River/index.ts +1 -3
- package/src/components/SectionIntro/SectionIntro.tsx +11 -2
- package/src/components/Spinner/Spinner.tsx +12 -2
- package/src/components/Spinner/index.ts +2 -1
- package/src/components/Steps/Steps.tsx +13 -4
- package/src/components/Tab/Tab.tsx +14 -4
- package/src/components/Testimonial/Testimonial.tsx +13 -4
- package/src/components/Todo/Todo.tsx +11 -2
- package/src/components/Toggle/Toggle.tsx +13 -3
- package/src/components/Tooltip/Tooltip.tsx +14 -3
- package/src/components/Upload/Upload.tsx +12 -3
- package/src/components/index.ts +81 -40
- package/src/index.ts +5 -9
- package/dist/js/13.atomix-0.1.4.react.cjs.js +0 -2
- package/dist/js/13.atomix-0.1.4.react.cjs.js.map +0 -1
- package/dist/js/13.atomix-0.1.4.react.esm.js +0 -2
- package/dist/js/13.atomix-0.1.4.react.esm.js.map +0 -1
- package/dist/js/13.atomix-0.1.4.react.js +0 -2
- package/dist/js/13.atomix-0.1.4.react.js.map +0 -1
- package/dist/js/646.atomix-0.1.4.react.cjs.js +0 -2
- package/dist/js/646.atomix-0.1.4.react.cjs.js.map +0 -1
- package/dist/js/646.atomix-0.1.4.react.esm.js +0 -2
- package/dist/js/646.atomix-0.1.4.react.esm.js.map +0 -1
- package/dist/js/646.atomix-0.1.4.react.js +0 -2
- package/dist/js/646.atomix-0.1.4.react.js.map +0 -1
- package/dist/js/979.atomix-0.1.4.react.cjs.js +0 -2
- package/dist/js/979.atomix-0.1.4.react.cjs.js.map +0 -1
- package/dist/js/979.atomix-0.1.4.react.esm.js +0 -2
- package/dist/js/979.atomix-0.1.4.react.esm.js.map +0 -1
- package/dist/js/979.atomix-0.1.4.react.js +0 -2
- package/dist/js/979.atomix-0.1.4.react.js.map +0 -1
- package/dist/js/989.atomix-0.1.4.react.cjs.js +0 -2
- package/dist/js/989.atomix-0.1.4.react.cjs.js.map +0 -1
- package/dist/js/989.atomix-0.1.4.react.esm.js +0 -2
- package/dist/js/989.atomix-0.1.4.react.esm.js.map +0 -1
- package/dist/js/989.atomix-0.1.4.react.js +0 -2
- package/dist/js/989.atomix-0.1.4.react.js.map +0 -1
- package/dist/js/atomix-0.1.4.react.cjs.js +0 -2
- package/dist/js/atomix-0.1.4.react.cjs.js.map +0 -1
- package/dist/js/atomix-0.1.4.react.esm.js +0 -2
- package/dist/js/atomix-0.1.4.react.esm.js.map +0 -1
- package/dist/js/atomix-0.1.4.react.js +0 -2
- package/dist/js/atomix-0.1.4.react.js.map +0 -1
|
@@ -5,7 +5,7 @@ import { Icon } from '../Icon';
|
|
|
5
5
|
import { TODO } from '../../lib/constants/components';
|
|
6
6
|
import { v4 as uuidv4 } from 'uuid';
|
|
7
7
|
|
|
8
|
-
|
|
8
|
+
const Todo: React.FC<TodoProps> = ({
|
|
9
9
|
items = [],
|
|
10
10
|
title = 'Todo List',
|
|
11
11
|
onAddTodo,
|
|
@@ -162,4 +162,13 @@ export const Todo: React.FC<TodoProps> = ({
|
|
|
162
162
|
);
|
|
163
163
|
};
|
|
164
164
|
|
|
165
|
-
export
|
|
165
|
+
export type { TodoProps };
|
|
166
|
+
|
|
167
|
+
// Set display name for debugging
|
|
168
|
+
Todo.displayName = 'Todo';
|
|
169
|
+
|
|
170
|
+
// Default export (primary)
|
|
171
|
+
export default Todo;
|
|
172
|
+
|
|
173
|
+
// Named export for compatibility
|
|
174
|
+
export { Todo };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useRef, useEffect, useState } from 'react';
|
|
2
2
|
import { TOGGLE } from '../../lib/constants/components';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
interface ToggleProps {
|
|
5
5
|
/**
|
|
6
6
|
* Whether the toggle is initially on
|
|
7
7
|
*/
|
|
@@ -31,7 +31,7 @@ export interface ToggleProps {
|
|
|
31
31
|
/**
|
|
32
32
|
* Toggle component for switching between two states
|
|
33
33
|
*/
|
|
34
|
-
|
|
34
|
+
const Toggle: React.FC<ToggleProps> = ({
|
|
35
35
|
initialOn = false,
|
|
36
36
|
onToggleOn,
|
|
37
37
|
onToggleOff,
|
|
@@ -107,4 +107,14 @@ export const Toggle: React.FC<ToggleProps> = ({
|
|
|
107
107
|
<div className="c-toggle__switch"></div>
|
|
108
108
|
</div>
|
|
109
109
|
);
|
|
110
|
-
};
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
export type { ToggleProps };
|
|
113
|
+
|
|
114
|
+
// Set display name for debugging
|
|
115
|
+
Toggle.displayName = 'Toggle';
|
|
116
|
+
|
|
117
|
+
// Default export (primary)
|
|
118
|
+
export default Toggle;
|
|
119
|
+
|
|
120
|
+
export { Toggle };
|
|
@@ -2,7 +2,7 @@ import React, { ReactNode, useRef, useEffect } from 'react';
|
|
|
2
2
|
import { TOOLTIP } from '../../lib/constants/components';
|
|
3
3
|
import { Tooltip as TooltipClass } from './scripts';
|
|
4
4
|
|
|
5
|
-
|
|
5
|
+
interface TooltipProps {
|
|
6
6
|
/**
|
|
7
7
|
* Content to be displayed in the tooltip
|
|
8
8
|
*/
|
|
@@ -39,7 +39,7 @@ export interface TooltipProps {
|
|
|
39
39
|
offset?: number;
|
|
40
40
|
}
|
|
41
41
|
|
|
42
|
-
|
|
42
|
+
const Tooltip: React.FC<TooltipProps> = ({
|
|
43
43
|
content,
|
|
44
44
|
children,
|
|
45
45
|
position = TOOLTIP.DEFAULTS.POSITION,
|
|
@@ -88,4 +88,15 @@ export const Tooltip: React.FC<TooltipProps> = ({
|
|
|
88
88
|
</div>
|
|
89
89
|
</div>
|
|
90
90
|
);
|
|
91
|
-
};
|
|
91
|
+
};
|
|
92
|
+
|
|
93
|
+
export type { TooltipProps };
|
|
94
|
+
|
|
95
|
+
// Set display name for debugging
|
|
96
|
+
Tooltip.displayName = 'Tooltip';
|
|
97
|
+
|
|
98
|
+
// Default export (primary)
|
|
99
|
+
export default Tooltip;
|
|
100
|
+
|
|
101
|
+
// Named export for compatibility
|
|
102
|
+
export { Tooltip };
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import React, { useRef, useEffect, useState } from 'react';
|
|
2
2
|
import { UPLOAD } from '../../lib/constants/components';
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
interface UploadProps {
|
|
5
5
|
/**
|
|
6
6
|
* Whether the upload component is disabled
|
|
7
7
|
*/
|
|
@@ -81,7 +81,7 @@ type UploadStatus = 'idle' | 'loading' | 'success' | 'error';
|
|
|
81
81
|
/**
|
|
82
82
|
* Upload component for file uploads with drag and drop
|
|
83
83
|
*/
|
|
84
|
-
|
|
84
|
+
const Upload: React.FC<UploadProps> = ({
|
|
85
85
|
disabled = false,
|
|
86
86
|
maxSizeInMB = 5,
|
|
87
87
|
acceptedFileTypes = ['application/pdf', 'application/vnd.ms-excel', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet', 'image/jpeg', 'image/png'],
|
|
@@ -401,4 +401,13 @@ export const Upload: React.FC<UploadProps> = ({
|
|
|
401
401
|
);
|
|
402
402
|
};
|
|
403
403
|
|
|
404
|
-
export
|
|
404
|
+
export type { UploadProps };
|
|
405
|
+
|
|
406
|
+
// Set display name for debugging
|
|
407
|
+
Upload.displayName = 'Upload';
|
|
408
|
+
|
|
409
|
+
// Default export (primary)
|
|
410
|
+
export default Upload;
|
|
411
|
+
|
|
412
|
+
// Named export for compatibility
|
|
413
|
+
export { Upload };
|
package/src/components/index.ts
CHANGED
|
@@ -1,112 +1,153 @@
|
|
|
1
|
-
//
|
|
1
|
+
// Components Index - Explicit exports for better tree-shaking and compatibility
|
|
2
2
|
|
|
3
3
|
// Accordion
|
|
4
|
-
export
|
|
4
|
+
export { default as Accordion } from './Accordion/Accordion';
|
|
5
|
+
export type { AccordionProps } from './Accordion/Accordion';
|
|
5
6
|
|
|
6
|
-
// Avatar
|
|
7
|
-
export
|
|
7
|
+
// Avatar
|
|
8
|
+
export { default as Avatar } from './Avatar/Avatar';
|
|
9
|
+
export type { AvatarProps } from './Avatar/Avatar';
|
|
8
10
|
|
|
9
11
|
// Badge
|
|
10
|
-
export
|
|
12
|
+
export { default as Badge } from './Badge/Badge';
|
|
13
|
+
export type { BadgeProps } from './Badge/Badge';
|
|
11
14
|
|
|
12
15
|
// Breadcrumb
|
|
13
|
-
export
|
|
16
|
+
export { default as Breadcrumb } from './Breadcrumb/Breadcrumb';
|
|
17
|
+
export type { BreadcrumbProps } from './Breadcrumb/Breadcrumb';
|
|
14
18
|
|
|
15
19
|
// Button
|
|
16
|
-
export
|
|
20
|
+
export { default as Button } from './Button';
|
|
21
|
+
export type { ButtonProps } from './Button';
|
|
17
22
|
|
|
18
23
|
// Callout
|
|
19
|
-
export
|
|
24
|
+
export { default as Callout } from './Callout/Callout';
|
|
25
|
+
export type { CalloutProps } from './Callout/Callout';
|
|
20
26
|
|
|
21
27
|
// Card
|
|
22
|
-
export
|
|
28
|
+
export { default as Card } from './Card/Card';
|
|
29
|
+
export type { CardProps } from './Card/Card';
|
|
23
30
|
|
|
24
31
|
// ColorModeToggle
|
|
25
|
-
export
|
|
32
|
+
export { default as ColorModeToggle } from './ColorModeToggle/ColorModeToggle';
|
|
33
|
+
export type { ColorModeToggleProps } from './ColorModeToggle/ColorModeToggle';
|
|
26
34
|
|
|
27
35
|
// Countdown
|
|
28
|
-
export
|
|
36
|
+
export { default as Countdown } from './Countdown/Countdown';
|
|
37
|
+
export type { CountdownProps } from './Countdown/Countdown';
|
|
29
38
|
|
|
30
39
|
// DataTable
|
|
31
|
-
export
|
|
40
|
+
export { default as DataTable } from './DataTable/DataTable';
|
|
41
|
+
export type { DataTableProps } from './DataTable/DataTable';
|
|
32
42
|
|
|
33
43
|
// DatePicker
|
|
34
|
-
export
|
|
44
|
+
export { default as DatePicker } from './DatePicker/DatePicker';
|
|
45
|
+
export type { DatePickerProps } from './DatePicker/DatePicker';
|
|
35
46
|
|
|
36
47
|
// Dropdown
|
|
37
|
-
export
|
|
48
|
+
export { default as Dropdown } from './Dropdown/Dropdown';
|
|
49
|
+
export type { DropdownProps } from './Dropdown/Dropdown';
|
|
38
50
|
|
|
39
51
|
// EdgePanel
|
|
40
|
-
export
|
|
52
|
+
export { default as EdgePanel } from './EdgePanel/EdgePanel';
|
|
53
|
+
export type { EdgePanelProps } from './EdgePanel/EdgePanel';
|
|
41
54
|
|
|
42
|
-
// Form components
|
|
43
|
-
export
|
|
55
|
+
// Form components - you might want to break these down further
|
|
56
|
+
export { default as Form } from './Form/Form';
|
|
57
|
+
export { default as Input } from './Form/Input';
|
|
58
|
+
export { default as Textarea } from './Form/Textarea';
|
|
59
|
+
export { default as Select } from './Form/Select';
|
|
60
|
+
export { default as Checkbox } from './Form/Checkbox';
|
|
61
|
+
export { default as Radio } from './Form/Radio';
|
|
44
62
|
|
|
45
63
|
// Hero
|
|
46
|
-
export
|
|
64
|
+
export { default as Hero } from './Hero/Hero';
|
|
65
|
+
export type { HeroProps } from './Hero/Hero';
|
|
47
66
|
|
|
48
67
|
// Icon
|
|
49
|
-
export
|
|
68
|
+
export { default as Icon } from './Icon/Icon';
|
|
69
|
+
export type { IconProps } from './Icon/Icon';
|
|
50
70
|
|
|
51
71
|
// List
|
|
52
|
-
export
|
|
72
|
+
export { default as List } from './List/List';
|
|
73
|
+
export type { ListProps } from './List/List';
|
|
53
74
|
|
|
54
75
|
// Messages
|
|
55
|
-
export
|
|
76
|
+
export { default as Messages } from './Messages/Messages';
|
|
77
|
+
export type { MessagesProps } from './Messages/Messages';
|
|
56
78
|
|
|
57
79
|
// Modal
|
|
58
|
-
export
|
|
80
|
+
export { default as Modal } from './Modal/Modal';
|
|
81
|
+
export type { ModalProps } from './Modal/Modal';
|
|
59
82
|
|
|
60
83
|
// Navbar
|
|
61
|
-
export
|
|
84
|
+
export { default as Navbar } from './Navbar/Navbar';
|
|
85
|
+
export type { NavbarProps } from './Navbar/Navbar';
|
|
62
86
|
|
|
63
87
|
// Pagination
|
|
64
|
-
export
|
|
88
|
+
export { default as Pagination } from './Pagination/Pagination';
|
|
89
|
+
export type { PaginationProps } from './Pagination/Pagination';
|
|
65
90
|
|
|
66
91
|
// PhotoViewer
|
|
67
|
-
export
|
|
92
|
+
export { default as PhotoViewer } from './PhotoViewer/PhotoViewer';
|
|
93
|
+
export type { PhotoViewerProps } from './PhotoViewer/PhotoViewer';
|
|
68
94
|
|
|
69
95
|
// Popover
|
|
70
|
-
export
|
|
96
|
+
export { default as Popover } from './Popover/Popover';
|
|
97
|
+
export type { PopoverProps } from './Popover/Popover';
|
|
71
98
|
|
|
72
99
|
// ProductReview
|
|
73
|
-
export
|
|
100
|
+
export { default as ProductReview } from './ProductReview/ProductReview';
|
|
101
|
+
export type { ProductReviewProps } from './ProductReview/ProductReview';
|
|
74
102
|
|
|
75
103
|
// Progress
|
|
76
|
-
export
|
|
104
|
+
export { default as Progress } from './Progress/Progress';
|
|
105
|
+
export type { ProgressProps } from './Progress/Progress';
|
|
77
106
|
|
|
78
107
|
// Rating
|
|
79
|
-
export
|
|
108
|
+
export { default as Rating } from './Rating/Rating';
|
|
109
|
+
export type { RatingProps } from './Rating/Rating';
|
|
80
110
|
|
|
81
111
|
// River
|
|
82
|
-
export
|
|
112
|
+
export { default as River } from './River/River';
|
|
113
|
+
export type { RiverProps } from './River/River';
|
|
83
114
|
|
|
84
115
|
// SectionIntro
|
|
85
|
-
export
|
|
116
|
+
export { default as SectionIntro } from './SectionIntro/SectionIntro';
|
|
117
|
+
export type { SectionIntroProps } from './SectionIntro/SectionIntro';
|
|
86
118
|
|
|
87
119
|
// Spinner
|
|
88
|
-
export
|
|
120
|
+
export { default as Spinner } from './Spinner/Spinner';
|
|
121
|
+
export type { SpinnerProps } from './Spinner/Spinner';
|
|
89
122
|
|
|
90
123
|
// Steps
|
|
91
|
-
export
|
|
124
|
+
export { default as Steps } from './Steps/Steps';
|
|
125
|
+
export type { StepsProps } from './Steps/Steps';
|
|
92
126
|
|
|
93
127
|
// Tab
|
|
94
|
-
export
|
|
128
|
+
export { default as Tab } from './Tab/Tab';
|
|
129
|
+
export type { TabProps } from './Tab/Tab';
|
|
95
130
|
|
|
96
131
|
// Testimonial
|
|
97
|
-
export
|
|
132
|
+
export { default as Testimonial } from './Testimonial/Testimonial';
|
|
133
|
+
export type { TestimonialProps } from './Testimonial/Testimonial';
|
|
98
134
|
|
|
99
135
|
// Todo
|
|
100
|
-
export
|
|
136
|
+
export { default as Todo } from './Todo/Todo';
|
|
137
|
+
export type { TodoProps } from './Todo/Todo';
|
|
101
138
|
|
|
102
139
|
// Toggle
|
|
103
|
-
export
|
|
140
|
+
export { default as Toggle } from './Toggle/Toggle';
|
|
141
|
+
export type { ToggleProps } from './Toggle/Toggle';
|
|
104
142
|
|
|
105
143
|
// Tooltip
|
|
106
|
-
export
|
|
144
|
+
export { default as Tooltip } from './Tooltip/Tooltip';
|
|
145
|
+
export type { TooltipProps } from './Tooltip/Tooltip';
|
|
107
146
|
|
|
108
147
|
// Upload
|
|
109
|
-
export
|
|
148
|
+
export { default as Upload } from './Upload/Upload';
|
|
149
|
+
export type { UploadProps } from './Upload/Upload';
|
|
110
150
|
|
|
111
151
|
// AtomixLogo
|
|
112
|
-
export
|
|
152
|
+
export { default as AtomixLogo } from './AtomixLogo/AtomixLogo';
|
|
153
|
+
export type { AtomixLogoProps } from './AtomixLogo/AtomixLogo';
|
package/src/index.ts
CHANGED
|
@@ -1,18 +1,14 @@
|
|
|
1
|
-
//
|
|
2
|
-
|
|
3
|
-
// Export all components
|
|
1
|
+
// Export all components explicitly
|
|
4
2
|
export * from './components';
|
|
5
3
|
|
|
6
|
-
// Export utilities and hooks
|
|
7
4
|
|
|
8
|
-
//
|
|
5
|
+
// Default export for backward compatibility
|
|
9
6
|
import * as components from './components';
|
|
10
7
|
import * as utilities from './lib';
|
|
11
8
|
|
|
12
|
-
|
|
13
|
-
const AtomixReact: Record<string, unknown> = {
|
|
9
|
+
const Atomix = {
|
|
14
10
|
...components,
|
|
15
11
|
...utilities,
|
|
16
|
-
};
|
|
12
|
+
} as any;
|
|
17
13
|
|
|
18
|
-
export default
|
|
14
|
+
export default Atomix;
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_shohojdhara_atomix=self.webpackChunk_shohojdhara_atomix||[]).push([[13],{13:(t,e,r)=>{function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function o(t,e,r){return(e=l(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,l(i.key),i)}}function l(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==i(e)?e:e+""}r.r(e),r.d(e,{default:()=>s});const s=function(){return t=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.element=e,this.options=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){o(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({productName:"",productImage:null,initialRating:0,maxRating:5,allowHalf:!0,ratingColor:"warning",onSubmit:null},r),this.ratingElement=this.element.querySelector(".c-rating"),this.textareaElement=this.element.querySelector(".c-product-review__textarea"),this.submitButton=this.element.querySelector(".c-product-review__actions .c-btn"),this.formElement=this.element.querySelector(".c-product-review__form"),this.onSubmit=this.options.onSubmit,this.init()},e=[{key:"init",value:function(){this.formElement&&this.formElement.addEventListener("submit",this.handleSubmit.bind(this)),this.setupAccessibility()}},{key:"setupAccessibility",value:function(){this.ratingElement&&(this.ratingElement.setAttribute("role","radiogroup"),this.ratingElement.setAttribute("aria-label","Rating"),this.ratingElement.querySelectorAll(".c-rating__star").forEach((function(t,e){t.setAttribute("role","radio"),t.setAttribute("aria-label","".concat(e+1," star").concat(0===e?"":"s"))}))),this.textareaElement&&this.textareaElement.setAttribute("aria-required","false")}},{key:"handleSubmit",value:function(t){if(t.preventDefault(),this.ratingElement&&this.textareaElement){var e=parseFloat(this.ratingElement.getAttribute("data-value")||"0"),r=this.textareaElement.value;this.onSubmit&&e>0&&this.onSubmit(e,r),this.showSuccessState()}}},{key:"showSuccessState",value:function(){}},{key:"reset",value:function(){this.ratingElement&&(this.ratingElement.setAttribute("data-value","0"),this.ratingElement.querySelectorAll(".c-rating__star").forEach((function(t){t.classList.remove("c-rating__star--full","c-rating__star--half")}))),this.textareaElement&&(this.textareaElement.value="")}},{key:"destroy",value:function(){this.formElement&&this.formElement.removeEventListener("submit",this.handleSubmit.bind(this))}}],e&&a(t.prototype,e),r&&a(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}()}}]);
|
|
2
|
-
//# sourceMappingURL=13.atomix-0.1.4.react.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/13.atomix-0.1.4.react.cjs.js","mappings":"qrCAEA,QCCkC,WAoChC,O,EAtBA,SAAAA,EAAYC,GAAyC,IAAnBC,EAAYC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAACG,CAAA,KAAAN,GACjDO,KAAKN,QAAUA,EACfM,KAAKL,Q,+VAAOM,CAAA,CACVC,YAAa,GACbC,aAAc,KACdC,cAAe,EACfC,UAAW,EACXC,WAAW,EACXC,YAAa,UACbC,SAAU,MACPb,GAGLK,KAAKS,cAAgBT,KAAKN,QAAQgB,cAAc,aAChDV,KAAKW,gBAAkBX,KAAKN,QAAQgB,cAAc,+BAClDV,KAAKY,aAAeZ,KAAKN,QAAQgB,cAAc,qCAC/CV,KAAKa,YAAcb,KAAKN,QAAQgB,cAAc,2BAC9CV,KAAKQ,SAAWR,KAAKL,QAAQa,SAE7BR,KAAKc,MACP,E,EAEA,EAAAC,IAAA,OAAAC,MAGA,WACMhB,KAAKa,aACPb,KAAKa,YAAYI,iBAAiB,SAAUjB,KAAKkB,aAAaC,KAAKnB,OAIrEA,KAAKoB,oBACP,GAEA,CAAAL,IAAA,qBAAAC,MAGA,WAEMhB,KAAKS,gBACPT,KAAKS,cAAcY,aAAa,OAAQ,cACxCrB,KAAKS,cAAcY,aAAa,aAAc,UAEhCrB,KAAKS,cAAca,iBAAiB,mBAC5CC,SAAQ,SAACC,EAAMC,GACnBD,EAAKH,aAAa,OAAQ,SAC1BG,EAAKH,aAAa,aAAc,GAAFK,OAAKD,EAAQ,EAAC,SAAAC,OAAkB,IAAVD,EAAc,GAAK,KACzE,KAGEzB,KAAKW,iBACPX,KAAKW,gBAAgBU,aAAa,gBAAiB,QAEvD,GAEA,CAAAN,IAAA,eAAAC,MAIA,SAAaW,GAGX,GAFAA,EAAEC,iBAEG5B,KAAKS,eAAkBT,KAAKW,gBAAjC,CAEA,IAAMkB,EAASC,WAAW9B,KAAKS,cAAcsB,aAAa,eAAiB,KACrEC,EAAWhC,KAAKW,gBAAwCK,MAE1DhB,KAAKQ,UAAYqB,EAAS,GAC5B7B,KAAKQ,SAASqB,EAAQG,GAIxBhC,KAAKiC,kBAVmD,CAW1D,GAEA,CAAAlB,IAAA,mBAAAC,MAGA,WAEE,GAGF,CAAAD,IAAA,QAAAC,MAGA,WACMhB,KAAKS,gBACPT,KAAKS,cAAcY,aAAa,aAAc,KAEhCrB,KAAKS,cAAca,iBAAiB,mBAC5CC,SAAQ,SAAAC,GACZA,EAAKU,UAAUC,OAAO,uBAAwB,uBAChD,KAGEnC,KAAKW,kBACNX,KAAKW,gBAAwCK,MAAQ,GAE1D,GAEA,CAAAD,IAAA,UAAAC,MAGA,WACMhB,KAAKa,aACPb,KAAKa,YAAYuB,oBAAoB,SAAUpC,KAAKkB,aAAaC,KAAKnB,MAI1E,I,4FAAC,CA5H+B,E","sources":["webpack://@shohojdhara/atomix/./src/components/ProductReview/scripts/bundle.ts","webpack://@shohojdhara/atomix/./src/components/ProductReview/scripts/componentInteractions.ts"],"sourcesContent":["import ProductReview from './componentInteractions';\n\nexport default ProductReview;\n","/**\n * Class for handling ProductReview component interactions\n */\nexport default class ProductReview {\n element: HTMLElement;\n options: any;\n ratingElement: HTMLElement | null;\n textareaElement: HTMLElement | null;\n submitButton: HTMLElement | null;\n formElement: HTMLFormElement | null;\n onSubmit: ((rating: number, comment: string) => void) | null;\n \n /**\n * Create a new ProductReview instance\n * @param element - The product review container element\n * @param options - Configuration options\n */\n constructor(element: HTMLElement, options: any = {}) {\n this.element = element;\n this.options = {\n productName: '',\n productImage: null,\n initialRating: 0,\n maxRating: 5,\n allowHalf: true,\n ratingColor: 'warning',\n onSubmit: null,\n ...options\n };\n \n this.ratingElement = this.element.querySelector('.c-rating');\n this.textareaElement = this.element.querySelector('.c-product-review__textarea');\n this.submitButton = this.element.querySelector('.c-product-review__actions .c-btn');\n this.formElement = this.element.querySelector('.c-product-review__form') as HTMLFormElement;\n this.onSubmit = this.options.onSubmit;\n \n this.init();\n }\n \n /**\n * Initialize the product review component\n */\n init() {\n if (this.formElement) {\n this.formElement.addEventListener('submit', this.handleSubmit.bind(this));\n }\n \n // Add any additional initialization logic here\n this.setupAccessibility();\n }\n \n /**\n * Set up accessibility features\n */\n setupAccessibility() {\n // Add ARIA attributes for better accessibility\n if (this.ratingElement) {\n this.ratingElement.setAttribute('role', 'radiogroup');\n this.ratingElement.setAttribute('aria-label', 'Rating');\n \n const stars = this.ratingElement.querySelectorAll('.c-rating__star');\n stars.forEach((star, index) => {\n star.setAttribute('role', 'radio');\n star.setAttribute('aria-label', `${index + 1} star${index === 0 ? '' : 's'}`);\n });\n }\n \n if (this.textareaElement) {\n this.textareaElement.setAttribute('aria-required', 'false');\n }\n }\n \n /**\n * Handle form submission\n * @param e - Submit event\n */\n handleSubmit(e: Event) {\n e.preventDefault();\n \n if (!this.ratingElement || !this.textareaElement) return;\n \n const rating = parseFloat(this.ratingElement.getAttribute('data-value') || '0');\n const comment = (this.textareaElement as HTMLTextAreaElement).value;\n \n if (this.onSubmit && rating > 0) {\n this.onSubmit(rating, comment);\n }\n \n // Show success state\n this.showSuccessState();\n }\n \n /**\n * Show the success state after submission\n */\n showSuccessState() {\n // This will be handled by React state in the component\n // But we could add additional logic here if needed\n }\n \n /**\n * Reset the form\n */\n reset() {\n if (this.ratingElement) {\n this.ratingElement.setAttribute('data-value', '0');\n \n const stars = this.ratingElement.querySelectorAll('.c-rating__star');\n stars.forEach(star => {\n star.classList.remove('c-rating__star--full', 'c-rating__star--half');\n });\n }\n \n if (this.textareaElement) {\n (this.textareaElement as HTMLTextAreaElement).value = '';\n }\n }\n \n /**\n * Clean up event listeners\n */\n destroy() {\n if (this.formElement) {\n this.formElement.removeEventListener('submit', this.handleSubmit.bind(this));\n }\n \n // Clean up any other event listeners\n }\n}\n"],"names":["ProductReview","element","options","arguments","length","undefined","_classCallCheck","this","_objectSpread","productName","productImage","initialRating","maxRating","allowHalf","ratingColor","onSubmit","ratingElement","querySelector","textareaElement","submitButton","formElement","init","key","value","addEventListener","handleSubmit","bind","setupAccessibility","setAttribute","querySelectorAll","forEach","star","index","concat","e","preventDefault","rating","parseFloat","getAttribute","comment","showSuccessState","classList","remove","removeEventListener"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=13;export const __webpack_ids__=[13];export const __webpack_modules__={13:(t,e,r)=>{function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function o(t,e,r){return(e=l(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,l(i.key),i)}}function l(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==i(e)?e:e+""}r.r(e),r.d(e,{default:()=>s});const s=function(){return t=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.element=e,this.options=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){o(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({productName:"",productImage:null,initialRating:0,maxRating:5,allowHalf:!0,ratingColor:"warning",onSubmit:null},r),this.ratingElement=this.element.querySelector(".c-rating"),this.textareaElement=this.element.querySelector(".c-product-review__textarea"),this.submitButton=this.element.querySelector(".c-product-review__actions .c-btn"),this.formElement=this.element.querySelector(".c-product-review__form"),this.onSubmit=this.options.onSubmit,this.init()},e=[{key:"init",value:function(){this.formElement&&this.formElement.addEventListener("submit",this.handleSubmit.bind(this)),this.setupAccessibility()}},{key:"setupAccessibility",value:function(){this.ratingElement&&(this.ratingElement.setAttribute("role","radiogroup"),this.ratingElement.setAttribute("aria-label","Rating"),this.ratingElement.querySelectorAll(".c-rating__star").forEach((function(t,e){t.setAttribute("role","radio"),t.setAttribute("aria-label","".concat(e+1," star").concat(0===e?"":"s"))}))),this.textareaElement&&this.textareaElement.setAttribute("aria-required","false")}},{key:"handleSubmit",value:function(t){if(t.preventDefault(),this.ratingElement&&this.textareaElement){var e=parseFloat(this.ratingElement.getAttribute("data-value")||"0"),r=this.textareaElement.value;this.onSubmit&&e>0&&this.onSubmit(e,r),this.showSuccessState()}}},{key:"showSuccessState",value:function(){}},{key:"reset",value:function(){this.ratingElement&&(this.ratingElement.setAttribute("data-value","0"),this.ratingElement.querySelectorAll(".c-rating__star").forEach((function(t){t.classList.remove("c-rating__star--full","c-rating__star--half")}))),this.textareaElement&&(this.textareaElement.value="")}},{key:"destroy",value:function(){this.formElement&&this.formElement.removeEventListener("submit",this.handleSubmit.bind(this))}}],e&&a(t.prototype,e),r&&a(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}()}};
|
|
2
|
-
//# sourceMappingURL=13.atomix-0.1.4.react.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/13.atomix-0.1.4.react.esm.js","mappings":"+qCAEA,QCCkC,WAoChC,O,EAtBA,SAAAA,EAAYC,GAAyC,IAAnBC,EAAYC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAACG,CAAA,KAAAN,GACjDO,KAAKN,QAAUA,EACfM,KAAKL,Q,+VAAOM,CAAA,CACVC,YAAa,GACbC,aAAc,KACdC,cAAe,EACfC,UAAW,EACXC,WAAW,EACXC,YAAa,UACbC,SAAU,MACPb,GAGLK,KAAKS,cAAgBT,KAAKN,QAAQgB,cAAc,aAChDV,KAAKW,gBAAkBX,KAAKN,QAAQgB,cAAc,+BAClDV,KAAKY,aAAeZ,KAAKN,QAAQgB,cAAc,qCAC/CV,KAAKa,YAAcb,KAAKN,QAAQgB,cAAc,2BAC9CV,KAAKQ,SAAWR,KAAKL,QAAQa,SAE7BR,KAAKc,MACP,E,EAEA,EAAAC,IAAA,OAAAC,MAGA,WACMhB,KAAKa,aACPb,KAAKa,YAAYI,iBAAiB,SAAUjB,KAAKkB,aAAaC,KAAKnB,OAIrEA,KAAKoB,oBACP,GAEA,CAAAL,IAAA,qBAAAC,MAGA,WAEMhB,KAAKS,gBACPT,KAAKS,cAAcY,aAAa,OAAQ,cACxCrB,KAAKS,cAAcY,aAAa,aAAc,UAEhCrB,KAAKS,cAAca,iBAAiB,mBAC5CC,SAAQ,SAACC,EAAMC,GACnBD,EAAKH,aAAa,OAAQ,SAC1BG,EAAKH,aAAa,aAAc,GAAFK,OAAKD,EAAQ,EAAC,SAAAC,OAAkB,IAAVD,EAAc,GAAK,KACzE,KAGEzB,KAAKW,iBACPX,KAAKW,gBAAgBU,aAAa,gBAAiB,QAEvD,GAEA,CAAAN,IAAA,eAAAC,MAIA,SAAaW,GAGX,GAFAA,EAAEC,iBAEG5B,KAAKS,eAAkBT,KAAKW,gBAAjC,CAEA,IAAMkB,EAASC,WAAW9B,KAAKS,cAAcsB,aAAa,eAAiB,KACrEC,EAAWhC,KAAKW,gBAAwCK,MAE1DhB,KAAKQ,UAAYqB,EAAS,GAC5B7B,KAAKQ,SAASqB,EAAQG,GAIxBhC,KAAKiC,kBAVmD,CAW1D,GAEA,CAAAlB,IAAA,mBAAAC,MAGA,WAEE,GAGF,CAAAD,IAAA,QAAAC,MAGA,WACMhB,KAAKS,gBACPT,KAAKS,cAAcY,aAAa,aAAc,KAEhCrB,KAAKS,cAAca,iBAAiB,mBAC5CC,SAAQ,SAAAC,GACZA,EAAKU,UAAUC,OAAO,uBAAwB,uBAChD,KAGEnC,KAAKW,kBACNX,KAAKW,gBAAwCK,MAAQ,GAE1D,GAEA,CAAAD,IAAA,UAAAC,MAGA,WACMhB,KAAKa,aACPb,KAAKa,YAAYuB,oBAAoB,SAAUpC,KAAKkB,aAAaC,KAAKnB,MAI1E,I,4FAAC,CA5H+B,E","sources":["webpack://@shohojdhara/atomix/./src/components/ProductReview/scripts/bundle.ts","webpack://@shohojdhara/atomix/./src/components/ProductReview/scripts/componentInteractions.ts"],"sourcesContent":["import ProductReview from './componentInteractions';\n\nexport default ProductReview;\n","/**\n * Class for handling ProductReview component interactions\n */\nexport default class ProductReview {\n element: HTMLElement;\n options: any;\n ratingElement: HTMLElement | null;\n textareaElement: HTMLElement | null;\n submitButton: HTMLElement | null;\n formElement: HTMLFormElement | null;\n onSubmit: ((rating: number, comment: string) => void) | null;\n \n /**\n * Create a new ProductReview instance\n * @param element - The product review container element\n * @param options - Configuration options\n */\n constructor(element: HTMLElement, options: any = {}) {\n this.element = element;\n this.options = {\n productName: '',\n productImage: null,\n initialRating: 0,\n maxRating: 5,\n allowHalf: true,\n ratingColor: 'warning',\n onSubmit: null,\n ...options\n };\n \n this.ratingElement = this.element.querySelector('.c-rating');\n this.textareaElement = this.element.querySelector('.c-product-review__textarea');\n this.submitButton = this.element.querySelector('.c-product-review__actions .c-btn');\n this.formElement = this.element.querySelector('.c-product-review__form') as HTMLFormElement;\n this.onSubmit = this.options.onSubmit;\n \n this.init();\n }\n \n /**\n * Initialize the product review component\n */\n init() {\n if (this.formElement) {\n this.formElement.addEventListener('submit', this.handleSubmit.bind(this));\n }\n \n // Add any additional initialization logic here\n this.setupAccessibility();\n }\n \n /**\n * Set up accessibility features\n */\n setupAccessibility() {\n // Add ARIA attributes for better accessibility\n if (this.ratingElement) {\n this.ratingElement.setAttribute('role', 'radiogroup');\n this.ratingElement.setAttribute('aria-label', 'Rating');\n \n const stars = this.ratingElement.querySelectorAll('.c-rating__star');\n stars.forEach((star, index) => {\n star.setAttribute('role', 'radio');\n star.setAttribute('aria-label', `${index + 1} star${index === 0 ? '' : 's'}`);\n });\n }\n \n if (this.textareaElement) {\n this.textareaElement.setAttribute('aria-required', 'false');\n }\n }\n \n /**\n * Handle form submission\n * @param e - Submit event\n */\n handleSubmit(e: Event) {\n e.preventDefault();\n \n if (!this.ratingElement || !this.textareaElement) return;\n \n const rating = parseFloat(this.ratingElement.getAttribute('data-value') || '0');\n const comment = (this.textareaElement as HTMLTextAreaElement).value;\n \n if (this.onSubmit && rating > 0) {\n this.onSubmit(rating, comment);\n }\n \n // Show success state\n this.showSuccessState();\n }\n \n /**\n * Show the success state after submission\n */\n showSuccessState() {\n // This will be handled by React state in the component\n // But we could add additional logic here if needed\n }\n \n /**\n * Reset the form\n */\n reset() {\n if (this.ratingElement) {\n this.ratingElement.setAttribute('data-value', '0');\n \n const stars = this.ratingElement.querySelectorAll('.c-rating__star');\n stars.forEach(star => {\n star.classList.remove('c-rating__star--full', 'c-rating__star--half');\n });\n }\n \n if (this.textareaElement) {\n (this.textareaElement as HTMLTextAreaElement).value = '';\n }\n }\n \n /**\n * Clean up event listeners\n */\n destroy() {\n if (this.formElement) {\n this.formElement.removeEventListener('submit', this.handleSubmit.bind(this));\n }\n \n // Clean up any other event listeners\n }\n}\n"],"names":["ProductReview","element","options","arguments","length","undefined","_classCallCheck","this","_objectSpread","productName","productImage","initialRating","maxRating","allowHalf","ratingColor","onSubmit","ratingElement","querySelector","textareaElement","submitButton","formElement","init","key","value","addEventListener","handleSubmit","bind","setupAccessibility","setAttribute","querySelectorAll","forEach","star","index","concat","e","preventDefault","rating","parseFloat","getAttribute","comment","showSuccessState","classList","remove","removeEventListener"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(this.webpackChunkAtomix=this.webpackChunkAtomix||[]).push([[13],{13:(t,e,r)=>{function i(t){return i="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},i(t)}function n(t,e){var r=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),r.push.apply(r,i)}return r}function o(t,e,r){return(e=l(e))in t?Object.defineProperty(t,e,{value:r,enumerable:!0,configurable:!0,writable:!0}):t[e]=r,t}function a(t,e){for(var r=0;r<e.length;r++){var i=e[r];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,l(i.key),i)}}function l(t){var e=function(t,e){if("object"!=i(t)||!t)return t;var r=t[Symbol.toPrimitive];if(void 0!==r){var n=r.call(t,e||"default");if("object"!=i(n))return n;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==i(e)?e:e+""}r.r(e),r.d(e,{default:()=>u});const u=function(){return t=function t(e){var r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.element=e,this.options=function(t){for(var e=1;e<arguments.length;e++){var r=null!=arguments[e]?arguments[e]:{};e%2?n(Object(r),!0).forEach((function(e){o(t,e,r[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(r)):n(Object(r)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(r,e))}))}return t}({productName:"",productImage:null,initialRating:0,maxRating:5,allowHalf:!0,ratingColor:"warning",onSubmit:null},r),this.ratingElement=this.element.querySelector(".c-rating"),this.textareaElement=this.element.querySelector(".c-product-review__textarea"),this.submitButton=this.element.querySelector(".c-product-review__actions .c-btn"),this.formElement=this.element.querySelector(".c-product-review__form"),this.onSubmit=this.options.onSubmit,this.init()},e=[{key:"init",value:function(){this.formElement&&this.formElement.addEventListener("submit",this.handleSubmit.bind(this)),this.setupAccessibility()}},{key:"setupAccessibility",value:function(){this.ratingElement&&(this.ratingElement.setAttribute("role","radiogroup"),this.ratingElement.setAttribute("aria-label","Rating"),this.ratingElement.querySelectorAll(".c-rating__star").forEach((function(t,e){t.setAttribute("role","radio"),t.setAttribute("aria-label","".concat(e+1," star").concat(0===e?"":"s"))}))),this.textareaElement&&this.textareaElement.setAttribute("aria-required","false")}},{key:"handleSubmit",value:function(t){if(t.preventDefault(),this.ratingElement&&this.textareaElement){var e=parseFloat(this.ratingElement.getAttribute("data-value")||"0"),r=this.textareaElement.value;this.onSubmit&&e>0&&this.onSubmit(e,r),this.showSuccessState()}}},{key:"showSuccessState",value:function(){}},{key:"reset",value:function(){this.ratingElement&&(this.ratingElement.setAttribute("data-value","0"),this.ratingElement.querySelectorAll(".c-rating__star").forEach((function(t){t.classList.remove("c-rating__star--full","c-rating__star--half")}))),this.textareaElement&&(this.textareaElement.value="")}},{key:"destroy",value:function(){this.formElement&&this.formElement.removeEventListener("submit",this.handleSubmit.bind(this))}}],e&&a(t.prototype,e),r&&a(t,r),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,r}()}}]);
|
|
2
|
-
//# sourceMappingURL=13.atomix-0.1.4.react.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/13.atomix-0.1.4.react.js","mappings":"2pCAEA,QCCkC,WAoChC,O,EAtBA,SAAAA,EAAYC,GAAyC,IAAnBC,EAAYC,UAAAC,OAAA,QAAAC,IAAAF,UAAA,GAAAA,UAAA,GAAG,CAAC,G,4FAACG,CAAA,KAAAN,GACjDO,KAAKN,QAAUA,EACfM,KAAKL,Q,+VAAOM,CAAA,CACVC,YAAa,GACbC,aAAc,KACdC,cAAe,EACfC,UAAW,EACXC,WAAW,EACXC,YAAa,UACbC,SAAU,MACPb,GAGLK,KAAKS,cAAgBT,KAAKN,QAAQgB,cAAc,aAChDV,KAAKW,gBAAkBX,KAAKN,QAAQgB,cAAc,+BAClDV,KAAKY,aAAeZ,KAAKN,QAAQgB,cAAc,qCAC/CV,KAAKa,YAAcb,KAAKN,QAAQgB,cAAc,2BAC9CV,KAAKQ,SAAWR,KAAKL,QAAQa,SAE7BR,KAAKc,MACP,E,EAEA,EAAAC,IAAA,OAAAC,MAGA,WACMhB,KAAKa,aACPb,KAAKa,YAAYI,iBAAiB,SAAUjB,KAAKkB,aAAaC,KAAKnB,OAIrEA,KAAKoB,oBACP,GAEA,CAAAL,IAAA,qBAAAC,MAGA,WAEMhB,KAAKS,gBACPT,KAAKS,cAAcY,aAAa,OAAQ,cACxCrB,KAAKS,cAAcY,aAAa,aAAc,UAEhCrB,KAAKS,cAAca,iBAAiB,mBAC5CC,SAAQ,SAACC,EAAMC,GACnBD,EAAKH,aAAa,OAAQ,SAC1BG,EAAKH,aAAa,aAAc,GAAFK,OAAKD,EAAQ,EAAC,SAAAC,OAAkB,IAAVD,EAAc,GAAK,KACzE,KAGEzB,KAAKW,iBACPX,KAAKW,gBAAgBU,aAAa,gBAAiB,QAEvD,GAEA,CAAAN,IAAA,eAAAC,MAIA,SAAaW,GAGX,GAFAA,EAAEC,iBAEG5B,KAAKS,eAAkBT,KAAKW,gBAAjC,CAEA,IAAMkB,EAASC,WAAW9B,KAAKS,cAAcsB,aAAa,eAAiB,KACrEC,EAAWhC,KAAKW,gBAAwCK,MAE1DhB,KAAKQ,UAAYqB,EAAS,GAC5B7B,KAAKQ,SAASqB,EAAQG,GAIxBhC,KAAKiC,kBAVmD,CAW1D,GAEA,CAAAlB,IAAA,mBAAAC,MAGA,WAEE,GAGF,CAAAD,IAAA,QAAAC,MAGA,WACMhB,KAAKS,gBACPT,KAAKS,cAAcY,aAAa,aAAc,KAEhCrB,KAAKS,cAAca,iBAAiB,mBAC5CC,SAAQ,SAAAC,GACZA,EAAKU,UAAUC,OAAO,uBAAwB,uBAChD,KAGEnC,KAAKW,kBACNX,KAAKW,gBAAwCK,MAAQ,GAE1D,GAEA,CAAAD,IAAA,UAAAC,MAGA,WACMhB,KAAKa,aACPb,KAAKa,YAAYuB,oBAAoB,SAAUpC,KAAKkB,aAAaC,KAAKnB,MAI1E,I,4FAAC,CA5H+B,E","sources":["webpack://Atomix/./src/components/ProductReview/scripts/bundle.ts","webpack://Atomix/./src/components/ProductReview/scripts/componentInteractions.ts"],"sourcesContent":["import ProductReview from './componentInteractions';\n\nexport default ProductReview;\n","/**\n * Class for handling ProductReview component interactions\n */\nexport default class ProductReview {\n element: HTMLElement;\n options: any;\n ratingElement: HTMLElement | null;\n textareaElement: HTMLElement | null;\n submitButton: HTMLElement | null;\n formElement: HTMLFormElement | null;\n onSubmit: ((rating: number, comment: string) => void) | null;\n \n /**\n * Create a new ProductReview instance\n * @param element - The product review container element\n * @param options - Configuration options\n */\n constructor(element: HTMLElement, options: any = {}) {\n this.element = element;\n this.options = {\n productName: '',\n productImage: null,\n initialRating: 0,\n maxRating: 5,\n allowHalf: true,\n ratingColor: 'warning',\n onSubmit: null,\n ...options\n };\n \n this.ratingElement = this.element.querySelector('.c-rating');\n this.textareaElement = this.element.querySelector('.c-product-review__textarea');\n this.submitButton = this.element.querySelector('.c-product-review__actions .c-btn');\n this.formElement = this.element.querySelector('.c-product-review__form') as HTMLFormElement;\n this.onSubmit = this.options.onSubmit;\n \n this.init();\n }\n \n /**\n * Initialize the product review component\n */\n init() {\n if (this.formElement) {\n this.formElement.addEventListener('submit', this.handleSubmit.bind(this));\n }\n \n // Add any additional initialization logic here\n this.setupAccessibility();\n }\n \n /**\n * Set up accessibility features\n */\n setupAccessibility() {\n // Add ARIA attributes for better accessibility\n if (this.ratingElement) {\n this.ratingElement.setAttribute('role', 'radiogroup');\n this.ratingElement.setAttribute('aria-label', 'Rating');\n \n const stars = this.ratingElement.querySelectorAll('.c-rating__star');\n stars.forEach((star, index) => {\n star.setAttribute('role', 'radio');\n star.setAttribute('aria-label', `${index + 1} star${index === 0 ? '' : 's'}`);\n });\n }\n \n if (this.textareaElement) {\n this.textareaElement.setAttribute('aria-required', 'false');\n }\n }\n \n /**\n * Handle form submission\n * @param e - Submit event\n */\n handleSubmit(e: Event) {\n e.preventDefault();\n \n if (!this.ratingElement || !this.textareaElement) return;\n \n const rating = parseFloat(this.ratingElement.getAttribute('data-value') || '0');\n const comment = (this.textareaElement as HTMLTextAreaElement).value;\n \n if (this.onSubmit && rating > 0) {\n this.onSubmit(rating, comment);\n }\n \n // Show success state\n this.showSuccessState();\n }\n \n /**\n * Show the success state after submission\n */\n showSuccessState() {\n // This will be handled by React state in the component\n // But we could add additional logic here if needed\n }\n \n /**\n * Reset the form\n */\n reset() {\n if (this.ratingElement) {\n this.ratingElement.setAttribute('data-value', '0');\n \n const stars = this.ratingElement.querySelectorAll('.c-rating__star');\n stars.forEach(star => {\n star.classList.remove('c-rating__star--full', 'c-rating__star--half');\n });\n }\n \n if (this.textareaElement) {\n (this.textareaElement as HTMLTextAreaElement).value = '';\n }\n }\n \n /**\n * Clean up event listeners\n */\n destroy() {\n if (this.formElement) {\n this.formElement.removeEventListener('submit', this.handleSubmit.bind(this));\n }\n \n // Clean up any other event listeners\n }\n}\n"],"names":["ProductReview","element","options","arguments","length","undefined","_classCallCheck","this","_objectSpread","productName","productImage","initialRating","maxRating","allowHalf","ratingColor","onSubmit","ratingElement","querySelector","textareaElement","submitButton","formElement","init","key","value","addEventListener","handleSubmit","bind","setupAccessibility","setAttribute","querySelectorAll","forEach","star","index","concat","e","preventDefault","rating","parseFloat","getAttribute","comment","showSuccessState","classList","remove","removeEventListener"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_shohojdhara_atomix=self.webpackChunk_shohojdhara_atomix||[]).push([[646],{646:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a,initializeToggles:()=>u});var i=n(653);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,s(i.key),i)}}function s(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=o(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}var l=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.element=e,this.isOn=!1,this._initialize()},(e=[{key:"_initialize",value:function(){this._bindEvents(),this.element.classList.contains(i.DR.CLASSES.IS_ON)&&(this.isOn=!0)}},{key:"_bindEvents",value:function(){this.element.addEventListener("click",this._handleToggle.bind(this))}},{key:"_handleToggle",value:function(){this.isOn?this.turnOff():this.turnOn()}},{key:"turnOn",value:function(){this.element.classList.add(i.DR.CLASSES.IS_ON),this.isOn=!0,this.element.dispatchEvent(new CustomEvent("toggle:on",{bubbles:!0}))}},{key:"turnOff",value:function(){this.element.classList.remove(i.DR.CLASSES.IS_ON),this.isOn=!1,this.element.dispatchEvent(new CustomEvent("toggle:off",{bubbles:!0}))}},{key:"destroy",value:function(){this.element.removeEventListener("click",this._handleToggle)}}])&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function u(){var t=[],e=document.querySelectorAll(i.DR.SELECTORS.TOGGLE);return e.length?(e.forEach((function(e){try{var n=new l(e);t.push(n)}catch(t){}})),t):t}const a=l}}]);
|
|
2
|
-
//# sourceMappingURL=646.atomix-0.1.4.react.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/646.atomix-0.1.4.react.cjs.js","mappings":"i4BAWA,IAGMA,EAAM,WAcV,O,EANA,SAAAA,EAAYC,I,4FAAsBC,CAAA,KAAAF,GAChCG,KAAKF,QAAUA,EACfE,KAAKC,MAAO,EACZD,KAAKE,aACP,G,EAEA,EAAAC,IAAA,cAAAC,MAGA,WACEJ,KAAKK,cAEDL,KAAKF,QAAQQ,UAAUC,SAASC,EAAAA,GAAOC,QAAQC,SACjDV,KAAKC,MAAO,EAEhB,GAEA,CAAAE,IAAA,cAAAC,MAGA,WACEJ,KAAKF,QAAQa,iBAAiB,QAASX,KAAKY,cAAcC,KAAKb,MACjE,GAEA,CAAAG,IAAA,gBAAAC,MAGA,WACOJ,KAAKC,KAGRD,KAAKc,UAFLd,KAAKe,QAIT,GAEA,CAAAZ,IAAA,SAAAC,MAGA,WACEJ,KAAKF,QAAQQ,UAAUU,IAAIR,EAAAA,GAAOC,QAAQC,OAC1CV,KAAKC,MAAO,EAGZD,KAAKF,QAAQmB,cAAc,IAAIC,YAAY,YAAa,CACtDC,SAAS,IAEb,GAEA,CAAAhB,IAAA,UAAAC,MAGA,WACEJ,KAAKF,QAAQQ,UAAUc,OAAOZ,EAAAA,GAAOC,QAAQC,OAC7CV,KAAKC,MAAO,EAGZD,KAAKF,QAAQmB,cAAc,IAAIC,YAAY,aAAc,CACvDC,SAAS,IAEb,GAEA,CAAAhB,IAAA,UAAAC,MAGA,WACEJ,KAAKF,QAAQuB,oBAAoB,QAASrB,KAAKY,cACjD,M,yFAAC,CA1ES,GAiFL,SAASU,IACd,IAAMC,EAAoC,GACpCC,EAAiBC,SAASC,iBAA8BlB,EAAAA,GAAOmB,UAAUnB,QAE/E,OAAKgB,EAAeI,QAEpBJ,EAAeK,SAAQ,SAAC/B,GACtB,IACE,IAAMgC,EAAW,IAAIjC,EAAOC,GAC5ByB,EAAgBQ,KAAKD,EACvB,CAAE,MAAOE,GAET,CACF,IAEOT,GAX4BA,CAYrC,CAEA,S","sources":["webpack://@shohojdhara/atomix/./src/components/Toggle/scripts/index.ts"],"sourcesContent":["import { TOGGLE } from '../../../lib/constants/components';\n\n/**\n * Interface for Toggle instance\n */\ninterface ToggleInstance {\n turnOn: () => void;\n turnOff: () => void;\n destroy: () => void;\n}\n\n/**\n * Class representing a Toggle component\n */\nclass Toggle implements ToggleInstance {\n private element: HTMLElement;\n private isOn: boolean;\n\n /**\n * Creates an instance of Toggle\n * @param element - The toggle container element\n */\n constructor(element: HTMLElement) {\n this.element = element;\n this.isOn = false;\n this._initialize();\n }\n\n /**\n * Initialize the toggle component\n */\n private _initialize(): void {\n this._bindEvents();\n // Check if toggle should be initially on\n if (this.element.classList.contains(TOGGLE.CLASSES.IS_ON)) {\n this.isOn = true;\n }\n }\n\n /**\n * Bind event listeners\n */\n private _bindEvents(): void {\n this.element.addEventListener('click', this._handleToggle.bind(this));\n }\n\n /**\n * Handle toggle click\n */\n private _handleToggle(): void {\n if (!this.isOn) {\n this.turnOn();\n } else {\n this.turnOff();\n }\n }\n\n /**\n * Turn on the toggle\n */\n public turnOn(): void {\n this.element.classList.add(TOGGLE.CLASSES.IS_ON);\n this.isOn = true;\n \n // Dispatch custom event\n this.element.dispatchEvent(new CustomEvent('toggle:on', { \n bubbles: true \n }));\n }\n\n /**\n * Turn off the toggle\n */\n public turnOff(): void {\n this.element.classList.remove(TOGGLE.CLASSES.IS_ON);\n this.isOn = false;\n \n // Dispatch custom event\n this.element.dispatchEvent(new CustomEvent('toggle:off', { \n bubbles: true \n }));\n }\n\n /**\n * Clean up event listeners\n */\n public destroy(): void {\n this.element.removeEventListener('click', this._handleToggle);\n }\n}\n\n/**\n * Initialize all toggles in the document\n * @returns Array of toggle instances\n */\nexport function initializeToggles(): ToggleInstance[] {\n const toggleInstances: ToggleInstance[] = [];\n const toggleElements = document.querySelectorAll<HTMLElement>(TOGGLE.SELECTORS.TOGGLE);\n\n if (!toggleElements.length) return toggleInstances;\n\n toggleElements.forEach((element) => {\n try {\n const instance = new Toggle(element);\n toggleInstances.push(instance);\n } catch (error) {\n console.error('Error initializing toggle:', error);\n }\n });\n\n return toggleInstances;\n}\n\nexport default Toggle; "],"names":["Toggle","element","_classCallCheck","this","isOn","_initialize","key","value","_bindEvents","classList","contains","TOGGLE","CLASSES","IS_ON","addEventListener","_handleToggle","bind","turnOff","turnOn","add","dispatchEvent","CustomEvent","bubbles","remove","removeEventListener","initializeToggles","toggleInstances","toggleElements","document","querySelectorAll","SELECTORS","length","forEach","instance","push","error"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=646;export const __webpack_ids__=[646];export const __webpack_modules__={646:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a,initializeToggles:()=>u});var i=n(653);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,s(i.key),i)}}function s(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=o(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}var l=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.element=e,this.isOn=!1,this._initialize()},(e=[{key:"_initialize",value:function(){this._bindEvents(),this.element.classList.contains(i.DR.CLASSES.IS_ON)&&(this.isOn=!0)}},{key:"_bindEvents",value:function(){this.element.addEventListener("click",this._handleToggle.bind(this))}},{key:"_handleToggle",value:function(){this.isOn?this.turnOff():this.turnOn()}},{key:"turnOn",value:function(){this.element.classList.add(i.DR.CLASSES.IS_ON),this.isOn=!0,this.element.dispatchEvent(new CustomEvent("toggle:on",{bubbles:!0}))}},{key:"turnOff",value:function(){this.element.classList.remove(i.DR.CLASSES.IS_ON),this.isOn=!1,this.element.dispatchEvent(new CustomEvent("toggle:off",{bubbles:!0}))}},{key:"destroy",value:function(){this.element.removeEventListener("click",this._handleToggle)}}])&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function u(){var t=[],e=document.querySelectorAll(i.DR.SELECTORS.TOGGLE);return e.length?(e.forEach((function(e){try{var n=new l(e);t.push(n)}catch(t){}})),t):t}const a=l}};
|
|
2
|
-
//# sourceMappingURL=646.atomix-0.1.4.react.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/646.atomix-0.1.4.react.esm.js","mappings":"43BAWA,IAGMA,EAAM,WAcV,O,EANA,SAAAA,EAAYC,I,4FAAsBC,CAAA,KAAAF,GAChCG,KAAKF,QAAUA,EACfE,KAAKC,MAAO,EACZD,KAAKE,aACP,G,EAEA,EAAAC,IAAA,cAAAC,MAGA,WACEJ,KAAKK,cAEDL,KAAKF,QAAQQ,UAAUC,SAASC,EAAAA,GAAOC,QAAQC,SACjDV,KAAKC,MAAO,EAEhB,GAEA,CAAAE,IAAA,cAAAC,MAGA,WACEJ,KAAKF,QAAQa,iBAAiB,QAASX,KAAKY,cAAcC,KAAKb,MACjE,GAEA,CAAAG,IAAA,gBAAAC,MAGA,WACOJ,KAAKC,KAGRD,KAAKc,UAFLd,KAAKe,QAIT,GAEA,CAAAZ,IAAA,SAAAC,MAGA,WACEJ,KAAKF,QAAQQ,UAAUU,IAAIR,EAAAA,GAAOC,QAAQC,OAC1CV,KAAKC,MAAO,EAGZD,KAAKF,QAAQmB,cAAc,IAAIC,YAAY,YAAa,CACtDC,SAAS,IAEb,GAEA,CAAAhB,IAAA,UAAAC,MAGA,WACEJ,KAAKF,QAAQQ,UAAUc,OAAOZ,EAAAA,GAAOC,QAAQC,OAC7CV,KAAKC,MAAO,EAGZD,KAAKF,QAAQmB,cAAc,IAAIC,YAAY,aAAc,CACvDC,SAAS,IAEb,GAEA,CAAAhB,IAAA,UAAAC,MAGA,WACEJ,KAAKF,QAAQuB,oBAAoB,QAASrB,KAAKY,cACjD,M,yFAAC,CA1ES,GAiFL,SAASU,IACd,IAAMC,EAAoC,GACpCC,EAAiBC,SAASC,iBAA8BlB,EAAAA,GAAOmB,UAAUnB,QAE/E,OAAKgB,EAAeI,QAEpBJ,EAAeK,SAAQ,SAAC/B,GACtB,IACE,IAAMgC,EAAW,IAAIjC,EAAOC,GAC5ByB,EAAgBQ,KAAKD,EACvB,CAAE,MAAOE,GAET,CACF,IAEOT,GAX4BA,CAYrC,CAEA,S","sources":["webpack://@shohojdhara/atomix/./src/components/Toggle/scripts/index.ts"],"sourcesContent":["import { TOGGLE } from '../../../lib/constants/components';\n\n/**\n * Interface for Toggle instance\n */\ninterface ToggleInstance {\n turnOn: () => void;\n turnOff: () => void;\n destroy: () => void;\n}\n\n/**\n * Class representing a Toggle component\n */\nclass Toggle implements ToggleInstance {\n private element: HTMLElement;\n private isOn: boolean;\n\n /**\n * Creates an instance of Toggle\n * @param element - The toggle container element\n */\n constructor(element: HTMLElement) {\n this.element = element;\n this.isOn = false;\n this._initialize();\n }\n\n /**\n * Initialize the toggle component\n */\n private _initialize(): void {\n this._bindEvents();\n // Check if toggle should be initially on\n if (this.element.classList.contains(TOGGLE.CLASSES.IS_ON)) {\n this.isOn = true;\n }\n }\n\n /**\n * Bind event listeners\n */\n private _bindEvents(): void {\n this.element.addEventListener('click', this._handleToggle.bind(this));\n }\n\n /**\n * Handle toggle click\n */\n private _handleToggle(): void {\n if (!this.isOn) {\n this.turnOn();\n } else {\n this.turnOff();\n }\n }\n\n /**\n * Turn on the toggle\n */\n public turnOn(): void {\n this.element.classList.add(TOGGLE.CLASSES.IS_ON);\n this.isOn = true;\n \n // Dispatch custom event\n this.element.dispatchEvent(new CustomEvent('toggle:on', { \n bubbles: true \n }));\n }\n\n /**\n * Turn off the toggle\n */\n public turnOff(): void {\n this.element.classList.remove(TOGGLE.CLASSES.IS_ON);\n this.isOn = false;\n \n // Dispatch custom event\n this.element.dispatchEvent(new CustomEvent('toggle:off', { \n bubbles: true \n }));\n }\n\n /**\n * Clean up event listeners\n */\n public destroy(): void {\n this.element.removeEventListener('click', this._handleToggle);\n }\n}\n\n/**\n * Initialize all toggles in the document\n * @returns Array of toggle instances\n */\nexport function initializeToggles(): ToggleInstance[] {\n const toggleInstances: ToggleInstance[] = [];\n const toggleElements = document.querySelectorAll<HTMLElement>(TOGGLE.SELECTORS.TOGGLE);\n\n if (!toggleElements.length) return toggleInstances;\n\n toggleElements.forEach((element) => {\n try {\n const instance = new Toggle(element);\n toggleInstances.push(instance);\n } catch (error) {\n console.error('Error initializing toggle:', error);\n }\n });\n\n return toggleInstances;\n}\n\nexport default Toggle; "],"names":["Toggle","element","_classCallCheck","this","isOn","_initialize","key","value","_bindEvents","classList","contains","TOGGLE","CLASSES","IS_ON","addEventListener","_handleToggle","bind","turnOff","turnOn","add","dispatchEvent","CustomEvent","bubbles","remove","removeEventListener","initializeToggles","toggleInstances","toggleElements","document","querySelectorAll","SELECTORS","length","forEach","instance","push","error"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(this.webpackChunkAtomix=this.webpackChunkAtomix||[]).push([[646],{646:(t,e,n)=>{n.r(e),n.d(e,{default:()=>a,initializeToggles:()=>u});var i=n(653);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,s(i.key),i)}}function s(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=o(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}var l=function(){return t=function t(e){!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.element=e,this.isOn=!1,this._initialize()},(e=[{key:"_initialize",value:function(){this._bindEvents(),this.element.classList.contains(i.DR.CLASSES.IS_ON)&&(this.isOn=!0)}},{key:"_bindEvents",value:function(){this.element.addEventListener("click",this._handleToggle.bind(this))}},{key:"_handleToggle",value:function(){this.isOn?this.turnOff():this.turnOn()}},{key:"turnOn",value:function(){this.element.classList.add(i.DR.CLASSES.IS_ON),this.isOn=!0,this.element.dispatchEvent(new CustomEvent("toggle:on",{bubbles:!0}))}},{key:"turnOff",value:function(){this.element.classList.remove(i.DR.CLASSES.IS_ON),this.isOn=!1,this.element.dispatchEvent(new CustomEvent("toggle:off",{bubbles:!0}))}},{key:"destroy",value:function(){this.element.removeEventListener("click",this._handleToggle)}}])&&r(t.prototype,e),n&&r(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function u(){var t=[],e=document.querySelectorAll(i.DR.SELECTORS.TOGGLE);return e.length?(e.forEach((function(e){try{var n=new l(e);t.push(n)}catch(t){}})),t):t}const a=l}}]);
|
|
2
|
-
//# sourceMappingURL=646.atomix-0.1.4.react.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/646.atomix-0.1.4.react.js","mappings":"u2BAWA,IAGMA,EAAM,WAcV,O,EANA,SAAAA,EAAYC,I,4FAAsBC,CAAA,KAAAF,GAChCG,KAAKF,QAAUA,EACfE,KAAKC,MAAO,EACZD,KAAKE,aACP,G,EAEA,EAAAC,IAAA,cAAAC,MAGA,WACEJ,KAAKK,cAEDL,KAAKF,QAAQQ,UAAUC,SAASC,EAAAA,GAAOC,QAAQC,SACjDV,KAAKC,MAAO,EAEhB,GAEA,CAAAE,IAAA,cAAAC,MAGA,WACEJ,KAAKF,QAAQa,iBAAiB,QAASX,KAAKY,cAAcC,KAAKb,MACjE,GAEA,CAAAG,IAAA,gBAAAC,MAGA,WACOJ,KAAKC,KAGRD,KAAKc,UAFLd,KAAKe,QAIT,GAEA,CAAAZ,IAAA,SAAAC,MAGA,WACEJ,KAAKF,QAAQQ,UAAUU,IAAIR,EAAAA,GAAOC,QAAQC,OAC1CV,KAAKC,MAAO,EAGZD,KAAKF,QAAQmB,cAAc,IAAIC,YAAY,YAAa,CACtDC,SAAS,IAEb,GAEA,CAAAhB,IAAA,UAAAC,MAGA,WACEJ,KAAKF,QAAQQ,UAAUc,OAAOZ,EAAAA,GAAOC,QAAQC,OAC7CV,KAAKC,MAAO,EAGZD,KAAKF,QAAQmB,cAAc,IAAIC,YAAY,aAAc,CACvDC,SAAS,IAEb,GAEA,CAAAhB,IAAA,UAAAC,MAGA,WACEJ,KAAKF,QAAQuB,oBAAoB,QAASrB,KAAKY,cACjD,M,yFAAC,CA1ES,GAiFL,SAASU,IACd,IAAMC,EAAoC,GACpCC,EAAiBC,SAASC,iBAA8BlB,EAAAA,GAAOmB,UAAUnB,QAE/E,OAAKgB,EAAeI,QAEpBJ,EAAeK,SAAQ,SAAC/B,GACtB,IACE,IAAMgC,EAAW,IAAIjC,EAAOC,GAC5ByB,EAAgBQ,KAAKD,EACvB,CAAE,MAAOE,GAET,CACF,IAEOT,GAX4BA,CAYrC,CAEA,S","sources":["webpack://Atomix/./src/components/Toggle/scripts/index.ts"],"sourcesContent":["import { TOGGLE } from '../../../lib/constants/components';\n\n/**\n * Interface for Toggle instance\n */\ninterface ToggleInstance {\n turnOn: () => void;\n turnOff: () => void;\n destroy: () => void;\n}\n\n/**\n * Class representing a Toggle component\n */\nclass Toggle implements ToggleInstance {\n private element: HTMLElement;\n private isOn: boolean;\n\n /**\n * Creates an instance of Toggle\n * @param element - The toggle container element\n */\n constructor(element: HTMLElement) {\n this.element = element;\n this.isOn = false;\n this._initialize();\n }\n\n /**\n * Initialize the toggle component\n */\n private _initialize(): void {\n this._bindEvents();\n // Check if toggle should be initially on\n if (this.element.classList.contains(TOGGLE.CLASSES.IS_ON)) {\n this.isOn = true;\n }\n }\n\n /**\n * Bind event listeners\n */\n private _bindEvents(): void {\n this.element.addEventListener('click', this._handleToggle.bind(this));\n }\n\n /**\n * Handle toggle click\n */\n private _handleToggle(): void {\n if (!this.isOn) {\n this.turnOn();\n } else {\n this.turnOff();\n }\n }\n\n /**\n * Turn on the toggle\n */\n public turnOn(): void {\n this.element.classList.add(TOGGLE.CLASSES.IS_ON);\n this.isOn = true;\n \n // Dispatch custom event\n this.element.dispatchEvent(new CustomEvent('toggle:on', { \n bubbles: true \n }));\n }\n\n /**\n * Turn off the toggle\n */\n public turnOff(): void {\n this.element.classList.remove(TOGGLE.CLASSES.IS_ON);\n this.isOn = false;\n \n // Dispatch custom event\n this.element.dispatchEvent(new CustomEvent('toggle:off', { \n bubbles: true \n }));\n }\n\n /**\n * Clean up event listeners\n */\n public destroy(): void {\n this.element.removeEventListener('click', this._handleToggle);\n }\n}\n\n/**\n * Initialize all toggles in the document\n * @returns Array of toggle instances\n */\nexport function initializeToggles(): ToggleInstance[] {\n const toggleInstances: ToggleInstance[] = [];\n const toggleElements = document.querySelectorAll<HTMLElement>(TOGGLE.SELECTORS.TOGGLE);\n\n if (!toggleElements.length) return toggleInstances;\n\n toggleElements.forEach((element) => {\n try {\n const instance = new Toggle(element);\n toggleInstances.push(instance);\n } catch (error) {\n console.error('Error initializing toggle:', error);\n }\n });\n\n return toggleInstances;\n}\n\nexport default Toggle; "],"names":["Toggle","element","_classCallCheck","this","isOn","_initialize","key","value","_bindEvents","classList","contains","TOGGLE","CLASSES","IS_ON","addEventListener","_handleToggle","bind","turnOff","turnOn","add","dispatchEvent","CustomEvent","bubbles","remove","removeEventListener","initializeToggles","toggleInstances","toggleElements","document","querySelectorAll","SELECTORS","length","forEach","instance","push","error"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(self.webpackChunk_shohojdhara_atomix=self.webpackChunk_shohojdhara_atomix||[]).push([[979],{979:(t,e,n)=>{n.r(e),n.d(e,{default:()=>f,initializeTabs:()=>v});var i=n(653);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){a(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function a(t,e,n){return(e=c(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,c(i.key),i)}}function c(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=o(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}var u={navItems:i.wn.SELECTORS.NAV_ITEMS,navBtn:i.wn.SELECTORS.NAV_BTN,panels:i.wn.SELECTORS.PANELS,panelBodys:i.wn.SELECTORS.PANEL_BODIES,activeClass:i.wn.CLASSES.ACTIVE,activeIndex:i.wn.DEFAULTS.ACTIVE_INDEX},h=function(){return t=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.selector=e||i.wn.SELECTORS.TAB,this.$element="string"==typeof e?document.querySelector(e):e,this.options=s(s({},u),n),this.$navItems=null,this.$panels=null,this.$panelBodys=null,this._initialize()},(e=[{key:"_initialize",value:function(){this.$element&&(this._initializeElements(),this._showTab(this.options.activeIndex),this._bindEvents())}},{key:"_initializeElements",value:function(){this.$element&&(this.$navItems=this.$element.querySelectorAll(this.options.navItems),this.$panels=this.$element.querySelectorAll(this.options.panels),this.$panelBodys=this.$element.querySelectorAll(this.options.panelBodys))}},{key:"_bindEvents",value:function(){var t=this;this.$navItems&&this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.addEventListener("click",(function(){return t._handleTabClick(n)}))}))}},{key:"_handleTabClick",value:function(t){var e=t.dataset.tabindex;void 0!==e&&(this._hideAllTabs(),this._showTab(e))}},{key:"_hideAllTabs",value:function(){var t=this;this.$panels&&this.$navItems&&(this.$panels.forEach((function(e){e.style.height="0px",e.classList.remove(t.options.activeClass),e.style.opacity="0"})),this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.classList.remove(t.options.activeClass)})))}},{key:"_showTab",value:function(t){var e=this;this.$panels&&this.$navItems&&this.$panelBodys&&(this.$panels.forEach((function(n,i){if(n.dataset.tabindex==t.toString()){var o,r=null===(o=e.$panelBodys)||void 0===o?void 0:o[i];r&&(n.classList.add(e.options.activeClass),requestAnimationFrame((function(){n.style.height="".concat(r.clientHeight,"px"),n.style.opacity="1"})))}})),this.$navItems.forEach((function(n,i){var o=n.querySelector(e.options.navBtn);o&&o.dataset.tabindex==t.toString()&&o.classList.add(e.options.activeClass)})))}},{key:"destroy",value:function(){var t=this;this.$element&&this.$navItems&&this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.removeEventListener("click",(function(){return t._handleTabClick(n)}))}))}}])&&l(t.prototype,e),n&&l(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function v(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i.wn.SELECTORS.TAB,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],o=document.querySelectorAll(t);return o.length?(o.forEach((function(t){try{var i=new h(t,e);n.push(i)}catch(t){}})),n):n}const f=h}}]);
|
|
2
|
-
//# sourceMappingURL=979.atomix-0.1.4.react.cjs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/979.atomix-0.1.4.react.cjs.js","mappings":"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","sources":["webpack://@shohojdhara/atomix/./src/components/Tab/scripts/index.ts"],"sourcesContent":["import { TAB } from '../../../lib/constants/components';\n\n/**\n * Interface for Tab options\n */\ninterface TabOptions {\n navItems: string;\n navBtn: string;\n panels: string;\n panelBodys: string;\n activeClass: string;\n activeIndex: number;\n [key: string]: any;\n}\n\n/**\n * Interface for Tab instance\n */\ninterface TabInstance {\n destroy: () => void;\n}\n\n/**\n * Default options for the tab component\n */\nconst DEFAULT_OPTIONS = {\n navItems: TAB.SELECTORS.NAV_ITEMS,\n navBtn: TAB.SELECTORS.NAV_BTN,\n panels: TAB.SELECTORS.PANELS,\n panelBodys: TAB.SELECTORS.PANEL_BODIES,\n activeClass: TAB.CLASSES.ACTIVE,\n activeIndex: TAB.DEFAULTS.ACTIVE_INDEX\n};\n\n/**\n * Class representing a Tab component\n */\nclass Tab implements TabInstance {\n private selector: string | Element;\n private $element: HTMLElement | null;\n private options: TabOptions;\n private $navItems: NodeListOf<HTMLElement> | null;\n private $panels: NodeListOf<HTMLElement> | null;\n private $panelBodys: NodeListOf<HTMLElement> | null;\n\n /**\n * Creates an instance of Tab\n * @param selector - CSS selector string or DOM Element\n * @param options - Custom options to override defaults\n */\n constructor(selector: string | Element, options = {}) {\n this.selector = selector || TAB.SELECTORS.TAB;\n this.$element =\n typeof selector === 'string'\n ? document.querySelector<HTMLElement>(selector)\n : selector as HTMLElement;\n this.options = { ...DEFAULT_OPTIONS, ...options } as TabOptions;\n this.$navItems = null;\n this.$panels = null;\n this.$panelBodys = null;\n this._initialize();\n }\n\n /**\n * Initialize the tab component\n */\n private _initialize(): void {\n if (!this.$element) return;\n\n this._initializeElements();\n this._showTab(this.options.activeIndex);\n this._bindEvents();\n }\n\n /**\n * Initialize DOM elements\n */\n private _initializeElements(): void {\n if (!this.$element) return;\n \n this.$navItems = this.$element.querySelectorAll<HTMLElement>(this.options.navItems);\n this.$panels = this.$element.querySelectorAll<HTMLElement>(this.options.panels);\n this.$panelBodys = this.$element.querySelectorAll<HTMLElement>(this.options.panelBodys);\n }\n\n /**\n * Bind event listeners\n */\n private _bindEvents(): void {\n if (!this.$navItems) return;\n \n this.$navItems.forEach((item) => {\n const btn = item.querySelector<HTMLElement>(this.options.navBtn);\n if (btn) {\n btn.addEventListener('click', () => this._handleTabClick(btn));\n }\n });\n }\n\n /**\n * Handle tab click event\n * @param btn - The clicked tab button\n */\n private _handleTabClick(btn: HTMLElement): void {\n const tabIndex = btn.dataset.tabindex;\n if (tabIndex === undefined) return;\n \n this._hideAllTabs();\n this._showTab(tabIndex);\n }\n\n /**\n * Hide all tabs\n */\n private _hideAllTabs(): void {\n if (!this.$panels || !this.$navItems) return;\n \n this.$panels.forEach((panel) => {\n panel.style.height = '0px';\n panel.classList.remove(this.options.activeClass);\n panel.style.opacity = '0';\n });\n\n this.$navItems.forEach((item) => {\n const btn = item.querySelector<HTMLElement>(this.options.navBtn);\n if (btn) {\n btn.classList.remove(this.options.activeClass);\n }\n });\n }\n\n /**\n * Show tab at specified index\n * @param index - The index of tab to show\n */\n private _showTab(index: number | string): void {\n if (!this.$panels || !this.$navItems || !this.$panelBodys) return;\n \n this.$panels.forEach((panel, pIndex) => {\n if (panel.dataset.tabindex == index.toString()) {\n const panelBody = this.$panelBodys?.[pIndex];\n if (panelBody) {\n panel.classList.add(this.options.activeClass);\n requestAnimationFrame(() => {\n panel.style.height = `${panelBody.clientHeight}px`;\n panel.style.opacity = '1';\n });\n }\n }\n });\n\n this.$navItems.forEach((navItem, nIndex) => {\n const btn = navItem.querySelector<HTMLElement>(this.options.navBtn);\n if (btn && btn.dataset.tabindex == index.toString()) {\n btn.classList.add(this.options.activeClass);\n }\n });\n }\n\n /**\n * Clean up event listeners\n */\n public destroy(): void {\n if (!this.$element || !this.$navItems) return;\n\n this.$navItems.forEach((item) => {\n const btn = item.querySelector<HTMLElement>(this.options.navBtn);\n if (btn) {\n // Need to recreate the bound function to remove it correctly\n btn.removeEventListener('click', () => this._handleTabClick(btn));\n }\n });\n }\n}\n\n/**\n * Initialize all tabs in the document\n * @param {string|Element} selector - CSS selector string or DOM Element\n * @param {Object} options - Custom options to override defaults\n * @returns {TabInstance[]} Array of Tab instances\n */\nexport function initializeTabs(selector = TAB.SELECTORS.TAB, options = {}): TabInstance[] {\n const tabInstances: TabInstance[] = [];\n const tabElements = document.querySelectorAll<HTMLElement>(selector);\n\n if (!tabElements.length) return tabInstances;\n\n tabElements.forEach((element) => {\n try {\n const instance = new Tab(element, options);\n tabInstances.push(instance);\n } catch (error) {\n console.error('Error initializing tab:', error);\n }\n });\n\n return tabInstances;\n}\n\nexport default Tab; "],"names":["DEFAULT_OPTIONS","navItems","TAB","SELECTORS","NAV_ITEMS","navBtn","NAV_BTN","panels","PANELS","panelBodys","PANEL_BODIES","activeClass","CLASSES","ACTIVE","activeIndex","DEFAULTS","ACTIVE_INDEX","Tab","selector","options","arguments","length","undefined","_classCallCheck","this","$element","document","querySelector","_objectSpread","$navItems","$panels","$panelBodys","_initialize","key","value","_initializeElements","_showTab","_bindEvents","querySelectorAll","_this","forEach","item","btn","addEventListener","_handleTabClick","tabIndex","dataset","tabindex","_hideAllTabs","_this2","panel","style","height","classList","remove","opacity","index","_this3","pIndex","toString","_this3$$panelBodys","panelBody","add","requestAnimationFrame","concat","clientHeight","navItem","nIndex","_this4","removeEventListener","initializeTabs","tabInstances","tabElements","element","instance","push","error"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
export const __webpack_id__=979;export const __webpack_ids__=[979];export const __webpack_modules__={979:(t,e,n)=>{n.r(e),n.d(e,{default:()=>p,initializeTabs:()=>v});var i=n(653);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){a(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function a(t,e,n){return(e=c(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,c(i.key),i)}}function c(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=o(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}var u={navItems:i.wn.SELECTORS.NAV_ITEMS,navBtn:i.wn.SELECTORS.NAV_BTN,panels:i.wn.SELECTORS.PANELS,panelBodys:i.wn.SELECTORS.PANEL_BODIES,activeClass:i.wn.CLASSES.ACTIVE,activeIndex:i.wn.DEFAULTS.ACTIVE_INDEX},h=function(){return t=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.selector=e||i.wn.SELECTORS.TAB,this.$element="string"==typeof e?document.querySelector(e):e,this.options=s(s({},u),n),this.$navItems=null,this.$panels=null,this.$panelBodys=null,this._initialize()},(e=[{key:"_initialize",value:function(){this.$element&&(this._initializeElements(),this._showTab(this.options.activeIndex),this._bindEvents())}},{key:"_initializeElements",value:function(){this.$element&&(this.$navItems=this.$element.querySelectorAll(this.options.navItems),this.$panels=this.$element.querySelectorAll(this.options.panels),this.$panelBodys=this.$element.querySelectorAll(this.options.panelBodys))}},{key:"_bindEvents",value:function(){var t=this;this.$navItems&&this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.addEventListener("click",(function(){return t._handleTabClick(n)}))}))}},{key:"_handleTabClick",value:function(t){var e=t.dataset.tabindex;void 0!==e&&(this._hideAllTabs(),this._showTab(e))}},{key:"_hideAllTabs",value:function(){var t=this;this.$panels&&this.$navItems&&(this.$panels.forEach((function(e){e.style.height="0px",e.classList.remove(t.options.activeClass),e.style.opacity="0"})),this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.classList.remove(t.options.activeClass)})))}},{key:"_showTab",value:function(t){var e=this;this.$panels&&this.$navItems&&this.$panelBodys&&(this.$panels.forEach((function(n,i){if(n.dataset.tabindex==t.toString()){var o,r=null===(o=e.$panelBodys)||void 0===o?void 0:o[i];r&&(n.classList.add(e.options.activeClass),requestAnimationFrame((function(){n.style.height="".concat(r.clientHeight,"px"),n.style.opacity="1"})))}})),this.$navItems.forEach((function(n,i){var o=n.querySelector(e.options.navBtn);o&&o.dataset.tabindex==t.toString()&&o.classList.add(e.options.activeClass)})))}},{key:"destroy",value:function(){var t=this;this.$element&&this.$navItems&&this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.removeEventListener("click",(function(){return t._handleTabClick(n)}))}))}}])&&l(t.prototype,e),n&&l(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function v(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i.wn.SELECTORS.TAB,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],o=document.querySelectorAll(t);return o.length?(o.forEach((function(t){try{var i=new h(t,e);n.push(i)}catch(t){}})),n):n}const p=h}};
|
|
2
|
-
//# sourceMappingURL=979.atomix-0.1.4.react.esm.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"js/979.atomix-0.1.4.react.esm.js","mappings":"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","sources":["webpack://@shohojdhara/atomix/./src/components/Tab/scripts/index.ts"],"sourcesContent":["import { TAB } from '../../../lib/constants/components';\n\n/**\n * Interface for Tab options\n */\ninterface TabOptions {\n navItems: string;\n navBtn: string;\n panels: string;\n panelBodys: string;\n activeClass: string;\n activeIndex: number;\n [key: string]: any;\n}\n\n/**\n * Interface for Tab instance\n */\ninterface TabInstance {\n destroy: () => void;\n}\n\n/**\n * Default options for the tab component\n */\nconst DEFAULT_OPTIONS = {\n navItems: TAB.SELECTORS.NAV_ITEMS,\n navBtn: TAB.SELECTORS.NAV_BTN,\n panels: TAB.SELECTORS.PANELS,\n panelBodys: TAB.SELECTORS.PANEL_BODIES,\n activeClass: TAB.CLASSES.ACTIVE,\n activeIndex: TAB.DEFAULTS.ACTIVE_INDEX\n};\n\n/**\n * Class representing a Tab component\n */\nclass Tab implements TabInstance {\n private selector: string | Element;\n private $element: HTMLElement | null;\n private options: TabOptions;\n private $navItems: NodeListOf<HTMLElement> | null;\n private $panels: NodeListOf<HTMLElement> | null;\n private $panelBodys: NodeListOf<HTMLElement> | null;\n\n /**\n * Creates an instance of Tab\n * @param selector - CSS selector string or DOM Element\n * @param options - Custom options to override defaults\n */\n constructor(selector: string | Element, options = {}) {\n this.selector = selector || TAB.SELECTORS.TAB;\n this.$element =\n typeof selector === 'string'\n ? document.querySelector<HTMLElement>(selector)\n : selector as HTMLElement;\n this.options = { ...DEFAULT_OPTIONS, ...options } as TabOptions;\n this.$navItems = null;\n this.$panels = null;\n this.$panelBodys = null;\n this._initialize();\n }\n\n /**\n * Initialize the tab component\n */\n private _initialize(): void {\n if (!this.$element) return;\n\n this._initializeElements();\n this._showTab(this.options.activeIndex);\n this._bindEvents();\n }\n\n /**\n * Initialize DOM elements\n */\n private _initializeElements(): void {\n if (!this.$element) return;\n \n this.$navItems = this.$element.querySelectorAll<HTMLElement>(this.options.navItems);\n this.$panels = this.$element.querySelectorAll<HTMLElement>(this.options.panels);\n this.$panelBodys = this.$element.querySelectorAll<HTMLElement>(this.options.panelBodys);\n }\n\n /**\n * Bind event listeners\n */\n private _bindEvents(): void {\n if (!this.$navItems) return;\n \n this.$navItems.forEach((item) => {\n const btn = item.querySelector<HTMLElement>(this.options.navBtn);\n if (btn) {\n btn.addEventListener('click', () => this._handleTabClick(btn));\n }\n });\n }\n\n /**\n * Handle tab click event\n * @param btn - The clicked tab button\n */\n private _handleTabClick(btn: HTMLElement): void {\n const tabIndex = btn.dataset.tabindex;\n if (tabIndex === undefined) return;\n \n this._hideAllTabs();\n this._showTab(tabIndex);\n }\n\n /**\n * Hide all tabs\n */\n private _hideAllTabs(): void {\n if (!this.$panels || !this.$navItems) return;\n \n this.$panels.forEach((panel) => {\n panel.style.height = '0px';\n panel.classList.remove(this.options.activeClass);\n panel.style.opacity = '0';\n });\n\n this.$navItems.forEach((item) => {\n const btn = item.querySelector<HTMLElement>(this.options.navBtn);\n if (btn) {\n btn.classList.remove(this.options.activeClass);\n }\n });\n }\n\n /**\n * Show tab at specified index\n * @param index - The index of tab to show\n */\n private _showTab(index: number | string): void {\n if (!this.$panels || !this.$navItems || !this.$panelBodys) return;\n \n this.$panels.forEach((panel, pIndex) => {\n if (panel.dataset.tabindex == index.toString()) {\n const panelBody = this.$panelBodys?.[pIndex];\n if (panelBody) {\n panel.classList.add(this.options.activeClass);\n requestAnimationFrame(() => {\n panel.style.height = `${panelBody.clientHeight}px`;\n panel.style.opacity = '1';\n });\n }\n }\n });\n\n this.$navItems.forEach((navItem, nIndex) => {\n const btn = navItem.querySelector<HTMLElement>(this.options.navBtn);\n if (btn && btn.dataset.tabindex == index.toString()) {\n btn.classList.add(this.options.activeClass);\n }\n });\n }\n\n /**\n * Clean up event listeners\n */\n public destroy(): void {\n if (!this.$element || !this.$navItems) return;\n\n this.$navItems.forEach((item) => {\n const btn = item.querySelector<HTMLElement>(this.options.navBtn);\n if (btn) {\n // Need to recreate the bound function to remove it correctly\n btn.removeEventListener('click', () => this._handleTabClick(btn));\n }\n });\n }\n}\n\n/**\n * Initialize all tabs in the document\n * @param {string|Element} selector - CSS selector string or DOM Element\n * @param {Object} options - Custom options to override defaults\n * @returns {TabInstance[]} Array of Tab instances\n */\nexport function initializeTabs(selector = TAB.SELECTORS.TAB, options = {}): TabInstance[] {\n const tabInstances: TabInstance[] = [];\n const tabElements = document.querySelectorAll<HTMLElement>(selector);\n\n if (!tabElements.length) return tabInstances;\n\n tabElements.forEach((element) => {\n try {\n const instance = new Tab(element, options);\n tabInstances.push(instance);\n } catch (error) {\n console.error('Error initializing tab:', error);\n }\n });\n\n return tabInstances;\n}\n\nexport default Tab; "],"names":["DEFAULT_OPTIONS","navItems","TAB","SELECTORS","NAV_ITEMS","navBtn","NAV_BTN","panels","PANELS","panelBodys","PANEL_BODIES","activeClass","CLASSES","ACTIVE","activeIndex","DEFAULTS","ACTIVE_INDEX","Tab","selector","options","arguments","length","undefined","_classCallCheck","this","$element","document","querySelector","_objectSpread","$navItems","$panels","$panelBodys","_initialize","key","value","_initializeElements","_showTab","_bindEvents","querySelectorAll","_this","forEach","item","btn","addEventListener","_handleTabClick","tabIndex","dataset","tabindex","_hideAllTabs","_this2","panel","style","height","classList","remove","opacity","index","_this3","pIndex","toString","_this3$$panelBodys","panelBody","add","requestAnimationFrame","concat","clientHeight","navItem","nIndex","_this4","removeEventListener","initializeTabs","tabInstances","tabElements","element","instance","push","error"],"sourceRoot":""}
|
|
@@ -1,2 +0,0 @@
|
|
|
1
|
-
"use strict";(this.webpackChunkAtomix=this.webpackChunkAtomix||[]).push([[979],{979:(t,e,n)=>{n.r(e),n.d(e,{default:()=>f,initializeTabs:()=>v});var i=n(653);function o(t){return o="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},o(t)}function r(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var i=Object.getOwnPropertySymbols(t);e&&(i=i.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,i)}return n}function s(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?r(Object(n),!0).forEach((function(e){a(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):r(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function a(t,e,n){return(e=c(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t,e){for(var n=0;n<e.length;n++){var i=e[n];i.enumerable=i.enumerable||!1,i.configurable=!0,"value"in i&&(i.writable=!0),Object.defineProperty(t,c(i.key),i)}}function c(t){var e=function(t,e){if("object"!=o(t)||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var i=n.call(t,e||"default");if("object"!=o(i))return i;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==o(e)?e:e+""}var u={navItems:i.wn.SELECTORS.NAV_ITEMS,navBtn:i.wn.SELECTORS.NAV_BTN,panels:i.wn.SELECTORS.PANELS,panelBodys:i.wn.SELECTORS.PANEL_BODIES,activeClass:i.wn.CLASSES.ACTIVE,activeIndex:i.wn.DEFAULTS.ACTIVE_INDEX},h=function(){return t=function t(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{};!function(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}(this,t),this.selector=e||i.wn.SELECTORS.TAB,this.$element="string"==typeof e?document.querySelector(e):e,this.options=s(s({},u),n),this.$navItems=null,this.$panels=null,this.$panelBodys=null,this._initialize()},(e=[{key:"_initialize",value:function(){this.$element&&(this._initializeElements(),this._showTab(this.options.activeIndex),this._bindEvents())}},{key:"_initializeElements",value:function(){this.$element&&(this.$navItems=this.$element.querySelectorAll(this.options.navItems),this.$panels=this.$element.querySelectorAll(this.options.panels),this.$panelBodys=this.$element.querySelectorAll(this.options.panelBodys))}},{key:"_bindEvents",value:function(){var t=this;this.$navItems&&this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.addEventListener("click",(function(){return t._handleTabClick(n)}))}))}},{key:"_handleTabClick",value:function(t){var e=t.dataset.tabindex;void 0!==e&&(this._hideAllTabs(),this._showTab(e))}},{key:"_hideAllTabs",value:function(){var t=this;this.$panels&&this.$navItems&&(this.$panels.forEach((function(e){e.style.height="0px",e.classList.remove(t.options.activeClass),e.style.opacity="0"})),this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.classList.remove(t.options.activeClass)})))}},{key:"_showTab",value:function(t){var e=this;this.$panels&&this.$navItems&&this.$panelBodys&&(this.$panels.forEach((function(n,i){if(n.dataset.tabindex==t.toString()){var o,r=null===(o=e.$panelBodys)||void 0===o?void 0:o[i];r&&(n.classList.add(e.options.activeClass),requestAnimationFrame((function(){n.style.height="".concat(r.clientHeight,"px"),n.style.opacity="1"})))}})),this.$navItems.forEach((function(n,i){var o=n.querySelector(e.options.navBtn);o&&o.dataset.tabindex==t.toString()&&o.classList.add(e.options.activeClass)})))}},{key:"destroy",value:function(){var t=this;this.$element&&this.$navItems&&this.$navItems.forEach((function(e){var n=e.querySelector(t.options.navBtn);n&&n.removeEventListener("click",(function(){return t._handleTabClick(n)}))}))}}])&&l(t.prototype,e),n&&l(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t;var t,e,n}();function v(){var t=arguments.length>0&&void 0!==arguments[0]?arguments[0]:i.wn.SELECTORS.TAB,e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=[],o=document.querySelectorAll(t);return o.length?(o.forEach((function(t){try{var i=new h(t,e);n.push(i)}catch(t){}})),n):n}const f=h}}]);
|
|
2
|
-
//# sourceMappingURL=979.atomix-0.1.4.react.js.map
|