@abydahana/aksara-ui 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (103) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +163 -0
  3. package/dist/aksara.css +33499 -0
  4. package/dist/aksara.d.ts +284 -0
  5. package/dist/aksara.esm.js +1604 -0
  6. package/dist/aksara.js +1608 -0
  7. package/dist/aksara.min.css +1 -0
  8. package/dist/aksara.min.js +1 -0
  9. package/dist/components/buttons/button-group.d.ts +10 -0
  10. package/dist/components/buttons/button-group.js +12 -0
  11. package/dist/components/buttons/button.d.ts +18 -0
  12. package/dist/components/buttons/button.js +28 -0
  13. package/dist/components/buttons/close-button.d.ts +9 -0
  14. package/dist/components/buttons/close-button.js +13 -0
  15. package/dist/components/buttons/index.d.ts +3 -0
  16. package/dist/components/buttons/index.js +3 -0
  17. package/dist/components/data/accordion.d.ts +17 -0
  18. package/dist/components/data/accordion.js +37 -0
  19. package/dist/components/data/avatar.d.ts +26 -0
  20. package/dist/components/data/avatar.js +64 -0
  21. package/dist/components/data/card.d.ts +39 -0
  22. package/dist/components/data/card.js +34 -0
  23. package/dist/components/data/carousel.d.ts +15 -0
  24. package/dist/components/data/carousel.js +47 -0
  25. package/dist/components/data/index.d.ts +7 -0
  26. package/dist/components/data/index.js +7 -0
  27. package/dist/components/data/list-group.d.ts +22 -0
  28. package/dist/components/data/list-group.js +30 -0
  29. package/dist/components/data/media-grid.d.ts +19 -0
  30. package/dist/components/data/media-grid.js +47 -0
  31. package/dist/components/data/table.d.ts +35 -0
  32. package/dist/components/data/table.js +30 -0
  33. package/dist/components/feedback/alert.d.ts +10 -0
  34. package/dist/components/feedback/alert.js +19 -0
  35. package/dist/components/feedback/badge.d.ts +13 -0
  36. package/dist/components/feedback/badge.js +10 -0
  37. package/dist/components/feedback/index.d.ts +6 -0
  38. package/dist/components/feedback/index.js +6 -0
  39. package/dist/components/feedback/placeholder.d.ts +9 -0
  40. package/dist/components/feedback/placeholder.js +11 -0
  41. package/dist/components/feedback/progress.d.ts +14 -0
  42. package/dist/components/feedback/progress.js +22 -0
  43. package/dist/components/feedback/spinner.d.ts +9 -0
  44. package/dist/components/feedback/spinner.js +12 -0
  45. package/dist/components/feedback/toast.d.ts +22 -0
  46. package/dist/components/feedback/toast.js +36 -0
  47. package/dist/components/form/checkbox.d.ts +17 -0
  48. package/dist/components/form/checkbox.js +29 -0
  49. package/dist/components/form/floating-label.d.ts +9 -0
  50. package/dist/components/form/floating-label.js +14 -0
  51. package/dist/components/form/form-control.d.ts +30 -0
  52. package/dist/components/form/form-control.js +28 -0
  53. package/dist/components/form/index.d.ts +11 -0
  54. package/dist/components/form/index.js +11 -0
  55. package/dist/components/form/input-group.d.ts +16 -0
  56. package/dist/components/form/input-group.js +14 -0
  57. package/dist/components/form/input.d.ts +18 -0
  58. package/dist/components/form/input.js +19 -0
  59. package/dist/components/form/layout.d.ts +20 -0
  60. package/dist/components/form/layout.js +15 -0
  61. package/dist/components/form/radio.d.ts +32 -0
  62. package/dist/components/form/radio.js +49 -0
  63. package/dist/components/form/range.d.ts +13 -0
  64. package/dist/components/form/range.js +18 -0
  65. package/dist/components/form/select.d.ts +25 -0
  66. package/dist/components/form/select.js +37 -0
  67. package/dist/components/form/switch.d.ts +16 -0
  68. package/dist/components/form/switch.js +30 -0
  69. package/dist/components/form/textarea.d.ts +17 -0
  70. package/dist/components/form/textarea.js +19 -0
  71. package/dist/components/index.d.ts +7 -0
  72. package/dist/components/index.js +7 -0
  73. package/dist/components/navigation/breadcrumb.d.ts +13 -0
  74. package/dist/components/navigation/breadcrumb.js +25 -0
  75. package/dist/components/navigation/index.d.ts +5 -0
  76. package/dist/components/navigation/index.js +5 -0
  77. package/dist/components/navigation/navbar.d.ts +20 -0
  78. package/dist/components/navigation/navbar.js +22 -0
  79. package/dist/components/navigation/pagination.d.ts +15 -0
  80. package/dist/components/navigation/pagination.js +31 -0
  81. package/dist/components/navigation/scrollspy.d.ts +23 -0
  82. package/dist/components/navigation/scrollspy.js +43 -0
  83. package/dist/components/navigation/tabs.d.ts +15 -0
  84. package/dist/components/navigation/tabs.js +56 -0
  85. package/dist/components/overlay/collapse.d.ts +20 -0
  86. package/dist/components/overlay/collapse.js +27 -0
  87. package/dist/components/overlay/dropdown.d.ts +33 -0
  88. package/dist/components/overlay/dropdown.js +41 -0
  89. package/dist/components/overlay/index.d.ts +7 -0
  90. package/dist/components/overlay/index.js +7 -0
  91. package/dist/components/overlay/media-modal.d.ts +15 -0
  92. package/dist/components/overlay/media-modal.js +83 -0
  93. package/dist/components/overlay/modal.d.ts +32 -0
  94. package/dist/components/overlay/modal.js +47 -0
  95. package/dist/components/overlay/offcanvas.d.ts +20 -0
  96. package/dist/components/overlay/offcanvas.js +33 -0
  97. package/dist/components/overlay/popover.d.ts +19 -0
  98. package/dist/components/overlay/popover.js +24 -0
  99. package/dist/components/overlay/tooltip.d.ts +17 -0
  100. package/dist/components/overlay/tooltip.js +21 -0
  101. package/dist/components/utils.d.ts +3 -0
  102. package/dist/components/utils.js +25 -0
  103. package/package.json +111 -0
@@ -0,0 +1,284 @@
1
+ export interface ComponentOptions {
2
+ [key: string]: unknown;
3
+ }
4
+ export interface ModalOptions extends ComponentOptions {
5
+ backdrop?: boolean | "static" | string;
6
+ keyboard?: boolean | string;
7
+ focus?: boolean | string;
8
+ scrollLock?: boolean | string;
9
+ draggable?: boolean | string;
10
+ }
11
+ export interface DropdownOptions extends ComponentOptions {
12
+ menu?: string | HTMLElement;
13
+ target?: string | HTMLElement;
14
+ placement?: "top" | "bottom" | "start" | "end" | "auto" | string;
15
+ container?: string | HTMLElement;
16
+ offset?: number;
17
+ keyboard?: boolean;
18
+ closeOnSelect?: boolean;
19
+ closeOnOutside?: boolean;
20
+ }
21
+ export interface FloatingTextOptions extends ComponentOptions {
22
+ content?: string;
23
+ text?: string;
24
+ container?: string | HTMLElement;
25
+ html?: boolean;
26
+ placement?: "top" | "bottom" | "left" | "right" | "start" | "end" | "auto" | string;
27
+ trigger?: string;
28
+ offset?: number;
29
+ showDelay?: number;
30
+ hideDelay?: number;
31
+ keyboard?: boolean;
32
+ }
33
+ export type TooltipOptions = FloatingTextOptions;
34
+ export type PopoverOptions = FloatingTextOptions;
35
+ export interface AccordionOptions extends ComponentOptions {
36
+ parent?: boolean | string | HTMLElement;
37
+ collapsible?: boolean;
38
+ buttonSelector?: string;
39
+ duration?: number;
40
+ }
41
+ export interface TabsOptions extends ComponentOptions {
42
+ tabSelector?: string;
43
+ panelSelector?: string | null;
44
+ active?: string | HTMLElement | null;
45
+ activeIndex?: number;
46
+ keyboard?: boolean;
47
+ loop?: boolean;
48
+ orientation?: "horizontal" | "vertical" | string;
49
+ }
50
+ export interface ToastOptions extends ComponentOptions {
51
+ delay?: number;
52
+ autohide?: boolean;
53
+ }
54
+ export interface CarouselOptions extends ComponentOptions {
55
+ interval?: number;
56
+ autoplay?: boolean;
57
+ pauseOnHover?: boolean;
58
+ keyboard?: boolean;
59
+ loop?: boolean;
60
+ activeIndex?: number;
61
+ }
62
+ export type OffcanvasOptions = ModalOptions;
63
+ export type TargetElements = string | Element | NodeList | Element[] | HTMLElement | HTMLElement[] | null | undefined;
64
+ export interface ComponentConstructor<T extends Component = Component, O extends ComponentOptions = ComponentOptions> {
65
+ new (element: HTMLElement, options?: O): T;
66
+ componentName: string;
67
+ }
68
+ interface DragState {
69
+ originX: number;
70
+ originY: number;
71
+ pointerX: number;
72
+ pointerY: number;
73
+ minX: number;
74
+ maxX: number;
75
+ minY: number;
76
+ maxY: number;
77
+ }
78
+ export declare class Component {
79
+ element: HTMLElement;
80
+ options: Record<string, unknown>;
81
+ cleanups: Array<() => void>;
82
+ constructor(element: HTMLElement, options?: Record<string, unknown>);
83
+ updateOptions(options?: Record<string, unknown>): this;
84
+ on(target: EventTarget, type: string, handler: EventListenerOrEventListenerObject, options?: boolean | AddEventListenerOptions): void;
85
+ destroy(): void;
86
+ }
87
+ export declare class Modal extends Component {
88
+ static componentName: string;
89
+ isOpen: boolean;
90
+ previousFocus: HTMLElement | null;
91
+ dialog: HTMLElement | null;
92
+ dragState: DragState | null;
93
+ backdrop: boolean | "static";
94
+ keyboard: boolean;
95
+ focus: boolean;
96
+ scrollLock: boolean;
97
+ draggable: boolean;
98
+ constructor(element: HTMLElement, options?: ModalOptions);
99
+ updateOptions(options?: ModalOptions): this;
100
+ bindDrag(): void;
101
+ startDrag(event: PointerEvent): void;
102
+ drag(event: PointerEvent): void;
103
+ resetPosition(): void;
104
+ show(): this;
105
+ hide(): this;
106
+ toggle(): this;
107
+ focusFirst(): void;
108
+ onKeydown(event: KeyboardEvent): void;
109
+ }
110
+ export declare class Dropdown extends Component {
111
+ static componentName: string;
112
+ trigger: HTMLElement | null;
113
+ menu: HTMLElement | null;
114
+ isOpen: boolean;
115
+ originalParent: Node | null;
116
+ originalSibling: Node | null;
117
+ scrollHandler: (() => void) | null;
118
+ placement: string;
119
+ container: string | HTMLElement;
120
+ offset: number;
121
+ keyboard: boolean;
122
+ closeOnSelect: boolean;
123
+ closeOnOutside: boolean;
124
+ constructor(element: HTMLElement, options?: DropdownOptions);
125
+ updateOptions(options?: DropdownOptions): this;
126
+ position(): void;
127
+ show(): this;
128
+ hide(): this;
129
+ toggle(event?: Event): this;
130
+ destroy(): void;
131
+ }
132
+ export declare class FloatingText extends Component {
133
+ static dataAttribute: string;
134
+ static role: string;
135
+ static componentName: string;
136
+ tip: HTMLElement | null;
137
+ showTimeout: ReturnType<typeof setTimeout> | null;
138
+ hideTimeout: ReturnType<typeof setTimeout> | null;
139
+ container: string | HTMLElement;
140
+ html: boolean;
141
+ content: string;
142
+ placement: string;
143
+ trigger: string;
144
+ offset: number;
145
+ showDelay: number;
146
+ hideDelay: number;
147
+ keyboard: boolean;
148
+ constructor(element: HTMLElement, options?: FloatingTextOptions);
149
+ updateOptions(options?: FloatingTextOptions): this;
150
+ bindTriggers(): void;
151
+ scheduleShow(): void;
152
+ scheduleHide(): void;
153
+ show(): this;
154
+ toggle(): this;
155
+ hide(): this;
156
+ position(): void;
157
+ destroy(): void;
158
+ }
159
+ export declare class Tooltip extends FloatingText {
160
+ static componentName: string;
161
+ static dataAttribute: string;
162
+ static role: string;
163
+ }
164
+ export declare class Popover extends FloatingText {
165
+ static componentName: string;
166
+ static dataAttribute: string;
167
+ static role: string;
168
+ }
169
+ export declare class Accordion extends Component {
170
+ static componentName: string;
171
+ parent: boolean | string | HTMLElement;
172
+ collapsible: boolean;
173
+ buttonSelector: string;
174
+ duration: number;
175
+ constructor(element: HTMLElement, options?: AccordionOptions);
176
+ updateOptions(options?: AccordionOptions): this;
177
+ getParentScope(): Element | null;
178
+ }
179
+ export declare class Tabs extends Component {
180
+ static componentName: string;
181
+ tabSelector: string;
182
+ panelSelector: string | null;
183
+ active: string | HTMLElement | null;
184
+ activeIndex: number;
185
+ keyboard: boolean;
186
+ loop: boolean;
187
+ orientation: string;
188
+ constructor(element: HTMLElement, options?: TabsOptions);
189
+ updateOptions(options?: TabsOptions): this;
190
+ activateInitial(): void;
191
+ show(tab: HTMLElement): this;
192
+ }
193
+ export declare class Toast extends Component {
194
+ static componentName: string;
195
+ timeout: ReturnType<typeof setTimeout> | null;
196
+ delay: number;
197
+ autohide: boolean;
198
+ constructor(element: HTMLElement, options?: ToastOptions);
199
+ updateOptions(options?: ToastOptions): this;
200
+ show(): this;
201
+ hide(): this;
202
+ destroy(): void;
203
+ }
204
+ export declare class Carousel extends Component {
205
+ static componentName: string;
206
+ timeout: ReturnType<typeof setInterval> | null;
207
+ items: HTMLElement[];
208
+ index: number;
209
+ interval: number;
210
+ autoplay: boolean;
211
+ pauseOnHover: boolean;
212
+ keyboard: boolean;
213
+ loop: boolean;
214
+ constructor(element: HTMLElement, options?: CarouselOptions);
215
+ updateOptions(options?: CarouselOptions): this;
216
+ resolveInitialIndex(): number;
217
+ show(index: number): this;
218
+ next(): this;
219
+ prev(): this;
220
+ play(): this;
221
+ pause(): this;
222
+ destroy(): void;
223
+ }
224
+ export declare class Offcanvas extends Modal {
225
+ static componentName: string;
226
+ show(): this;
227
+ hide(): this;
228
+ }
229
+ export interface AksaraNamespace {
230
+ Modal: typeof Modal;
231
+ Tooltip: typeof Tooltip;
232
+ Popover: typeof Popover;
233
+ Accordion: typeof Accordion;
234
+ Dropdown: typeof Dropdown;
235
+ Tabs: typeof Tabs;
236
+ Toast: typeof Toast;
237
+ Carousel: typeof Carousel;
238
+ Offcanvas: typeof Offcanvas;
239
+ modal(target?: TargetElements | (ModalOptions & {
240
+ target?: TargetElements;
241
+ selector?: TargetElements;
242
+ }), options?: ModalOptions): Modal;
243
+ tooltip(target?: TargetElements | (TooltipOptions & {
244
+ target?: TargetElements;
245
+ selector?: TargetElements;
246
+ }), options?: TooltipOptions): Tooltip;
247
+ popover(target?: TargetElements | (PopoverOptions & {
248
+ target?: TargetElements;
249
+ selector?: TargetElements;
250
+ }), options?: PopoverOptions): Popover;
251
+ accordion(target?: TargetElements | (AccordionOptions & {
252
+ target?: TargetElements;
253
+ selector?: TargetElements;
254
+ }), options?: AccordionOptions): Accordion;
255
+ dropdown(target?: TargetElements | (DropdownOptions & {
256
+ target?: TargetElements;
257
+ selector?: TargetElements;
258
+ }), options?: DropdownOptions): Dropdown;
259
+ tabs(target?: TargetElements | (TabsOptions & {
260
+ target?: TargetElements;
261
+ selector?: TargetElements;
262
+ }), options?: TabsOptions): Tabs;
263
+ toast(target?: TargetElements | (ToastOptions & {
264
+ target?: TargetElements;
265
+ selector?: TargetElements;
266
+ }), options?: ToastOptions): Toast;
267
+ carousel(target?: TargetElements | (CarouselOptions & {
268
+ target?: TargetElements;
269
+ selector?: TargetElements;
270
+ }), options?: CarouselOptions): Carousel;
271
+ offcanvas(target?: TargetElements | (OffcanvasOptions & {
272
+ target?: TargetElements;
273
+ selector?: TargetElements;
274
+ }), options?: OffcanvasOptions): Offcanvas;
275
+ init(root?: ParentNode | Document | HTMLElement): AksaraNamespace;
276
+ destroy(): AksaraNamespace;
277
+ }
278
+ export declare const Aksara: AksaraNamespace;
279
+ declare global {
280
+ interface Window {
281
+ Aksara?: AksaraNamespace;
282
+ }
283
+ }
284
+ export default Aksara;