@feraxjs/thselector 1.0.0 → 1.0.2

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/index.cjs CHANGED
@@ -85,6 +85,9 @@ window.th = {
85
85
 
86
86
  window.th.remove = window.th.init();
87
87
 
88
+ /**
89
+ *
90
+ */
88
91
  const th = window.th;
89
92
 
90
93
  function init_dropdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\n/**\n * \n */\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,138 @@
1
+ const THEME_STORAGE_KEY = '[fx-theme]';
2
+ const META_ID = 'fth-meta';
3
+
4
+ window.th = {
5
+ verbose: false,
6
+ themes: Object.freeze({
7
+ light: 'light',
8
+ dark: 'dark',
9
+ system: 'dark light'
10
+ }),
11
+
12
+ setMetaTag(content) {
13
+ let meta = document.getElementById(META_ID);
14
+ if (!meta) {
15
+ meta = document.createElement('meta');
16
+ meta.id = META_ID;
17
+ meta.name = 'color-scheme';
18
+ document.head.appendChild(meta);
19
+ }
20
+ meta.content = content;
21
+ },
22
+
23
+ getSystemTheme() {
24
+ return window.matchMedia('(prefers-color-scheme: dark)').matches
25
+ ? 'dark'
26
+ : 'light';
27
+ },
28
+
29
+ setTheme(theme) {
30
+ if (!(theme in this.themes)) {
31
+ console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);
32
+ theme = 'system';
33
+ }
34
+
35
+ this.setMetaTag(this.themes[theme] || this.themes.system);
36
+
37
+ const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;
38
+
39
+ document.documentElement.setAttribute('theme', finalTheme);
40
+
41
+ try { localStorage.setItem(THEME_STORAGE_KEY, theme); }
42
+ catch (e) {
43
+ if (this.verbose) console.debug("Error saving the theme:", e);
44
+ }
45
+
46
+ this.dispatchThemeChangeEvent(finalTheme, theme === 'system');
47
+
48
+ return finalTheme;
49
+ },
50
+
51
+ dispatchThemeChangeEvent(theme, isSistem) {
52
+ const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });
53
+ document.dispatchEvent(event);
54
+ },
55
+
56
+ init() {
57
+ try {
58
+ const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';
59
+ this.setTheme(savedTheme);
60
+ } catch (error) {
61
+ if (this.verbose) console.debug('Error loading theme:', error);
62
+ this.setTheme('system');
63
+ }
64
+
65
+ if (!('matchMedia' in window)) {
66
+ if (this.verbose) console.debug("The 'matchMedia' parameter is not present");
67
+ }
68
+
69
+ const listener = () => {
70
+ const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);
71
+ if (currentTheme === 'system') { this.setTheme('system'); }
72
+ };
73
+
74
+ window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);
75
+
76
+ return () => {
77
+ window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);
78
+ }
79
+ }
80
+ };
81
+
82
+ window.th.remove = window.th.init();
83
+
84
+ /**
85
+ *
86
+ */
87
+ const th = window.th;
88
+
89
+ function init_dropdown() {
90
+ const selector = document.getElementById("fth-select");
91
+
92
+ if (selector) {
93
+ const OPTIONS = {
94
+ light: { id: 'fth-olight', text: 'Light', value: 'light' },
95
+ dark: { id: 'fth-odark', text: 'Dark', value: 'dark' },
96
+ system: { id: 'fth-osystem', text: 'System', value: 'system' }
97
+ };
98
+
99
+ function createOrUpdateOption(theme, config) {
100
+ let option = document.getElementById(config.id);
101
+
102
+ if (!option) {
103
+ option = document.createElement("option");
104
+ option.id = config.id;
105
+ option.value = config.value; // Usa el valor definido en OPTIONS
106
+ option.textContent = config.text;
107
+ selector.appendChild(option);
108
+ }
109
+ return option;
110
+ }
111
+
112
+ const options = Object.values(OPTIONS).map(config => createOrUpdateOption(config.value, config));
113
+
114
+
115
+ function setSelectedOption(theme) {
116
+ const optionToSelect = options.find(option => option.value === theme);
117
+ if (optionToSelect) {
118
+ optionToSelect.selected = true;
119
+ }
120
+ }
121
+
122
+ const currentTheme = localStorage.getItem('[fx-theme]') ?? 'system';
123
+ setSelectedOption(currentTheme);
124
+
125
+ selector.addEventListener("change", (event) => {
126
+ const newTheme = event.target.value;
127
+ window.th.setTheme(newTheme);
128
+ });
129
+
130
+ document.addEventListener('th-changed', (event) => {
131
+ if (event.detail.isSistem) setSelectedOption(OPTIONS.system);
132
+ else setSelectedOption(event.detail.theme);
133
+ });
134
+ }
135
+ }
136
+
137
+ export { init_dropdown, th };
138
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\n/**\n * \n */\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -87,6 +87,9 @@
87
87
 
88
88
  window.th.remove = window.th.init();
89
89
 
90
+ /**
91
+ *
92
+ */
90
93
  const th = window.th;
91
94
 
92
95
  function init_dropdown() {
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\n/**\n * \n */\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.min.js","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":["THEME_STORAGE_KEY","META_ID","window","th","verbose","themes","Object","freeze","light","dark","system","setMetaTag","content","meta","document","getElementById","createElement","id","name","head","appendChild","getSystemTheme","matchMedia","matches","setTheme","theme","this","console","warn","finalTheme","documentElement","setAttribute","localStorage","setItem","e","debug","dispatchThemeChangeEvent","isSistem","event","CustomEvent","detail","dispatchEvent","init","savedTheme","getItem","error","listener","addEventListener","removeEventListener","remove"],"mappings":"iPAAA,MAAMA,EAAoB,aACpBC,EAAU,WAEhBC,OAAOC,GAAK,CACRC,SAAS,EACTC,OAAQC,OAAOC,OAAO,CAClBC,MAAO,QACPC,KAAM,OACNC,OAAQ,eAGZ,UAAAC,CAAWC,GACP,IAAIC,EAAOC,SAASC,eAAed,GAC9BY,IACDA,EAAOC,SAASE,cAAc,QAC9BH,EAAKI,GAAKhB,EACVY,EAAKK,KAAO,eACZJ,SAASK,KAAKC,YAAYP,IAE9BA,EAAKD,QAAUA,CAClB,EAEDS,eAAc,IACHnB,OAAOoB,WAAW,gCAAgCC,QACnD,OACA,QAGV,QAAAC,CAASC,GACCA,KAASC,KAAKrB,SAChBsB,QAAQC,KAAK,kBAAkBH,oCAC/BA,EAAQ,UAGZC,KAAKf,WAAWe,KAAKrB,OAAOoB,IAAUC,KAAKrB,OAAOK,QAElD,MAAMmB,EAAuB,WAAVJ,EAAqBC,KAAKL,iBAAmBI,EAEhEX,SAASgB,gBAAgBC,aAAa,QAASF,GAE/C,IAAMG,aAAaC,QAAQjC,EAAmByB,EAAS,CACvD,MAAOS,GACDR,KAAKtB,SAASuB,QAAQQ,MAAM,0BAA2BD,EAC5D,CAID,OAFAR,KAAKU,yBAAyBP,EAAsB,WAAVJ,GAEnCI,CACV,EAED,wBAAAO,CAAyBX,EAAOY,GAC5B,MAAMC,EAAQ,IAAIC,YAAY,aAAc,CAAEC,OAAQ,CAAEf,QAAOY,cAC/DvB,SAAS2B,cAAcH,EAC1B,EAED,IAAAI,GACE,IACI,MAAMC,EAAaX,aAAaY,QAAQ5C,IAAsB,SAC9D0B,KAAKF,SAASmB,EACjB,CAAC,MAAOE,GACDnB,KAAKtB,SAASuB,QAAQQ,MAAM,uBAAwBU,GACxDnB,KAAKF,SAAS,SACjB,CAEK,eAAgBtB,QAChBwB,KAAKtB,SAASuB,QAAQQ,MAAM,6CAGlC,MAAMW,EAAW,KAEM,WADAd,aAAaY,QAAQ5C,IACT0B,KAAKF,SAAS,WAKjD,OAFAtB,OAAOoB,WAAW,gCAAgCyB,iBAAiB,SAAUD,GAEtE,KACL5C,OAAOoB,WAAW,gCAAgC0B,oBAAoB,SAAUF,GAEnF,GAGL5C,OAAOC,GAAG8C,OAAS/C,OAAOC,GAAGuC,OC/EhB,MAAAvC,EAAKD,OAAOC"}
1
+ {"version":3,"file":"index.min.js","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\n/**\n * \n */\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":["THEME_STORAGE_KEY","META_ID","window","th","verbose","themes","Object","freeze","light","dark","system","setMetaTag","content","meta","document","getElementById","createElement","id","name","head","appendChild","getSystemTheme","matchMedia","matches","setTheme","theme","this","console","warn","finalTheme","documentElement","setAttribute","localStorage","setItem","e","debug","dispatchThemeChangeEvent","isSistem","event","CustomEvent","detail","dispatchEvent","init","savedTheme","getItem","error","listener","addEventListener","removeEventListener","remove"],"mappings":"iPAAA,MAAMA,EAAoB,aACpBC,EAAU,WAEhBC,OAAOC,GAAK,CACRC,SAAS,EACTC,OAAQC,OAAOC,OAAO,CAClBC,MAAO,QACPC,KAAM,OACNC,OAAQ,eAGZ,UAAAC,CAAWC,GACP,IAAIC,EAAOC,SAASC,eAAed,GAC9BY,IACDA,EAAOC,SAASE,cAAc,QAC9BH,EAAKI,GAAKhB,EACVY,EAAKK,KAAO,eACZJ,SAASK,KAAKC,YAAYP,IAE9BA,EAAKD,QAAUA,CAClB,EAEDS,eAAc,IACHnB,OAAOoB,WAAW,gCAAgCC,QACnD,OACA,QAGV,QAAAC,CAASC,GACCA,KAASC,KAAKrB,SAChBsB,QAAQC,KAAK,kBAAkBH,oCAC/BA,EAAQ,UAGZC,KAAKf,WAAWe,KAAKrB,OAAOoB,IAAUC,KAAKrB,OAAOK,QAElD,MAAMmB,EAAuB,WAAVJ,EAAqBC,KAAKL,iBAAmBI,EAEhEX,SAASgB,gBAAgBC,aAAa,QAASF,GAE/C,IAAMG,aAAaC,QAAQjC,EAAmByB,EAAS,CACvD,MAAOS,GACDR,KAAKtB,SAASuB,QAAQQ,MAAM,0BAA2BD,EAC5D,CAID,OAFAR,KAAKU,yBAAyBP,EAAsB,WAAVJ,GAEnCI,CACV,EAED,wBAAAO,CAAyBX,EAAOY,GAC5B,MAAMC,EAAQ,IAAIC,YAAY,aAAc,CAAEC,OAAQ,CAAEf,QAAOY,cAC/DvB,SAAS2B,cAAcH,EAC1B,EAED,IAAAI,GACE,IACI,MAAMC,EAAaX,aAAaY,QAAQ5C,IAAsB,SAC9D0B,KAAKF,SAASmB,EACjB,CAAC,MAAOE,GACDnB,KAAKtB,SAASuB,QAAQQ,MAAM,uBAAwBU,GACxDnB,KAAKF,SAAS,SACjB,CAEK,eAAgBtB,QAChBwB,KAAKtB,SAASuB,QAAQQ,MAAM,6CAGlC,MAAMW,EAAW,KAEM,WADAd,aAAaY,QAAQ5C,IACT0B,KAAKF,SAAS,WAKjD,OAFAtB,OAAOoB,WAAW,gCAAgCyB,iBAAiB,SAAUD,GAEtE,KACL5C,OAAOoB,WAAW,gCAAgC0B,oBAAoB,SAAUF,GAEnF,GAGL5C,OAAOC,GAAG8C,OAAS/C,OAAOC,GAAGuC,OC5EhB,MAAAvC,EAAKD,OAAOC"}
package/dist/index.mjs CHANGED
@@ -81,6 +81,9 @@ window.th = {
81
81
 
82
82
  window.th.remove = window.th.init();
83
83
 
84
+ /**
85
+ *
86
+ */
84
87
  const th = window.th;
85
88
 
86
89
  function init_dropdown() {
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.mjs","sources":["../src/core.js","../src/index.js"],"sourcesContent":["const THEME_STORAGE_KEY = '[fx-theme]';\nconst META_ID = 'fth-meta';\n\nwindow.th = {\n verbose: false,\n themes: Object.freeze({\n light: 'light',\n dark: 'dark',\n system: 'dark light'\n }),\n\n setMetaTag(content) {\n let meta = document.getElementById(META_ID);\n if (!meta) {\n meta = document.createElement('meta');\n meta.id = META_ID;\n meta.name = 'color-scheme';\n document.head.appendChild(meta);\n }\n meta.content = content;\n },\n\n getSystemTheme() {\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n },\n\n setTheme(theme) {\n if (!(theme in this.themes)) {\n console.warn(`Invalid theme: ${theme}. Falling back to system theme.`);\n theme = 'system';\n }\n \n this.setMetaTag(this.themes[theme] || this.themes.system);\n \n const finalTheme = theme === 'system' ? this.getSystemTheme() : theme;\n \n document.documentElement.setAttribute('theme', finalTheme);\n \n try { localStorage.setItem(THEME_STORAGE_KEY, theme); }\n catch (e) { \n if (this.verbose) console.debug(\"Error saving the theme:\", e)\n }\n \n this.dispatchThemeChangeEvent(finalTheme, theme === 'system');\n \n return finalTheme;\n },\n \n dispatchThemeChangeEvent(theme, isSistem) {\n const event = new CustomEvent('th-changed', { detail: { theme, isSistem } });\n document.dispatchEvent(event);\n },\n \n init() {\n try {\n const savedTheme = localStorage.getItem(THEME_STORAGE_KEY) ?? 'system';\n this.setTheme(savedTheme);\n } catch (error) {\n if (this.verbose) console.debug('Error loading theme:', error);\n this.setTheme('system');\n }\n \n if (!('matchMedia' in window)) {\n if (this.verbose) console.debug(\"The 'matchMedia' parameter is not present\")\n }\n \n const listener = () => {\n const currentTheme = localStorage.getItem(THEME_STORAGE_KEY);\n if (currentTheme === 'system') { this.setTheme('system'); }\n }\n \n window.matchMedia('(prefers-color-scheme: dark)').addEventListener('change', listener);\n \n return () => {\n window.matchMedia('(prefers-color-scheme: dark)').removeEventListener('change', listener);\n }\n }\n}\n\nwindow.th.remove = window.th.init();\n","import './core.js';\n\n/**\n * \n */\nexport const th = window.th;\n\nexport function init_dropdown() {\n// ./components/dropdown.js\n}\n"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,11 +1,12 @@
1
1
  {
2
2
  "name": "@feraxjs/thselector",
3
- "version": "1.0.0",
3
+ "version": "1.0.2",
4
4
  "description": "The simplest way to add theme management to your HTML. Easy to configure and set up.",
5
5
  "author": "feraxhp",
6
6
  "license": "MIT",
7
7
  "main": "dist/index.cjs",
8
8
  "module": "dist/index.mjs",
9
+ "types": "dist/index.d.ts",
9
10
  "browser": "dist/index.js",
10
11
  "directories": {
11
12
  "doc": "docs"
@@ -28,10 +29,12 @@
28
29
  "devDependencies": {
29
30
  "@rollup/plugin-commonjs": "^29.0.0",
30
31
  "@rollup/plugin-node-resolve": "^16.0.3",
32
+ "@rollup/plugin-replace": "^6.0.3",
31
33
  "@rollup/plugin-terser": "^0.4.4",
32
- "rollup": "^2.79.2"
33
- },
34
- "dependencies": {
35
- "@rollup/plugin-replace": "^6.0.3"
34
+ "@rollup/plugin-typescript": "^12.3.0",
35
+ "rollup": "^2.79.2",
36
+ "rollup-plugin-dts": "^6.3.0",
37
+ "tslib": "^2.8.1",
38
+ "typescript": "^5.9.3"
36
39
  }
37
40
  }