@waaelg/dga-design-system 0.4.2 → 0.4.4

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 (45) hide show
  1. package/README.md +23 -23
  2. package/dist/DGA-logo-icon.svg +55 -0
  3. package/dist/arrow_left.svg +3 -0
  4. package/dist/arrow_left_black.svg +3 -0
  5. package/dist/arrow_right.svg +3 -0
  6. package/dist/arrow_right_black.svg +3 -0
  7. package/dist/chevron.svg +0 -0
  8. package/dist/index.js +253 -0
  9. package/dist/index.js.map +1 -0
  10. package/dist/link-icon.svg +19 -0
  11. package/dist/marker.svg +1 -0
  12. package/dist/saudiFlag.svg +13 -0
  13. package/dist/square-lock-password.svg +20 -0
  14. package/dist/style.css +1 -0
  15. package/dist/vite.svg +1 -0
  16. package/package.json +24 -7
  17. package/docs/README.md +0 -76
  18. package/docs/changelog.md +0 -54
  19. package/docs/components/accordion.md +0 -114
  20. package/docs/components/alert.md +0 -130
  21. package/docs/components/avatar.md +0 -74
  22. package/docs/components/breadcrumb.md +0 -56
  23. package/docs/components/button.md +0 -163
  24. package/docs/components/card.md +0 -78
  25. package/docs/components/chart.md +0 -97
  26. package/docs/components/code-snippet.md +0 -110
  27. package/docs/components/divider.md +0 -54
  28. package/docs/components/forms.md +0 -123
  29. package/docs/components/link.md +0 -52
  30. package/docs/components/navbar.md +0 -93
  31. package/docs/components/table.md +0 -69
  32. package/docs/components/tag.md +0 -76
  33. package/docs/components/verify-bar.md +0 -79
  34. package/docs/foundations/colors-cheatsheet.md +0 -593
  35. package/docs/foundations/colors-swatches.md +0 -441
  36. package/docs/foundations/colors.md +0 -1284
  37. package/docs/foundations/grid.md +0 -1406
  38. package/docs/foundations/radius.md +0 -1166
  39. package/docs/foundations/spacing.md +0 -134
  40. package/docs/foundations/typography.md +0 -111
  41. package/docs/foundations/width-height.md +0 -305
  42. package/docs/getting-started/installation.md +0 -158
  43. package/docs/getting-started/javascript-api.md +0 -204
  44. package/docs/getting-started/rtl-arabic.md +0 -89
  45. package/docs/getting-started/web-components.md +0 -134
package/README.md CHANGED
@@ -1,4 +1,4 @@
1
- # @waaelg/dga-design-on-sass
1
+ # @waaelg/dga-design-system
2
2
 
3
3
  Saudi **DGA (Digital Government Authority)** design system — compiled CSS utilities, components, and optional JavaScript for interactive behavior.
4
4
 
@@ -14,15 +14,15 @@ Saudi **DGA (Digital Government Authority)** design system — compiled CSS util
14
14
  ## Installation
15
15
 
16
16
  ```bash
17
- npm install @waaelg/dga-design-on-sass
17
+ npm install @waaelg/dga-design-system
18
18
  ```
19
19
 
20
20
  The published package includes compiled assets from the `dist` folder:
21
21
 
22
22
  | Import path | Description |
23
23
  |-------------|-------------|
24
- | `@waaelg/dga-design-on-sass/style.css` | All compiled styles |
25
- | `@waaelg/dga-design-on-sass` | JavaScript component classes |
24
+ | `@waaelg/dga-design-system/style.css` | All compiled styles |
25
+ | `@waaelg/dga-design-system` | JavaScript component classes |
26
26
 
27
27
  ---
28
28
 
@@ -31,7 +31,7 @@ The published package includes compiled assets from the `dist` folder:
31
31
  ### 1. Import the stylesheet
32
32
 
33
33
  ```js
34
- import '@waaelg/dga-design-on-sass/style.css';
34
+ import '@waaelg/dga-design-system/style.css';
35
35
  ```
36
36
 
37
37
  ### 2. Use `dga-*` classes in your HTML
@@ -55,11 +55,11 @@ import '@waaelg/dga-design-on-sass/style.css';
55
55
  Static components work with CSS alone. For **legacy HTML markup**, interactive components need a one-time JS setup. **Web components** (`<dga-*>`) handle behavior automatically.
56
56
 
57
57
  ```js
58
- import '@waaelg/dga-design-on-sass/style.css';
59
- import '@waaelg/dga-design-on-sass'; // registers <dga-*> elements
58
+ import '@waaelg/dga-design-system/style.css';
59
+ import '@waaelg/dga-design-system'; // registers <dga-*> elements
60
60
 
61
61
  // Legacy only:
62
- import { DGAAlert } from '@waaelg/dga-design-on-sass';
62
+ import { DGAAlert } from '@waaelg/dga-design-system';
63
63
  new DGAAlert();
64
64
  ```
65
65
 
@@ -80,15 +80,15 @@ new DGAAlert();
80
80
  Add the CSS import once in your entry file (`main.js`, `main.tsx`, `App.vue`, etc.):
81
81
 
82
82
  ```js
83
- import '@waaelg/dga-design-on-sass/style.css';
83
+ import '@waaelg/dga-design-system/style.css';
84
84
  ```
85
85
 
86
86
  **React example**
87
87
 
88
88
  ```jsx
89
89
  import { useEffect } from 'react';
90
- import '@waaelg/dga-design-on-sass/style.css';
91
- import { DGAAccordion, DGAAlert } from '@waaelg/dga-design-on-sass';
90
+ import '@waaelg/dga-design-system/style.css';
91
+ import { DGAAccordion, DGAAlert } from '@waaelg/dga-design-system';
92
92
 
93
93
  export function App() {
94
94
  useEffect(() => {
@@ -119,7 +119,7 @@ export function App() {
119
119
  Import styles in `app/layout.tsx`:
120
120
 
121
121
  ```tsx
122
- import '@waaelg/dga-design-on-sass/style.css';
122
+ import '@waaelg/dga-design-system/style.css';
123
123
 
124
124
  export default function RootLayout({ children }: { children: React.ReactNode }) {
125
125
  return (
@@ -136,7 +136,7 @@ Use a client component for JS initialization:
136
136
  'use client';
137
137
 
138
138
  import { useEffect } from 'react';
139
- import { DGAAlert } from '@waaelg/dga-design-on-sass';
139
+ import { DGAAlert } from '@waaelg/dga-design-system';
140
140
 
141
141
  export function DGAInit() {
142
142
  useEffect(() => {
@@ -155,13 +155,13 @@ export function DGAInit() {
155
155
  <head>
156
156
  <meta charset="UTF-8" />
157
157
  <meta name="viewport" content="width=device-width, initial-scale=1.0" />
158
- <link rel="stylesheet" href="./node_modules/@waaelg/dga-design-on-sass/dist/style.css" />
158
+ <link rel="stylesheet" href="./node_modules/@waaelg/dga-design-system/dist/style.css" />
159
159
  </head>
160
160
  <body>
161
161
  <button class="dga-btn dga-btn-primary">زر</button>
162
162
 
163
163
  <script type="module">
164
- import { DGAAlert } from './node_modules/@waaelg/dga-design-on-sass/dist/index.js';
164
+ import { DGAAlert } from './node_modules/@waaelg/dga-design-system/dist/index.js';
165
165
  new DGAAlert();
166
166
  </script>
167
167
  </body>
@@ -236,7 +236,7 @@ import {
236
236
  DGACodeSnippet,
237
237
  DGAMenuDropDown,
238
238
  DGAVerifyBar,
239
- } from '@waaelg/dga-design-on-sass';
239
+ } from '@waaelg/dga-design-system';
240
240
  ```
241
241
 
242
242
  Importing the package also registers **web components** — prefer these in Vue/React:
@@ -360,7 +360,7 @@ const menu = new DGAMenuDropDown({
360
360
  <dga-accordion-item title="Question">Answer</dga-accordion-item>
361
361
  </dga-accordion>
362
362
 
363
- <dga-code-snippet code="npm install @waaelg/dga-design-on-sass"></dga-code-snippet>
363
+ <dga-code-snippet code="npm install @waaelg/dga-design-system"></dga-code-snippet>
364
364
 
365
365
  <dga-pie-chart data='[{"label":"A","from":"0%","to":"100%","color":"primary-100"}]'></dga-pie-chart>
366
366
 
@@ -401,7 +401,7 @@ The design system targets Arabic government websites. Set `dir="rtl"` and `lang=
401
401
  Only compiled files are published:
402
402
 
403
403
  ```
404
- node_modules/@waaelg/dga-design-on-sass/
404
+ node_modules/@waaelg/dga-design-system/
405
405
  ├── dist/
406
406
  │ ├── index.js # JavaScript components
407
407
  │ ├── index.js.map
@@ -409,15 +409,15 @@ node_modules/@waaelg/dga-design-on-sass/
409
409
  └── package.json
410
410
  ```
411
411
 
412
- SCSS source files are **not** included in the npm package. To customize variables or mixins, clone the [repository](https://github.com/waaelg/personal_fe_dga-sass) and build locally.
412
+ SCSS source files are **not** included in the npm package. To customize variables or mixins, clone the [repository](https://github.com/waaelg/dga-design-system) and build locally.
413
413
 
414
414
  ---
415
415
 
416
416
  ## Local development (contributors)
417
417
 
418
418
  ```bash
419
- git clone https://github.com/waaelg/personal_fe_dga-sass.git
420
- cd personal_fe_dga-sass
419
+ git clone https://github.com/waaelg/dga-design-system.git
420
+ cd dga-design-system
421
421
  npm install
422
422
  npm run dev # demo pages at http://localhost:5173
423
423
  npm run build # outputs dist/index.js and dist/style.css
@@ -446,7 +446,7 @@ Documentation:
446
446
  ## Troubleshooting
447
447
 
448
448
  **Styles not applied**
449
- - Confirm `import '@waaelg/dga-design-on-sass/style.css'` runs before your app renders.
449
+ - Confirm `import '@waaelg/dga-design-system/style.css'` runs before your app renders.
450
450
  - In plain HTML, verify the `<link>` path points to `dist/style.css`.
451
451
 
452
452
  **Interactive component not working**
@@ -468,7 +468,7 @@ Documentation:
468
468
  ```js
469
469
  export default defineConfig({
470
470
  optimizeDeps: {
471
- exclude: ['@waaelg/dga-design-on-sass'],
471
+ exclude: ['@waaelg/dga-design-system'],
472
472
  },
473
473
  })
474
474
  ```
@@ -0,0 +1,55 @@
1
+ <svg width="21" height="31" viewBox="0 0 21 31" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g id="DGA logo">
3
+ <path id="Vector" d="M11.3686 15.0182C11.213 15.1314 11.114 15.3152 11.114 15.5132V20.5334C11.114 20.8728 11.3827 21.1415 11.7221 21.1415C12.0615 21.1415 12.3302 20.8728 12.3302 20.5334V15.8243L17.6615 12.091C17.8454 12.1899 18.0433 12.2324 18.2696 12.2324C18.9908 12.2324 19.5848 11.6526 19.5848 10.9172C19.5848 10.196 19.005 9.60205 18.2696 9.60205C17.5484 9.60205 16.9544 10.1819 16.9544 10.9172C16.9544 10.9738 16.9544 11.0303 16.9686 11.0728L11.3686 15.0182Z" fill="url(#paint0_linear_51_98)"/>
4
+ <path id="Vector_2" d="M7.59282 13.6889V18.695C7.16857 18.9213 6.88574 19.3455 6.88574 19.8546C6.88574 20.5758 7.46554 21.1697 8.2009 21.1697C8.92211 21.1697 9.51605 20.5899 9.51605 19.8546C9.51605 19.3455 9.23322 18.9071 8.80898 18.695V14.0142L16.6999 8.49898C16.8555 8.38585 16.9545 8.20201 16.9545 8.00403V4.27068C16.9545 3.93129 16.6858 3.6626 16.3464 3.6626C16.007 3.6626 15.7383 3.93129 15.7383 4.27068V7.67878L7.84736 13.194C7.67766 13.2929 7.57867 13.4768 7.59282 13.6889Z" fill="url(#paint1_linear_51_98)"/>
5
+ <path id="Vector_3" d="M17.0393 15.3576L15.0312 16.7718C14.7484 16.9697 14.6918 17.3374 14.8898 17.6203C15.0029 17.79 15.2009 17.8748 15.3847 17.8748C15.512 17.8748 15.6251 17.8465 15.7383 17.7617L17.7464 16.3475C18.0292 16.1495 18.0858 15.7819 17.8878 15.499C17.7039 15.2303 17.3221 15.1596 17.0393 15.3576Z" fill="url(#paint2_linear_51_98)"/>
6
+ <path id="Vector_4" d="M20.8858 18.9071C20.6878 18.6243 20.306 18.5536 20.0231 18.7516L10.5059 25.4122L0.988723 18.7516C0.705894 18.5536 0.324069 18.6243 0.126088 18.9071C-0.0718928 19.19 -0.00118027 19.5718 0.281649 19.7698L9.43119 26.1759L6.75844 28.0567C6.5746 27.9577 6.36248 27.9153 6.15036 27.9153C5.41501 27.9153 4.82106 28.5092 4.82106 29.2446C4.82106 29.9799 5.41501 30.5738 6.15036 30.5738C6.88572 30.5738 7.47966 29.9799 7.47966 29.2446C7.47966 29.188 7.47966 29.1314 7.46552 29.0749L10.5201 26.9395L13.5746 29.0749C13.5746 29.1314 13.5605 29.188 13.5605 29.2446C13.5605 29.9799 14.1544 30.5738 14.8898 30.5738C15.6251 30.5738 16.2191 29.9799 16.2191 29.2446C16.2191 28.5092 15.6251 27.9153 14.8898 27.9153C14.6635 27.9153 14.4655 27.9718 14.2817 28.0567L11.609 26.1759L20.7585 19.7698C21.0131 19.5718 21.0838 19.19 20.8858 18.9071Z" fill="url(#paint3_linear_51_98)"/>
7
+ <path id="Vector_5" d="M3.97253 4.46872L5.98062 3.05457C6.26345 2.85659 6.32002 2.48891 6.12204 2.20608C6.00891 2.03639 5.81093 1.95154 5.62709 1.95154C5.49981 1.95154 5.38668 1.97982 5.27355 2.06467L3.26546 3.47882C2.98263 3.6768 2.92606 4.04447 3.12404 4.3273C3.30788 4.59599 3.6897 4.6667 3.97253 4.46872Z" fill="url(#paint4_linear_51_98)"/>
8
+ <path id="Vector_6" d="M12.2029 2.47476V5.82629L4.31192 11.3415C4.15636 11.4546 4.05737 11.6384 4.05737 11.8364V15.5698C4.05737 15.9092 4.32606 16.1778 4.66545 16.1778C5.00485 16.1778 5.27354 15.9092 5.27354 15.5698V12.1617L13.1645 6.64649C13.32 6.53336 13.419 6.34952 13.419 6.15154V2.47476C13.8433 2.24849 14.1261 1.82425 14.1261 1.31516C14.1261 0.593945 13.5463 0 12.8109 0C12.0897 0 11.4958 0.579803 11.4958 1.31516C11.5099 1.81011 11.7928 2.24849 12.2029 2.47476Z" fill="url(#paint5_linear_51_98)"/>
9
+ <path id="Vector_7" d="M2.72812 10.196C3.44933 10.196 4.04327 9.61623 4.04327 8.88087C4.04327 8.8243 4.04328 8.76774 4.02914 8.72531L9.62916 4.80812C9.78471 4.69499 9.8837 4.51115 9.8837 4.31317V0.622242C9.8837 0.282846 9.61502 0.0141602 9.27562 0.0141602C8.93623 0.0141602 8.66754 0.282846 8.66754 0.622242V4.00206L3.3362 7.72127C3.15236 7.62228 2.95438 7.57985 2.72812 7.57985C2.0069 7.57985 1.41296 8.15965 1.41296 8.89501C1.42711 9.61622 2.0069 10.196 2.72812 10.196Z" fill="url(#paint6_linear_51_98)"/>
10
+ </g>
11
+ <defs>
12
+ <linearGradient id="paint0_linear_51_98" x1="15.3524" y1="3.95793" x2="15.3524" y2="27.7715" gradientUnits="userSpaceOnUse">
13
+ <stop stop-color="#00ABAF"/>
14
+ <stop offset="0.24" stop-color="#0093B4"/>
15
+ <stop offset="0.48" stop-color="#0080BA"/>
16
+ <stop offset="1" stop-color="#774896"/>
17
+ </linearGradient>
18
+ <linearGradient id="paint1_linear_51_98" x1="11.9192" y1="3.9579" x2="11.9192" y2="27.7715" gradientUnits="userSpaceOnUse">
19
+ <stop stop-color="#00ABAF"/>
20
+ <stop offset="0.24" stop-color="#0093B4"/>
21
+ <stop offset="0.48" stop-color="#0080BA"/>
22
+ <stop offset="1" stop-color="#774896"/>
23
+ </linearGradient>
24
+ <linearGradient id="paint2_linear_51_98" x1="16.387" y1="3.95793" x2="16.387" y2="27.7715" gradientUnits="userSpaceOnUse">
25
+ <stop stop-color="#00ABAF"/>
26
+ <stop offset="0.24" stop-color="#0093B4"/>
27
+ <stop offset="0.48" stop-color="#0080BA"/>
28
+ <stop offset="1" stop-color="#774896"/>
29
+ </linearGradient>
30
+ <linearGradient id="paint3_linear_51_98" x1="10.5052" y1="3.95793" x2="10.5052" y2="27.7715" gradientUnits="userSpaceOnUse">
31
+ <stop stop-color="#29B2B2"/>
32
+ <stop offset="0.27" stop-color="#1091B3"/>
33
+ <stop offset="0.48" stop-color="#017EB5"/>
34
+ <stop offset="1" stop-color="#704B98"/>
35
+ </linearGradient>
36
+ <linearGradient id="paint4_linear_51_98" x1="4.62328" y1="3.95796" x2="4.62328" y2="27.7715" gradientUnits="userSpaceOnUse">
37
+ <stop stop-color="#00ABAF"/>
38
+ <stop offset="0.24" stop-color="#0093B4"/>
39
+ <stop offset="0.48" stop-color="#0080BA"/>
40
+ <stop offset="1" stop-color="#774896"/>
41
+ </linearGradient>
42
+ <linearGradient id="paint5_linear_51_98" x1="9.09284" y1="3.95794" x2="9.09284" y2="27.7715" gradientUnits="userSpaceOnUse">
43
+ <stop stop-color="#00ABAF"/>
44
+ <stop offset="0.24" stop-color="#0093B4"/>
45
+ <stop offset="0.48" stop-color="#0080BA"/>
46
+ <stop offset="1" stop-color="#774896"/>
47
+ </linearGradient>
48
+ <linearGradient id="paint6_linear_51_98" x1="5.65795" y1="3.95796" x2="5.65795" y2="27.7715" gradientUnits="userSpaceOnUse">
49
+ <stop stop-color="#00ABAF"/>
50
+ <stop offset="0.24" stop-color="#0093B4"/>
51
+ <stop offset="0.48" stop-color="#0080BA"/>
52
+ <stop offset="1" stop-color="#774896"/>
53
+ </linearGradient>
54
+ </defs>
55
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3.25047 11.9995C3.25047 11.6259 3.41613 11.2794 3.57299 11.0191C3.74227 10.7383 3.96991 10.4484 4.21965 10.1657C4.72065 9.59865 5.37434 8.98966 6.00871 8.4388C6.6468 7.88469 7.28269 7.37448 7.75772 7.00371C7.99563 6.81801 8.19411 6.66657 8.33351 6.56126C8.40323 6.50859 8.45823 6.46742 8.49605 6.43923L8.53962 6.40684L8.55118 6.39829L8.55519 6.39533C8.88869 6.14967 9.35863 6.22056 9.60429 6.55406C9.84994 6.88754 9.77875 7.35702 9.44529 7.60269L9.43256 7.61211L9.39251 7.64188C9.35709 7.66828 9.30467 7.70752 9.23767 7.75813C9.10364 7.85938 8.9115 8.00598 8.68066 8.18615C8.21819 8.54712 7.6041 9.04002 6.9922 9.57137C6.37658 10.106 5.78028 10.6648 5.34378 11.1589C5.31618 11.1901 5.28946 11.2208 5.26364 11.251L20.0005 11.251C20.4147 11.251 20.7505 11.5868 20.7505 12.001C20.7505 12.4152 20.4147 12.751 20.0005 12.751L5.26617 12.751C5.29121 12.7802 5.31708 12.8099 5.34378 12.8401C5.78028 13.3342 6.37658 13.893 6.9922 14.4276C7.6041 14.959 8.21819 15.4519 8.68066 15.8128C8.91149 15.993 9.10364 16.1396 9.23767 16.2409C9.30467 16.2915 9.35709 16.3307 9.39251 16.3571L9.43256 16.3869L9.44528 16.3963C9.77875 16.642 9.84994 17.1115 9.60429 17.4449C9.35863 17.7784 8.88869 17.8493 8.55519 17.6037L8.55118 17.6007L8.53962 17.5922L8.49605 17.5598C8.45823 17.5316 8.40323 17.4904 8.33351 17.4377C8.19411 17.3324 7.99563 17.181 7.75772 16.9953C7.28269 16.6245 6.6468 16.1143 6.00871 15.5602C5.37434 15.0093 4.72065 14.4003 4.21965 13.8333C3.96991 13.5506 3.74227 13.2607 3.57299 12.9799C3.41707 12.7212 3.25246 12.3772 3.25049 12.0062" fill="white"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M3.25047 11.9995C3.25047 11.6259 3.41613 11.2794 3.57299 11.0191C3.74227 10.7383 3.96991 10.4484 4.21965 10.1657C4.72065 9.59865 5.37434 8.98966 6.00871 8.4388C6.6468 7.88469 7.28269 7.37448 7.75772 7.00371C7.99563 6.81801 8.19411 6.66657 8.33351 6.56126C8.40323 6.50859 8.45823 6.46742 8.49605 6.43923L8.53962 6.40684L8.55118 6.39829L8.55519 6.39533C8.88869 6.14967 9.35863 6.22056 9.60429 6.55406C9.84994 6.88754 9.77875 7.35702 9.44529 7.60269L9.43256 7.61211L9.39251 7.64188C9.35709 7.66828 9.30467 7.70752 9.23767 7.75813C9.10364 7.85938 8.9115 8.00598 8.68066 8.18615C8.21819 8.54712 7.6041 9.04002 6.9922 9.57137C6.37658 10.106 5.78028 10.6648 5.34378 11.1589C5.31618 11.1901 5.28946 11.2208 5.26364 11.251L20.0005 11.251C20.4147 11.251 20.7505 11.5868 20.7505 12.001C20.7505 12.4152 20.4147 12.751 20.0005 12.751L5.26617 12.751C5.29121 12.7802 5.31708 12.8099 5.34378 12.8401C5.78028 13.3342 6.37658 13.893 6.9922 14.4276C7.6041 14.959 8.21819 15.4519 8.68066 15.8128C8.91149 15.993 9.10364 16.1396 9.23767 16.2409C9.30467 16.2915 9.35709 16.3307 9.39251 16.3571L9.43256 16.3869L9.44528 16.3963C9.77875 16.642 9.84994 17.1115 9.60429 17.4449C9.35863 17.7784 8.88869 17.8493 8.55519 17.6037L8.55118 17.6007L8.53962 17.5922L8.49605 17.5598C8.45823 17.5316 8.40323 17.4904 8.33351 17.4377C8.19411 17.3324 7.99563 17.181 7.75772 16.9953C7.28269 16.6245 6.6468 16.1143 6.00871 15.5602C5.37434 15.0093 4.72065 14.4003 4.21965 13.8333C3.96991 13.5506 3.74227 13.2607 3.57299 12.9799C3.41707 12.7212 3.25246 12.3772 3.25049 12.0062" fill="#161616"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.7495 11.9995C20.7495 11.6259 20.5839 11.2794 20.427 11.0191C20.2577 10.7383 20.0301 10.4484 19.7803 10.1657C19.2794 9.59864 18.6257 8.98966 17.9913 8.4388C17.3532 7.88469 16.7173 7.37448 16.2423 7.00371C16.0044 6.81801 15.8059 6.66657 15.6665 6.56126C15.5968 6.50859 15.5418 6.46742 15.5039 6.43923L15.4604 6.40684L15.4488 6.39829L15.4448 6.39533C15.1113 6.14967 14.6414 6.22056 14.3957 6.55406C14.1501 6.88754 14.2213 7.35702 14.5547 7.60269L14.5674 7.61211L14.6075 7.64188C14.6429 7.66828 14.6953 7.70752 14.7623 7.75813C14.8964 7.85938 15.0885 8.00598 15.3193 8.18615C15.7818 8.54712 16.3959 9.04002 17.0078 9.57137C17.6234 10.106 18.2197 10.6648 18.6562 11.1589C18.6838 11.1901 18.7105 11.2208 18.7364 11.251L3.99951 11.251C3.5853 11.251 3.24951 11.5868 3.24951 12.001C3.24951 12.4152 3.5853 12.751 3.99951 12.751L18.7338 12.751C18.7088 12.7802 18.6829 12.8099 18.6562 12.8401C18.2197 13.3342 17.6234 13.893 17.0078 14.4276C16.3959 14.959 15.7818 15.4519 15.3193 15.8128C15.0885 15.993 14.8964 16.1396 14.7623 16.2409C14.6953 16.2915 14.6429 16.3307 14.6075 16.3571L14.5674 16.3869L14.5547 16.3963C14.2213 16.642 14.1501 17.1115 14.3957 17.4449C14.6414 17.7784 15.1113 17.8493 15.4448 17.6037L15.4488 17.6007L15.4604 17.5922L15.5039 17.5598C15.5418 17.5316 15.5968 17.4904 15.6665 17.4377C15.8059 17.3324 16.0044 17.181 16.2423 16.9953C16.7173 16.6245 17.3532 16.1143 17.9913 15.5602C18.6257 15.0093 19.2794 14.4003 19.7803 13.8333C20.0301 13.5506 20.2577 13.2607 20.427 12.9799C20.5829 12.7212 20.7475 12.3772 20.7495 12.0062" fill="white"/>
3
+ </svg>
@@ -0,0 +1,3 @@
1
+ <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <path d="M20.7495 11.9995C20.7495 11.6259 20.5839 11.2794 20.427 11.0191C20.2577 10.7383 20.0301 10.4484 19.7803 10.1657C19.2794 9.59864 18.6257 8.98966 17.9913 8.4388C17.3532 7.88469 16.7173 7.37448 16.2423 7.00371C16.0044 6.81801 15.8059 6.66657 15.6665 6.56126C15.5968 6.50859 15.5418 6.46742 15.5039 6.43923L15.4604 6.40684L15.4488 6.39829L15.4448 6.39533C15.1113 6.14967 14.6414 6.22056 14.3957 6.55406C14.1501 6.88754 14.2213 7.35702 14.5547 7.60269L14.5674 7.61211L14.6075 7.64188C14.6429 7.66828 14.6953 7.70752 14.7623 7.75813C14.8964 7.85938 15.0885 8.00598 15.3193 8.18615C15.7818 8.54712 16.3959 9.04002 17.0078 9.57137C17.6234 10.106 18.2197 10.6648 18.6562 11.1589C18.6838 11.1901 18.7105 11.2208 18.7364 11.251L3.99951 11.251C3.5853 11.251 3.24951 11.5868 3.24951 12.001C3.24951 12.4152 3.5853 12.751 3.99951 12.751L18.7338 12.751C18.7088 12.7802 18.6829 12.8099 18.6562 12.8401C18.2197 13.3342 17.6234 13.893 17.0078 14.4276C16.3959 14.959 15.7818 15.4519 15.3193 15.8128C15.0885 15.993 14.8964 16.1396 14.7623 16.2409C14.6953 16.2915 14.6429 16.3307 14.6075 16.3571L14.5674 16.3869L14.5547 16.3963C14.2213 16.642 14.1501 17.1115 14.3957 17.4449C14.6414 17.7784 15.1113 17.8493 15.4448 17.6037L15.4488 17.6007L15.4604 17.5922L15.5039 17.5598C15.5418 17.5316 15.5968 17.4904 15.6665 17.4377C15.8059 17.3324 16.0044 17.181 16.2423 16.9953C16.7173 16.6245 17.3532 16.1143 17.9913 15.5602C18.6257 15.0093 19.2794 14.4003 19.7803 13.8333C20.0301 13.5506 20.2577 13.2607 20.427 12.9799C20.5829 12.7212 20.7475 12.3772 20.7495 12.0062" fill="#161616"/>
3
+ </svg>
File without changes
package/dist/index.js ADDED
@@ -0,0 +1,253 @@
1
+ class d {
2
+ constructor(e) {
3
+ this.root = e, this.handleClick = this.handleClick.bind(this), this.handleKeydown = this.handleKeydown.bind(this), this.init();
4
+ }
5
+ init() {
6
+ this.root.addEventListener("click", this.handleClick), this.root.addEventListener("keydown", this.handleKeydown);
7
+ }
8
+ handleClick(e) {
9
+ const t = e.target.closest(".dga-acc-header");
10
+ t && this.root.contains(t) && this.toggle(t);
11
+ }
12
+ handleKeydown(e) {
13
+ const t = e.target.closest(".dga-acc-header");
14
+ !t || !this.root.contains(t) || (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.toggle(t));
15
+ }
16
+ toggle(e) {
17
+ const t = e.parentElement;
18
+ t && (t.classList.contains("dga-acc-item--active") ? this.close(t) : this.open(t));
19
+ }
20
+ open(e) {
21
+ e.classList.add("dga-acc-item--active"), e.querySelector(".dga-acc-header")?.setAttribute("aria-expanded", "true");
22
+ }
23
+ close(e) {
24
+ e.classList.remove("dga-acc-item--active"), e.querySelector(".dga-acc-header")?.setAttribute("aria-expanded", "false");
25
+ }
26
+ closeAll() {
27
+ this.root.querySelectorAll(".dga-acc-item").forEach((e) => {
28
+ this.close(e);
29
+ });
30
+ }
31
+ destroy() {
32
+ this.root.removeEventListener("click", this.handleClick), this.root.removeEventListener("keydown", this.handleKeydown);
33
+ }
34
+ }
35
+ class m {
36
+ constructor(e) {
37
+ this.accordion = e, this.controller = new d(e);
38
+ }
39
+ toggle(e) {
40
+ this.controller.toggle(e);
41
+ }
42
+ open(e) {
43
+ this.controller.open(e);
44
+ }
45
+ close(e) {
46
+ this.controller.close(e);
47
+ }
48
+ closeAll() {
49
+ this.controller.closeAll();
50
+ }
51
+ destroy() {
52
+ this.controller.destroy();
53
+ }
54
+ }
55
+ class b {
56
+ constructor(e = document) {
57
+ this.root = e, this.handleCloseClick = this.handleCloseClick.bind(this), this.init();
58
+ }
59
+ init() {
60
+ this.root.addEventListener("click", this.handleCloseClick);
61
+ }
62
+ handleCloseClick(e) {
63
+ const t = e.target.closest("[data-alert-close]");
64
+ if (!t)
65
+ return;
66
+ const i = t.closest(".dga-alert");
67
+ i && (i.style.display = "none");
68
+ }
69
+ destroy() {
70
+ this.root.removeEventListener("click", this.handleCloseClick);
71
+ }
72
+ }
73
+ function a(s) {
74
+ return s.startsWith("#") || s.startsWith("var(") ? s : `var(--${s})`;
75
+ }
76
+ function r(s = []) {
77
+ return `conic-gradient(${s.map(
78
+ (t) => `${a(t.color)} ${t.from} ${t.to}`
79
+ ).join(", ")})`;
80
+ }
81
+ function l(s = []) {
82
+ return `<div class="dga-pie-chart__labels">${s.map(
83
+ (t) => `<span class="dga-pie-chart__label"><span class="dga-pie-chart__circle" style="background-color: ${a(
84
+ t.color
85
+ )}"></span>${t.label}</span>`
86
+ ).join("")}</div>`;
87
+ }
88
+ function h(s, e = [], { hole: t = !1 } = {}) {
89
+ s && (s.classList.add("dga-pie-chart"), s.setAttribute("data-hole", t ? "true" : "false"), s.style.background = r(e), s.innerHTML = l(e));
90
+ }
91
+ class v {
92
+ constructor(e, t = []) {
93
+ this.chart = e, this.data = t, this.init();
94
+ }
95
+ init() {
96
+ const e = this.chart.getAttribute("data-hole") === "true";
97
+ h(this.chart, this.data, { hole: e });
98
+ }
99
+ generateGradient() {
100
+ return r(this.data);
101
+ }
102
+ generateLabels() {
103
+ return l(this.data);
104
+ }
105
+ }
106
+ async function u(s) {
107
+ try {
108
+ if (navigator.clipboard?.writeText)
109
+ return await navigator.clipboard.writeText(s), !0;
110
+ } catch {
111
+ }
112
+ const e = document.createElement("textarea");
113
+ e.value = s, e.setAttribute("readonly", ""), e.style.position = "absolute", e.style.left = "-9999px", document.body.appendChild(e), e.select();
114
+ const t = document.execCommand("copy");
115
+ return document.body.removeChild(e), t;
116
+ }
117
+ async function p(s, e = 1200) {
118
+ const t = s.getAttribute("aria-label") || "Copy code";
119
+ s.setAttribute("aria-label", "Copied"), s.setAttribute("data-copied", "true"), window.setTimeout(() => {
120
+ s.setAttribute("aria-label", t), s.setAttribute("data-copied", "false");
121
+ }, e);
122
+ }
123
+ class y {
124
+ constructor(e = document) {
125
+ this.root = e, this.handleCopyClick = this.handleCopyClick.bind(this), this.init();
126
+ }
127
+ init() {
128
+ this.root.addEventListener("click", this.handleCopyClick);
129
+ }
130
+ async handleCopyClick(e) {
131
+ const t = e.target.closest(
132
+ ".dga-code-snippet-inline__copy, .dga-code-snippet-multiline__copy"
133
+ );
134
+ if (!t) return;
135
+ const i = t.closest(".dga-code-snippet-inline"), n = t.closest(".dga-code-snippet-multiline");
136
+ let o = "";
137
+ i ? o = i.querySelector(
138
+ ".dga-code-snippet-inline__content"
139
+ )?.textContent?.trim() || "" : n && (o = n.querySelector(
140
+ ".dga-code-snippet-multiline__code code"
141
+ )?.textContent || ""), !(!o || !await u(o)) && await p(t);
142
+ }
143
+ destroy() {
144
+ this.root.removeEventListener("click", this.handleCopyClick);
145
+ }
146
+ }
147
+ class f {
148
+ constructor(e = {}) {
149
+ if (this.navbar = e.navbar || document.querySelector(".dga-navbar"), this.verifyBar = e.verifyBar || null, !this.navbar) {
150
+ console.warn("DGA Navbar elements not found");
151
+ return;
152
+ }
153
+ if (this.navbarTop = this.navbar.getBoundingClientRect().top + window.scrollY, this.navbarHeight = this.navbar.getBoundingClientRect().height, this.menu = this.navbar.querySelector(".dga-menu"), this.toggler = this.navbar.querySelector(".dga-navbar-toggler"), this.menuItems = this.navbar.querySelectorAll(".dga-menu-item.dga-has-dropdown"), !this.menu) {
154
+ console.warn("DGA Menu element not found");
155
+ return;
156
+ }
157
+ this.boundToggleDropdown = (t) => this.toggleDropdown(t), this.boundToggleMobileMenu = (t) => this.toggleMobileMenu(t), this.boundCloseAllDropdowns = (t) => this.closeAllDropdowns(t), this.boundHandleResize = () => this.handleResize(), this.boundHandleKeyboard = (t) => this.handleKeyboard(t), this.init();
158
+ }
159
+ get isActive() {
160
+ return this.isMobileMenuOpen() || this.isNormalDropdownOpen();
161
+ }
162
+ init() {
163
+ this.handleResize(), this.bindEvents();
164
+ }
165
+ bindEvents() {
166
+ this.menuItems.forEach((e) => {
167
+ e.addEventListener("click", this.boundToggleDropdown);
168
+ }), this.toggler?.addEventListener("click", this.boundToggleMobileMenu), document.addEventListener("click", this.boundCloseAllDropdowns), window.addEventListener("resize", this.boundHandleResize), this.menuItems.forEach((e) => {
169
+ e.addEventListener("keydown", this.boundHandleKeyboard);
170
+ });
171
+ }
172
+ toggleDropdown(e) {
173
+ e.preventDefault(), e.stopPropagation(), this.verifyBar && this.verifyBar.isOpen && this.verifyBar.closePanel();
174
+ const t = e.currentTarget, i = t.parentElement, n = i.classList.contains("active");
175
+ this.closeAllDropdowns(), n || (i.classList.add("active"), t.classList.add("dga-menu-item-selected"), t.setAttribute("aria-expanded", "true"), i.querySelector(".dga-dropdown").style.top = `${this.navbarHeight + this.navbarTop}px`);
176
+ }
177
+ toggleMobileMenu(e) {
178
+ e.stopPropagation(), this.verifyBar && this.verifyBar.isOpen && this.verifyBar.closePanel(), this.menu.classList.toggle("dga-menu-open"), this.menu.classList.contains("dga-menu-open") ? (document.body.classList.add("no-scroll"), this.menu.style.height = `calc(100vh - ${this.navbarHeight}px - ${this.navbarTop}px)`) : (document.body.classList.remove("no-scroll"), this.menu.style.height = "0px"), this.menu.style.top = `${this.navbarTop + this.navbarHeight}px`;
179
+ const t = this.menu.classList.contains("dga-menu-open");
180
+ this.toggler.setAttribute("aria-expanded", t), this.toggler.setAttribute(
181
+ "aria-label",
182
+ t ? "Close menu" : "Open menu"
183
+ );
184
+ }
185
+ // Public method to close menu programmatically (without event)
186
+ closeMenu() {
187
+ this.closeAllDropdowns(), this.isMobileMenuOpen() && (this.menu.classList.remove("dga-menu-open"), document.body.classList.remove("no-scroll"), this.menu.style.height = "0px", this.toggler.setAttribute("aria-expanded", "false"), this.toggler.setAttribute("aria-label", "Open menu"));
188
+ }
189
+ closeAllDropdowns(e) {
190
+ if (e && e.target.closest(".dga-dropdown-content"))
191
+ return;
192
+ this.navbar.querySelectorAll(".dga-menu > li.active").forEach((i) => {
193
+ i.classList.remove("active");
194
+ const n = i.querySelector(".dga-menu-item");
195
+ n?.classList.remove("dga-menu-item-selected"), n?.setAttribute("aria-expanded", "false");
196
+ });
197
+ }
198
+ handleKeyboard(e) {
199
+ e.key === "Escape" && (this.closeAllDropdowns(), e.currentTarget.focus()), (e.key === "Enter" || e.key === " ") && (e.preventDefault(), this.toggleDropdown(e));
200
+ }
201
+ handleResize() {
202
+ const e = window.innerWidth;
203
+ document.body.classList.remove(
204
+ "size_desktop",
205
+ "size_tablet",
206
+ "size_mobile"
207
+ ), e > 769 ? (document.body.classList.add("size_desktop"), this.closeAllDropdowns(), this.menu.classList.remove("dga-menu-open"), document.body.classList.remove("no-scroll")) : e <= 769 && e > 375 ? document.body.classList.add("size_tablet") : document.body.classList.add("size_mobile");
208
+ }
209
+ // Public method to destroy the component
210
+ destroy() {
211
+ this.menuItems.forEach((e) => {
212
+ e.removeEventListener("click", this.boundToggleDropdown), e.removeEventListener("keydown", this.boundHandleKeyboard);
213
+ }), this.toggler?.removeEventListener("click", this.boundToggleMobileMenu), document.removeEventListener("click", this.boundCloseAllDropdowns), window.removeEventListener("resize", this.boundHandleResize);
214
+ }
215
+ isMobileMenuOpen() {
216
+ return this.menu?.classList.contains("dga-menu-open");
217
+ }
218
+ isNormalDropdownOpen() {
219
+ return this.navbar.querySelectorAll(".dga-menu > li.active").length > 0;
220
+ }
221
+ }
222
+ class w {
223
+ constructor(e = {}) {
224
+ if (this.isOpen = !1, this.verifyBar = document.getElementById("dga-verify-bar"), this.menu = e.menu || null, this.btn = document.getElementById("dga-verifyBtn"), this.content = document.getElementById("dga-verify-bar_content"), this.boundToggle = () => {
225
+ this.isOpen ? this.closePanel() : this.openPanel();
226
+ }, !this.verifyBar || !this.btn || !this.content) {
227
+ console.warn("DGA Verify Bar elements not found");
228
+ return;
229
+ }
230
+ this.init();
231
+ }
232
+ init() {
233
+ this.btn.addEventListener("click", this.boundToggle);
234
+ }
235
+ openPanel() {
236
+ this.menu && this.menu.isActive && this.menu.closeMenu(), this.content.style.display = "flex", this.isOpen = !0, this.verifyBar.classList.add("opend"), this.verifyBar.classList.remove("closed");
237
+ }
238
+ closePanel() {
239
+ this.content.style.display = "none", this.isOpen = !1, this.verifyBar.classList.add("closed"), this.verifyBar.classList.remove("opend");
240
+ }
241
+ destroy() {
242
+ this.btn?.removeEventListener("click", this.boundToggle);
243
+ }
244
+ }
245
+ export {
246
+ m as DGAAccordion,
247
+ b as DGAAlert,
248
+ v as DGAChart,
249
+ y as DGACodeSnippet,
250
+ f as DGAMenuDropDown,
251
+ w as DGAVerifyBar
252
+ };
253
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sources":["../src/scripts/shared/accordion-controller.js","../src/scripts/accordion.js","../src/scripts/alert.js","../src/scripts/shared/pie-chart.js","../src/scripts/chart.js","../src/scripts/shared/copy-text.js","../src/scripts/codeSnippet.js","../src/scripts/dropdownMenu.js","../src/scripts/verifyBar.js"],"sourcesContent":["export class AccordionController {\r\n constructor(root) {\r\n this.root = root;\r\n this.handleClick = this.handleClick.bind(this);\r\n this.handleKeydown = this.handleKeydown.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleClick);\r\n this.root.addEventListener(\"keydown\", this.handleKeydown);\r\n }\r\n\r\n handleClick(event) {\r\n const header = event.target.closest(\".dga-acc-header\");\r\n if (header && this.root.contains(header)) {\r\n this.toggle(header);\r\n }\r\n }\r\n\r\n handleKeydown(event) {\r\n const header = event.target.closest(\".dga-acc-header\");\r\n if (!header || !this.root.contains(header)) return;\r\n\r\n if (event.key === \"Enter\" || event.key === \" \") {\r\n event.preventDefault();\r\n this.toggle(header);\r\n }\r\n }\r\n\r\n toggle(header) {\r\n const item = header.parentElement;\r\n if (!item) return;\r\n\r\n if (item.classList.contains(\"dga-acc-item--active\")) {\r\n this.close(item);\r\n } else {\r\n this.open(item);\r\n }\r\n }\r\n\r\n open(item) {\r\n item.classList.add(\"dga-acc-item--active\");\r\n item.querySelector(\".dga-acc-header\")?.setAttribute(\"aria-expanded\", \"true\");\r\n }\r\n\r\n close(item) {\r\n item.classList.remove(\"dga-acc-item--active\");\r\n item.querySelector(\".dga-acc-header\")?.setAttribute(\"aria-expanded\", \"false\");\r\n }\r\n\r\n closeAll() {\r\n this.root.querySelectorAll(\".dga-acc-item\").forEach((item) => {\r\n this.close(item);\r\n });\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleClick);\r\n this.root.removeEventListener(\"keydown\", this.handleKeydown);\r\n }\r\n}\r\n","import { AccordionController } from \"./shared/accordion-controller.js\";\r\n\r\nexport default class DGAAccordion {\r\n constructor(element) {\r\n this.accordion = element;\r\n this.controller = new AccordionController(element);\r\n }\r\n\r\n toggle(header) {\r\n this.controller.toggle(header);\r\n }\r\n\r\n open(item) {\r\n this.controller.open(item);\r\n }\r\n\r\n close(item) {\r\n this.controller.close(item);\r\n }\r\n\r\n closeAll() {\r\n this.controller.closeAll();\r\n }\r\n\r\n destroy() {\r\n this.controller.destroy();\r\n }\r\n}\r\n","export default class DGAAlert {\r\n constructor(root = document) {\r\n this.root = root;\r\n this.handleCloseClick = this.handleCloseClick.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleCloseClick);\r\n }\r\n\r\n handleCloseClick(event) {\r\n const closeButton = event.target.closest(\"[data-alert-close]\");\r\n if (!closeButton) {\r\n return;\r\n }\r\n\r\n const alert = closeButton.closest(\".dga-alert\");\r\n if (alert) {\r\n alert.style.display = \"none\";\r\n }\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleCloseClick);\r\n }\r\n}\r\n","export function resolveChartColor(color) {\r\n if (color.startsWith(\"#\") || color.startsWith(\"var(\")) {\r\n return color;\r\n }\r\n return `var(--${color})`;\r\n}\r\n\r\nexport function generateChartGradient(data = []) {\r\n const gradientParts = data.map(\r\n (segment) =>\r\n `${resolveChartColor(segment.color)} ${segment.from} ${segment.to}`\r\n );\r\n return `conic-gradient(${gradientParts.join(\", \")})`;\r\n}\r\n\r\nexport function generateChartLabelsHtml(data = []) {\r\n const labels = data\r\n .map(\r\n (segment) =>\r\n `<span class=\"dga-pie-chart__label\"><span class=\"dga-pie-chart__circle\" style=\"background-color: ${resolveChartColor(\r\n segment.color\r\n )}\"></span>${segment.label}</span>`\r\n )\r\n .join(\"\");\r\n\r\n return `<div class=\"dga-pie-chart__labels\">${labels}</div>`;\r\n}\r\n\r\nexport function parseChartDataAttribute(value) {\r\n if (!value) return [];\r\n\r\n try {\r\n const parsed = JSON.parse(value);\r\n return Array.isArray(parsed) ? parsed : [];\r\n } catch {\r\n console.warn(\"dga-pie-chart: invalid data attribute JSON\");\r\n return [];\r\n }\r\n}\r\n\r\nexport function renderPieChart(element, data = [], { hole = false } = {}) {\r\n if (!element) return;\r\n\r\n element.classList.add(\"dga-pie-chart\");\r\n element.setAttribute(\"data-hole\", hole ? \"true\" : \"false\");\r\n element.style.background = generateChartGradient(data);\r\n element.innerHTML = generateChartLabelsHtml(data);\r\n}\r\n","import {\r\n generateChartGradient,\r\n generateChartLabelsHtml,\r\n renderPieChart,\r\n} from \"./shared/pie-chart.js\";\r\n\r\nexport default class DGAChart {\r\n constructor(element, data = []) {\r\n this.chart = element;\r\n this.data = data;\r\n this.init();\r\n }\r\n\r\n init() {\r\n const hole = this.chart.getAttribute(\"data-hole\") === \"true\";\r\n renderPieChart(this.chart, this.data, { hole });\r\n }\r\n\r\n generateGradient() {\r\n return generateChartGradient(this.data);\r\n }\r\n\r\n generateLabels() {\r\n return generateChartLabelsHtml(this.data);\r\n }\r\n}\r\n","export async function copyText(text) {\r\n try {\r\n if (navigator.clipboard?.writeText) {\r\n await navigator.clipboard.writeText(text);\r\n return true;\r\n }\r\n } catch (_error) {\r\n // Fallback below for restricted clipboard environments.\r\n }\r\n\r\n const textarea = document.createElement(\"textarea\");\r\n textarea.value = text;\r\n textarea.setAttribute(\"readonly\", \"\");\r\n textarea.style.position = \"absolute\";\r\n textarea.style.left = \"-9999px\";\r\n document.body.appendChild(textarea);\r\n textarea.select();\r\n const success = document.execCommand(\"copy\");\r\n document.body.removeChild(textarea);\r\n return success;\r\n}\r\n\r\nexport const COPY_ICON_SVG = `<svg viewBox=\"0 0 24 24\" fill=\"none\" aria-hidden=\"true\">\r\n <rect x=\"9\" y=\"9\" width=\"11\" height=\"11\" rx=\"2\" stroke-width=\"1.75\"></rect>\r\n <path d=\"M6 15H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h8a2 2 0 0 1 2 2v1\" stroke-width=\"1.75\" stroke-linecap=\"round\"></path>\r\n</svg>`;\r\n\r\nexport async function markCopyButtonCopied(copyButton, resetMs = 1200) {\r\n const previousLabel = copyButton.getAttribute(\"aria-label\") || \"Copy code\";\r\n copyButton.setAttribute(\"aria-label\", \"Copied\");\r\n copyButton.setAttribute(\"data-copied\", \"true\");\r\n\r\n window.setTimeout(() => {\r\n copyButton.setAttribute(\"aria-label\", previousLabel);\r\n copyButton.setAttribute(\"data-copied\", \"false\");\r\n }, resetMs);\r\n}\r\n","import { copyText, markCopyButtonCopied } from \"./shared/copy-text.js\";\r\n\r\nexport default class DGACodeSnippet {\r\n constructor(root = document) {\r\n this.root = root;\r\n this.handleCopyClick = this.handleCopyClick.bind(this);\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.root.addEventListener(\"click\", this.handleCopyClick);\r\n }\r\n\r\n async handleCopyClick(event) {\r\n const copyButton = event.target.closest(\r\n \".dga-code-snippet-inline__copy, .dga-code-snippet-multiline__copy\"\r\n );\r\n if (!copyButton) return;\r\n\r\n const inlineSnippet = copyButton.closest(\".dga-code-snippet-inline\");\r\n const multilineSnippet = copyButton.closest(\".dga-code-snippet-multiline\");\r\n\r\n let textToCopy = \"\";\r\n if (inlineSnippet) {\r\n const codeElement = inlineSnippet.querySelector(\r\n \".dga-code-snippet-inline__content\"\r\n );\r\n textToCopy = codeElement?.textContent?.trim() || \"\";\r\n } else if (multilineSnippet) {\r\n const codeElement = multilineSnippet.querySelector(\r\n \".dga-code-snippet-multiline__code code\"\r\n );\r\n textToCopy = codeElement?.textContent || \"\";\r\n }\r\n\r\n if (!textToCopy) return;\r\n\r\n const copied = await copyText(textToCopy);\r\n if (!copied) return;\r\n\r\n await markCopyButtonCopied(copyButton);\r\n }\r\n\r\n destroy() {\r\n this.root.removeEventListener(\"click\", this.handleCopyClick);\r\n }\r\n}\r\n","class DGAMenuDropdown {\r\n constructor(options = {}) {\r\n this.navbar = options.navbar || document.querySelector(\".dga-navbar\");\r\n this.verifyBar = options.verifyBar || null;\r\n\r\n if (!this.navbar) {\r\n console.warn(\"DGA Navbar elements not found\");\r\n return;\r\n }\r\n\r\n this.navbarTop = this.navbar.getBoundingClientRect().top + window.scrollY;\r\n this.navbarHeight = this.navbar.getBoundingClientRect().height;\r\n this.menu = this.navbar.querySelector(\".dga-menu\");\r\n this.toggler = this.navbar.querySelector(\".dga-navbar-toggler\");\r\n this.menuItems = this.navbar.querySelectorAll(\".dga-menu-item.dga-has-dropdown\");\r\n\r\n if (!this.menu) {\r\n console.warn(\"DGA Menu element not found\");\r\n return;\r\n }\r\n\r\n this.boundToggleDropdown = (e) => this.toggleDropdown(e);\r\n this.boundToggleMobileMenu = (e) => this.toggleMobileMenu(e);\r\n this.boundCloseAllDropdowns = (e) => this.closeAllDropdowns(e);\r\n this.boundHandleResize = () => this.handleResize();\r\n this.boundHandleKeyboard = (e) => this.handleKeyboard(e);\r\n\r\n this.init();\r\n }\r\n\r\n get isActive() {\r\n return this.isMobileMenuOpen() || this.isNormalDropdownOpen();\r\n }\r\n\r\n init() {\r\n this.handleResize();\r\n this.bindEvents();\r\n }\r\n\r\n bindEvents() {\r\n // Dropdown menu items\r\n this.menuItems.forEach((item) => {\r\n item.addEventListener(\"click\", this.boundToggleDropdown);\r\n });\r\n\r\n // Mobile menu toggler\r\n this.toggler?.addEventListener(\"click\", this.boundToggleMobileMenu);\r\n\r\n // Close dropdowns when clicking outside\r\n document.addEventListener(\"click\", this.boundCloseAllDropdowns);\r\n\r\n // Handle window resize\r\n window.addEventListener(\"resize\", this.boundHandleResize);\r\n\r\n // Keyboard accessibility\r\n this.menuItems.forEach((item) => {\r\n item.addEventListener(\"keydown\", this.boundHandleKeyboard);\r\n });\r\n }\r\n\r\n toggleDropdown(e) {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n\r\n // Close verify bar when opening menu\r\n if (this.verifyBar && this.verifyBar.isOpen) {\r\n this.verifyBar.closePanel();\r\n }\r\n\r\n const menuItem = e.currentTarget;\r\n const listItem = menuItem.parentElement;\r\n const isActive = listItem.classList.contains(\"active\");\r\n\r\n // Close all other dropdowns\r\n this.closeAllDropdowns();\r\n\r\n // Toggle current dropdown\r\n if (!isActive) {\r\n listItem.classList.add(\"active\");\r\n menuItem.classList.add(\"dga-menu-item-selected\");\r\n menuItem.setAttribute(\"aria-expanded\", \"true\");\r\n\r\n listItem.querySelector(\".dga-dropdown\").style.top = `${this.navbarHeight + this.navbarTop\r\n }px`;\r\n }\r\n }\r\n\r\n toggleMobileMenu(e) {\r\n e.stopPropagation();\r\n\r\n // Close verify bar when opening menu\r\n if (this.verifyBar && this.verifyBar.isOpen) {\r\n this.verifyBar.closePanel();\r\n }\r\n\r\n this.menu.classList.toggle(\"dga-menu-open\");\r\n if (this.menu.classList.contains(\"dga-menu-open\")) {\r\n document.body.classList.add(\"no-scroll\");\r\n this.menu.style.height = `calc(100vh - ${this.navbarHeight}px - ${this.navbarTop}px)`;\r\n } else {\r\n document.body.classList.remove(\"no-scroll\");\r\n this.menu.style.height = `0px`;\r\n }\r\n this.menu.style.top = `${this.navbarTop + this.navbarHeight}px`;\r\n\r\n const isOpen = this.menu.classList.contains(\"dga-menu-open\");\r\n this.toggler.setAttribute(\"aria-expanded\", isOpen);\r\n this.toggler.setAttribute(\r\n \"aria-label\",\r\n isOpen ? \"Close menu\" : \"Open menu\"\r\n );\r\n }\r\n\r\n // Public method to close menu programmatically (without event)\r\n closeMenu() {\r\n // Close all dropdowns\r\n this.closeAllDropdowns();\r\n\r\n // Close mobile menu if open\r\n if (this.isMobileMenuOpen()) {\r\n this.menu.classList.remove(\"dga-menu-open\");\r\n document.body.classList.remove(\"no-scroll\");\r\n this.menu.style.height = `0px`;\r\n this.toggler.setAttribute(\"aria-expanded\", \"false\");\r\n this.toggler.setAttribute(\"aria-label\", \"Open menu\");\r\n }\r\n }\r\n\r\n closeAllDropdowns(e) {\r\n // Don't close if clicking inside dropdown content\r\n if (e && e.target.closest(\".dga-dropdown-content\")) {\r\n return;\r\n }\r\n\r\n const activeItems = this.navbar.querySelectorAll(\".dga-menu > li.active\");\r\n activeItems.forEach((item) => {\r\n item.classList.remove(\"active\");\r\n const menuItem = item.querySelector(\".dga-menu-item\");\r\n menuItem?.classList.remove(\"dga-menu-item-selected\");\r\n menuItem?.setAttribute(\"aria-expanded\", \"false\");\r\n });\r\n }\r\n\r\n handleKeyboard(e) {\r\n // Close dropdown on Escape\r\n if (e.key === \"Escape\") {\r\n this.closeAllDropdowns();\r\n e.currentTarget.focus();\r\n }\r\n\r\n // Toggle on Enter or Space\r\n if (e.key === \"Enter\" || e.key === \" \") {\r\n e.preventDefault();\r\n this.toggleDropdown(e);\r\n }\r\n }\r\n\r\n handleResize() {\r\n const width = window.innerWidth;\r\n\r\n // Remove size classes\r\n document.body.classList.remove(\r\n \"size_desktop\",\r\n \"size_tablet\",\r\n \"size_mobile\"\r\n );\r\n\r\n // Add appropriate size class\r\n if (width > 769) {\r\n document.body.classList.add(\"size_desktop\");\r\n this.closeAllDropdowns();\r\n this.menu.classList.remove(\"dga-menu-open\");\r\n document.body.classList.remove(\"no-scroll\");\r\n } else if (width <= 769 && width > 375) {\r\n document.body.classList.add(\"size_tablet\");\r\n } else {\r\n document.body.classList.add(\"size_mobile\");\r\n }\r\n }\r\n\r\n // Public method to destroy the component\r\n destroy() {\r\n this.menuItems.forEach((item) => {\r\n item.removeEventListener(\"click\", this.boundToggleDropdown);\r\n item.removeEventListener(\"keydown\", this.boundHandleKeyboard);\r\n });\r\n\r\n this.toggler?.removeEventListener(\"click\", this.boundToggleMobileMenu);\r\n document.removeEventListener(\"click\", this.boundCloseAllDropdowns);\r\n window.removeEventListener(\"resize\", this.boundHandleResize);\r\n }\r\n\r\n isMobileMenuOpen() {\r\n return this.menu?.classList.contains(\"dga-menu-open\");\r\n }\r\n\r\n isNormalDropdownOpen() {\r\n return this.navbar.querySelectorAll(\".dga-menu > li.active\").length > 0;\r\n }\r\n}\r\n\r\nexport default DGAMenuDropdown;\r\n","export default class DGAVerifyBar {\r\n constructor(options = {}) {\r\n this.isOpen = false;\r\n this.verifyBar = document.getElementById(\"dga-verify-bar\");\r\n this.menu = options.menu || null; // Fixed typo: was \"mneu\"\r\n\r\n this.btn = document.getElementById(\"dga-verifyBtn\");\r\n this.content = document.getElementById(\"dga-verify-bar_content\");\r\n this.boundToggle = () => {\r\n if (this.isOpen) {\r\n this.closePanel();\r\n } else {\r\n this.openPanel();\r\n }\r\n };\r\n\r\n if (!this.verifyBar || !this.btn || !this.content) {\r\n console.warn(\"DGA Verify Bar elements not found\");\r\n return;\r\n }\r\n\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.btn.addEventListener(\"click\", this.boundToggle);\r\n }\r\n\r\n openPanel() {\r\n // Close menu if it's open\r\n if (this.menu && this.menu.isActive) {\r\n this.menu.closeMenu(); // Use the new public method\r\n }\r\n\r\n this.content.style.display = \"flex\";\r\n this.isOpen = true;\r\n this.verifyBar.classList.add(\"opend\");\r\n this.verifyBar.classList.remove(\"closed\");\r\n }\r\n\r\n closePanel() {\r\n this.content.style.display = \"none\";\r\n this.isOpen = false;\r\n this.verifyBar.classList.add(\"closed\");\r\n this.verifyBar.classList.remove(\"opend\");\r\n }\r\n\r\n destroy() {\r\n this.btn?.removeEventListener(\"click\", this.boundToggle);\r\n }\r\n}\r\n"],"names":["AccordionController","root","event","header","item","DGAAccordion","element","DGAAlert","closeButton","alert","resolveChartColor","color","generateChartGradient","data","segment","generateChartLabelsHtml","renderPieChart","hole","DGAChart","copyText","text","textarea","success","markCopyButtonCopied","copyButton","resetMs","previousLabel","DGACodeSnippet","inlineSnippet","multilineSnippet","textToCopy","DGAMenuDropdown","options","e","menuItem","listItem","isActive","isOpen","width","DGAVerifyBar"],"mappings":"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"}
@@ -0,0 +1,19 @@
1
+ <svg width="52" height="52" viewBox="0 0 52 52" fill="none" xmlns="http://www.w3.org/2000/svg">
2
+ <g filter="url(#filter0_d_49_87)">
3
+ <path d="M2.5 25C2.5 12.0213 13.0213 1.5 26 1.5C38.9787 1.5 49.5 12.0213 49.5 25C49.5 37.9787 38.9787 48.5 26 48.5C13.0213 48.5 2.5 37.9787 2.5 25Z" stroke="#067647" shape-rendering="crispEdges"/>
4
+ <path d="M33.4675 17.5975C31.7411 15.8008 28.9292 15.8008 27.2028 17.5975L26.4893 18.3401C26.2023 18.6388 26.2118 19.1136 26.5105 19.4006C26.8092 19.6876 27.284 19.6781 27.5709 19.3794L28.2845 18.6368C29.4206 17.4544 31.2497 17.4544 32.3859 18.6368C33.5382 19.8361 33.5382 21.7925 32.3859 22.9918L29.1465 26.3632C28.9668 26.5502 28.7711 26.7065 28.565 26.8332C27.4569 27.5143 26.0056 27.3629 25.0451 26.3632C24.8888 26.2006 24.7539 26.0244 24.6402 25.8381C24.4243 25.4846 23.9628 25.373 23.6092 25.5889C23.2557 25.8047 23.1441 26.2663 23.36 26.6198C23.5295 26.8975 23.7307 27.1603 23.9635 27.4025C25.418 28.9162 27.6477 29.1577 29.3504 28.1111C29.6651 27.9177 29.9603 27.6811 30.2281 27.4025L33.4675 24.0311C35.1777 22.2512 35.1776 19.3774 33.4675 17.5975Z" fill="#067647"/>
5
+ <path d="M28.0368 22.5975C26.3104 20.8008 23.4984 20.8008 21.7721 22.5975L18.5326 25.9689C16.8225 27.7488 16.8225 30.6226 18.5326 32.4025C20.259 34.1992 23.0709 34.1992 24.7973 32.4025L25.5111 31.6596C25.7981 31.3609 25.7886 30.8861 25.4899 30.5991C25.1913 30.3122 24.7165 30.3216 24.4295 30.6203L23.7157 31.3632C22.5796 32.5456 20.7504 32.5456 19.6143 31.3632C18.4619 30.1639 18.4619 28.2075 19.6143 27.0082L22.8537 23.6368C23.9898 22.4544 25.819 22.4544 26.9551 23.6368C27.1113 23.7994 27.2462 23.9756 27.3599 24.1617C27.5758 24.5152 28.0374 24.6268 28.3909 24.4109C28.7444 24.195 28.856 23.7334 28.6401 23.3799C28.4706 23.1024 28.2694 22.8397 28.0368 22.5975Z" fill="#067647"/>
6
+ </g>
7
+ <defs>
8
+ <filter id="filter0_d_49_87" x="0" y="0" width="52" height="52" filterUnits="userSpaceOnUse" color-interpolation-filters="sRGB">
9
+ <feFlood flood-opacity="0" result="BackgroundImageFix"/>
10
+ <feColorMatrix in="SourceAlpha" type="matrix" values="0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0" result="hardAlpha"/>
11
+ <feOffset dy="1"/>
12
+ <feGaussianBlur stdDeviation="1"/>
13
+ <feComposite in2="hardAlpha" operator="out"/>
14
+ <feColorMatrix type="matrix" values="0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0"/>
15
+ <feBlend mode="normal" in2="BackgroundImageFix" result="effect1_dropShadow_49_87"/>
16
+ <feBlend mode="normal" in="SourceGraphic" in2="effect1_dropShadow_49_87" result="shape"/>
17
+ </filter>
18
+ </defs>
19
+ </svg>
@@ -0,0 +1 @@
1
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24"><path fill="#fff" fill-rule="evenodd" d="M12 2a9 9 0 0 1 9 9c0 3.074-1.676 5.59-3.442 7.395a20.4 20.4 0 0 1-2.876 2.416l-.426.29l-.2.133l-.377.24l-.336.205l-.416.242a1.88 1.88 0 0 1-1.854 0l-.416-.242l-.52-.32l-.192-.125l-.41-.273a20.7 20.7 0 0 1-3.093-2.566C4.676 16.588 3 14.074 3 11a9 9 0 0 1 9-9" class="duoicon-secondary-layer" opacity="0.3"/><path fill="#fff" fill-rule="evenodd" d="m15.08 7.983l-4.245 4.244l-1.768-1.768a1 1 0 1 0-1.414 1.415l2.404 2.404a1.1 1.1 0 0 0 1.556 0l4.88-4.881a1 1 0 0 0-1.414-1.414z" class="duoicon-primary-layer"/></svg>