@wrrdev/fenix-ui 1.0.14 → 1.0.15

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 (111) hide show
  1. package/README.md +332 -332
  2. package/dist/components/accordion/accordion.d.ts +1 -0
  3. package/dist/components/accordion/accordion.d.ts.map +1 -1
  4. package/dist/components/accordion/accordion.js +18 -13
  5. package/dist/components/accordion/accordion.js.map +1 -1
  6. package/dist/components/accordion/index.js.map +1 -1
  7. package/dist/components/alert/alert.d.ts.map +1 -1
  8. package/dist/components/alert/alert.js +2 -1
  9. package/dist/components/alert/alert.js.map +1 -1
  10. package/dist/components/alert/index.js.map +1 -1
  11. package/dist/components/autocomplete/autocomplete.d.ts +3 -0
  12. package/dist/components/autocomplete/autocomplete.d.ts.map +1 -1
  13. package/dist/components/autocomplete/autocomplete.js +28 -4
  14. package/dist/components/autocomplete/autocomplete.js.map +1 -1
  15. package/dist/components/autocomplete/index.js.map +1 -1
  16. package/dist/components/datepicker/datepicker.d.ts.map +1 -1
  17. package/dist/components/datepicker/datepicker.js +7 -6
  18. package/dist/components/datepicker/datepicker.js.map +1 -1
  19. package/dist/components/dialog/dialog.d.ts +4 -0
  20. package/dist/components/dialog/dialog.d.ts.map +1 -1
  21. package/dist/components/dialog/dialog.js +42 -4
  22. package/dist/components/dialog/dialog.js.map +1 -1
  23. package/dist/components/dialog/index.js.map +1 -1
  24. package/dist/components/drawer/drawer.d.ts +5 -0
  25. package/dist/components/drawer/drawer.d.ts.map +1 -1
  26. package/dist/components/drawer/drawer.js +49 -15
  27. package/dist/components/drawer/drawer.js.map +1 -1
  28. package/dist/components/dropdown/dropdown.d.ts +5 -0
  29. package/dist/components/dropdown/dropdown.d.ts.map +1 -1
  30. package/dist/components/dropdown/dropdown.js +34 -10
  31. package/dist/components/dropdown/dropdown.js.map +1 -1
  32. package/dist/components/input/input.d.ts.map +1 -1
  33. package/dist/components/input/input.js +4 -3
  34. package/dist/components/input/input.js.map +1 -1
  35. package/dist/components/knob/index.js.map +1 -1
  36. package/dist/components/knob/knob.d.ts +2 -0
  37. package/dist/components/knob/knob.d.ts.map +1 -1
  38. package/dist/components/knob/knob.js +15 -3
  39. package/dist/components/knob/knob.js.map +1 -1
  40. package/dist/components/multiselect/multiselect.d.ts +2 -0
  41. package/dist/components/multiselect/multiselect.d.ts.map +1 -1
  42. package/dist/components/multiselect/multiselect.js +38 -8
  43. package/dist/components/multiselect/multiselect.js.map +1 -1
  44. package/dist/components/orderlist/orderlist.d.ts.map +1 -1
  45. package/dist/components/orderlist/orderlist.js +1 -3
  46. package/dist/components/orderlist/orderlist.js.map +1 -1
  47. package/dist/components/pagination/index.js.map +1 -1
  48. package/dist/components/pagination/pagination.d.ts +1 -0
  49. package/dist/components/pagination/pagination.d.ts.map +1 -1
  50. package/dist/components/pagination/pagination.js +19 -8
  51. package/dist/components/pagination/pagination.js.map +1 -1
  52. package/dist/components/picklist/picklist.d.ts.map +1 -1
  53. package/dist/components/picklist/picklist.js +1 -3
  54. package/dist/components/picklist/picklist.js.map +1 -1
  55. package/dist/components/progress/index.js.map +1 -1
  56. package/dist/components/progress/progress.d.ts.map +1 -1
  57. package/dist/components/progress/progress.js +2 -1
  58. package/dist/components/progress/progress.js.map +1 -1
  59. package/dist/components/radio/radio.js +1 -1
  60. package/dist/components/radio/radio.js.map +1 -1
  61. package/dist/components/select/select.d.ts +2 -0
  62. package/dist/components/select/select.d.ts.map +1 -1
  63. package/dist/components/select/select.js +36 -5
  64. package/dist/components/select/select.js.map +1 -1
  65. package/dist/components/skeleton/index.js.map +1 -1
  66. package/dist/components/skeleton/skeleton.d.ts +2 -0
  67. package/dist/components/skeleton/skeleton.d.ts.map +1 -1
  68. package/dist/components/skeleton/skeleton.js +7 -2
  69. package/dist/components/skeleton/skeleton.js.map +1 -1
  70. package/dist/components/table/expr.d.ts +38 -0
  71. package/dist/components/table/expr.d.ts.map +1 -0
  72. package/dist/components/table/expr.js +429 -0
  73. package/dist/components/table/expr.js.map +1 -0
  74. package/dist/components/table/table.d.ts +26 -8
  75. package/dist/components/table/table.d.ts.map +1 -1
  76. package/dist/components/table/table.js +402 -140
  77. package/dist/components/table/table.js.map +1 -1
  78. package/dist/components/tabs/tabs.d.ts.map +1 -1
  79. package/dist/components/tabs/tabs.js +3 -2
  80. package/dist/components/tabs/tabs.js.map +1 -1
  81. package/dist/components/textarea/index.js.map +1 -1
  82. package/dist/components/textarea/textarea.d.ts.map +1 -1
  83. package/dist/components/textarea/textarea.js +4 -3
  84. package/dist/components/textarea/textarea.js.map +1 -1
  85. package/dist/components/toast/index.js.map +1 -1
  86. package/dist/components/tooltip/directive.js.map +1 -1
  87. package/dist/components/tooltip/index.js.map +1 -1
  88. package/dist/components/tooltip/tooltip.d.ts.map +1 -1
  89. package/dist/components/tooltip/tooltip.js +2 -1
  90. package/dist/components/tooltip/tooltip.js.map +1 -1
  91. package/dist/core/jsx.js.map +1 -1
  92. package/dist/core/presets.js.map +1 -1
  93. package/dist/core/sanitize.d.ts +36 -0
  94. package/dist/core/sanitize.d.ts.map +1 -0
  95. package/dist/core/sanitize.js +37 -0
  96. package/dist/core/sanitize.js.map +1 -0
  97. package/dist/core/tokens.js.map +1 -1
  98. package/dist/core/vue.js.map +1 -1
  99. package/dist/docs/app.d.ts.map +1 -1
  100. package/dist/docs/componentes/table.doc.d.ts.map +1 -1
  101. package/dist/fenix-ui.esm.js.map +1 -1
  102. package/dist/fenix-ui.umd.min.js +339 -208
  103. package/dist/fenix-ui2.esm.js +1156 -243
  104. package/dist/fenix-ui2.esm.js.map +1 -1
  105. package/dist/fenix-ui3.esm.js.map +1 -1
  106. package/dist/index.d.ts +2 -1
  107. package/dist/index.d.ts.map +1 -1
  108. package/dist/index.js +4 -0
  109. package/dist/index.js.map +1 -1
  110. package/dist/plugins/auto-import.js.map +1 -1
  111. package/package.json +212 -212
@@ -1 +1 @@
1
- {"version":3,"file":"fenix-ui3.esm.js","sources":["../src/plugins/auto-import.ts","../src/plugins/index.ts"],"sourcesContent":["/**\r\n * Registro de tags → subpaths para o auto-import.\r\n * Mantido em um módulo próprio (sem depender de DOM) para ser usado\r\n * também no build do cliente via plugin.\r\n */\r\nexport const fenixComponentMap: Record<string, string> = {\r\n 'fx-button': '@wrrdev/fenix-ui/button',\r\n 'fx-badge': '@wrrdev/fenix-ui/badge',\r\n 'fx-spinner': '@wrrdev/fenix-ui/spinner',\r\n 'fx-select': '@wrrdev/fenix-ui/select',\r\n 'fx-multiselect': '@wrrdev/fenix-ui/multiselect',\r\n 'fx-input': '@wrrdev/fenix-ui/input',\r\n 'fx-switch': '@wrrdev/fenix-ui/switch',\r\n 'fx-calendar': '@wrrdev/fenix-ui/calendar',\r\n 'fx-datepicker': '@wrrdev/fenix-ui/datepicker',\r\n 'fx-checkbox': '@wrrdev/fenix-ui/checkbox',\r\n 'fx-radio': '@wrrdev/fenix-ui/radio',\r\n 'fx-table': '@wrrdev/fenix-ui/table',\r\n 'fx-floatlabel': '@wrrdev/fenix-ui/floatlabel',\r\n 'fx-textarea': '@wrrdev/fenix-ui/textarea',\r\n 'fx-dialog': '@wrrdev/fenix-ui/dialog',\r\n 'fx-drawer': '@wrrdev/fenix-ui/drawer',\r\n 'fx-toast': '@wrrdev/fenix-ui/toast',\r\n 'fx-tooltip': '@wrrdev/fenix-ui/tooltip',\r\n 'fx-tabs': '@wrrdev/fenix-ui/tabs',\r\n 'fx-tab-panel': '@wrrdev/fenix-ui/tabs',\r\n 'fx-progress': '@wrrdev/fenix-ui/progress',\r\n 'fx-skeleton': '@wrrdev/fenix-ui/skeleton',\r\n 'fx-alert': '@wrrdev/fenix-ui/alert',\r\n 'fx-dropdown': '@wrrdev/fenix-ui/dropdown',\r\n 'fx-dropdown-item': '@wrrdev/fenix-ui/dropdown',\r\n 'fx-pagination': '@wrrdev/fenix-ui/pagination',\r\n 'fx-autocomplete': '@wrrdev/fenix-ui/autocomplete',\r\n 'fx-knob': '@wrrdev/fenix-ui/knob',\r\n 'fx-accordion': '@wrrdev/fenix-ui/accordion',\r\n 'fx-accordion-panel': '@wrrdev/fenix-ui/accordion',\r\n 'fx-orderlist': '@wrrdev/fenix-ui/orderlist',\r\n 'fx-picklist': '@wrrdev/fenix-ui/picklist',\r\n 'fx-column': '@wrrdev/fenix-ui/table',\r\n};\r\n\r\nconst TAG_RE = /<(fx-[a-z][a-z-]*)(?=[\\s/>])/g;\r\n\r\nexport interface AutoImportOptions {\r\n /** Prefixo do pacote (padrão '@wrrdev/fenix-ui'). */\r\n packageName?: string;\r\n}\r\n\r\n/**\r\n * Injeta `import '<subpath>'` para cada componente fx-* usado no código\r\n * que ainda não foi importado. Retorna o código transformado ou o original.\r\n */\r\nexport function transformSource(code: string, options: AutoImportOptions = {}): string {\r\n const pkg = options.packageName ?? '@wrrdev/fenix-ui';\r\n // Subpaths do mapa são reescritos quando um pacote custom é informado.\r\n const resolve = (sub: string): string =>\r\n pkg === '@wrrdev/fenix-ui' ? sub : sub.replace('@wrrdev/fenix-ui', pkg);\r\n\r\n // Componentes usados e ainda não importados explicitamente.\r\n const needed = new Set<string>();\r\n for (const m of code.matchAll(TAG_RE)) {\r\n const sub = fenixComponentMap[m[1]];\r\n if (sub) {\r\n const target = resolve(sub);\r\n if (!code.includes(`'${target}'`) && !code.includes(`\"${target}\"`)) {\r\n needed.add(target);\r\n }\r\n }\r\n }\r\n if (!needed.size) return code;\r\n\r\n const lines = [...needed].map((s) => `import '${s}';`);\r\n\r\n // Arquivo único (.vue): injeta logo após a abertura do <script>.\r\n const vueScript = /(<script[^>]*>)\\n/.exec(code);\r\n if (vueScript) {\r\n return code.replace(vueScript[0], `${vueScript[1]}\\n${lines.join('\\n')}\\n`);\r\n }\r\n\r\n // TS/JS: injeta após o último import existente (ou no topo).\r\n let lastEnd = -1;\r\n for (const m of code.matchAll(/^[ \\t]*import\\b[^;]*?['\"][^'\"]+['\"];?[^\\S\\n]*$/gm)) {\r\n lastEnd = Math.max(lastEnd, m.index + m[0].length);\r\n }\r\n if (lastEnd === -1) return `${lines.join('\\n')}\\n${code}`;\r\n return `${code.slice(0, lastEnd)}\\n${lines.join('\\n')}${code.slice(lastEnd)}`;\r\n}\r\n\r\n/** Verifica se o arquivo deve ser transformado. */\r\nexport function shouldTransform(id: string): boolean {\r\n return (\r\n !id.includes('node_modules') &&\r\n !id.endsWith('.d.ts') &&\r\n !id.endsWith('.css') &&\r\n /\\.(ts|js|tsx|jsx|vue|html|svelte)$/.test(id)\r\n );\r\n}\r\n\r\n","/**\n * Plugin de AUTO-IMPORT para Vite/Rollup.\n *\n * O usuário escreve apenas `<fx-button>`, `<fx-select>` etc. no template/código;\n * este plugin detecta as tags em tempo de build e injeta os imports dos\n * subpaths correspondentes — mantendo o tree-shaking (só entra no bundle\n * o que é usado).\n *\n * Uso no projeto do cliente (vite.config.ts):\n * import { FenixAutoImport } from '@wrrdev/fenix-ui/auto-import';\n * export default { plugins: [FenixAutoImport()] };\n */\nimport {\n transformSource,\n shouldTransform,\n type AutoImportOptions,\n} from './auto-import';\n\nexport interface FenixPlugin {\n name: string;\n enforce: 'pre';\n transform: (\n code: string,\n id: string,\n ) => { code: string; map: null } | undefined;\n}\n\nexport function FenixAutoImport(options: AutoImportOptions = {}): FenixPlugin {\n return {\n name: 'fenix-ui-auto-import',\n enforce: 'pre',\n transform(code, id) {\n if (!shouldTransform(id)) return undefined;\n const result = transformSource(code, options);\n if (result === code) return undefined;\n return { code: result, map: null };\n },\n };\n}\n\nexport { transformSource, shouldTransform, fenixComponentMap } from './auto-import';\nexport type { AutoImportOptions } from './auto-import';\n"],"names":[],"mappings":"AAKO,MAAM,oBAA4C;AAAA,EACvD,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,aAAa;AACf;AAEA,MAAM,SAAS;AAWR,SAAS,gBAAgB,MAAc,UAA6B,IAAY;AACrF,QAAM,MAAM,QAAQ,eAAe;AAEnC,QAAM,UAAU,CAAC,QACf,QAAQ,qBAAqB,MAAM,IAAI,QAAQ,oBAAoB,GAAG;AAGxE,QAAM,6BAAa,IAAA;AACnB,aAAW,KAAK,KAAK,SAAS,MAAM,GAAG;AACrC,UAAM,MAAM,kBAAkB,EAAE,CAAC,CAAC;AAClC,QAAI,KAAK;AACP,YAAM,SAAS,QAAQ,GAAG;AAC1B,UAAI,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG;AAClE,eAAO,IAAI,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,KAAM,QAAO;AAEzB,QAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI;AAGrD,QAAM,YAAY,oBAAoB,KAAK,IAAI;AAC/C,MAAI,WAAW;AACb,WAAO,KAAK,QAAQ,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC;AAAA,CAAI;AAAA,EAC5E;AAGA,MAAI,UAAU;AACd,aAAW,KAAK,KAAK,SAAS,kDAAkD,GAAG;AACjF,cAAU,KAAK,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM;AAAA,EACnD;AACA,MAAI,YAAY,GAAI,QAAO,GAAG,MAAM,KAAK,IAAI,CAAC;AAAA,EAAK,IAAI;AACvD,SAAO,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,CAAC;AAC7E;AAGO,SAAS,gBAAgB,IAAqB;AACnD,SACE,CAAC,GAAG,SAAS,cAAc,KAC3B,CAAC,GAAG,SAAS,OAAO,KACpB,CAAC,GAAG,SAAS,MAAM,KACnB,qCAAqC,KAAK,EAAE;AAEhD;ACrEO,SAAS,gBAAgB,UAA6B,IAAiB;AAC5E,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,MAAM,IAAI;AAClB,UAAI,CAAC,gBAAgB,EAAE,EAAG,QAAO;AACjC,YAAM,SAAS,gBAAgB,MAAM,OAAO;AAC5C,UAAI,WAAW,KAAM,QAAO;AAC5B,aAAO,EAAE,MAAM,QAAQ,KAAK,KAAA;AAAA,IAC9B;AAAA,EAAA;AAEJ;"}
1
+ {"version":3,"file":"fenix-ui3.esm.js","sources":["../src/plugins/auto-import.ts","../src/plugins/index.ts"],"sourcesContent":["/**\n * Registro de tags → subpaths para o auto-import.\n * Mantido em um módulo próprio (sem depender de DOM) para ser usado\n * também no build do cliente via plugin.\n */\nexport const fenixComponentMap: Record<string, string> = {\n 'fx-button': '@wrrdev/fenix-ui/button',\n 'fx-badge': '@wrrdev/fenix-ui/badge',\n 'fx-spinner': '@wrrdev/fenix-ui/spinner',\n 'fx-select': '@wrrdev/fenix-ui/select',\n 'fx-multiselect': '@wrrdev/fenix-ui/multiselect',\n 'fx-input': '@wrrdev/fenix-ui/input',\n 'fx-switch': '@wrrdev/fenix-ui/switch',\n 'fx-calendar': '@wrrdev/fenix-ui/calendar',\n 'fx-datepicker': '@wrrdev/fenix-ui/datepicker',\n 'fx-checkbox': '@wrrdev/fenix-ui/checkbox',\n 'fx-radio': '@wrrdev/fenix-ui/radio',\n 'fx-table': '@wrrdev/fenix-ui/table',\n 'fx-floatlabel': '@wrrdev/fenix-ui/floatlabel',\n 'fx-textarea': '@wrrdev/fenix-ui/textarea',\n 'fx-dialog': '@wrrdev/fenix-ui/dialog',\n 'fx-drawer': '@wrrdev/fenix-ui/drawer',\n 'fx-toast': '@wrrdev/fenix-ui/toast',\n 'fx-tooltip': '@wrrdev/fenix-ui/tooltip',\n 'fx-tabs': '@wrrdev/fenix-ui/tabs',\n 'fx-tab-panel': '@wrrdev/fenix-ui/tabs',\n 'fx-progress': '@wrrdev/fenix-ui/progress',\n 'fx-skeleton': '@wrrdev/fenix-ui/skeleton',\n 'fx-alert': '@wrrdev/fenix-ui/alert',\n 'fx-dropdown': '@wrrdev/fenix-ui/dropdown',\n 'fx-dropdown-item': '@wrrdev/fenix-ui/dropdown',\n 'fx-pagination': '@wrrdev/fenix-ui/pagination',\n 'fx-autocomplete': '@wrrdev/fenix-ui/autocomplete',\n 'fx-knob': '@wrrdev/fenix-ui/knob',\n 'fx-accordion': '@wrrdev/fenix-ui/accordion',\n 'fx-accordion-panel': '@wrrdev/fenix-ui/accordion',\n 'fx-orderlist': '@wrrdev/fenix-ui/orderlist',\n 'fx-picklist': '@wrrdev/fenix-ui/picklist',\n 'fx-column': '@wrrdev/fenix-ui/table',\n};\n\nconst TAG_RE = /<(fx-[a-z][a-z-]*)(?=[\\s/>])/g;\n\nexport interface AutoImportOptions {\n /** Prefixo do pacote (padrão '@wrrdev/fenix-ui'). */\n packageName?: string;\n}\n\n/**\n * Injeta `import '<subpath>'` para cada componente fx-* usado no código\n * que ainda não foi importado. Retorna o código transformado ou o original.\n */\nexport function transformSource(code: string, options: AutoImportOptions = {}): string {\n const pkg = options.packageName ?? '@wrrdev/fenix-ui';\n // Subpaths do mapa são reescritos quando um pacote custom é informado.\n const resolve = (sub: string): string =>\n pkg === '@wrrdev/fenix-ui' ? sub : sub.replace('@wrrdev/fenix-ui', pkg);\n\n // Componentes usados e ainda não importados explicitamente.\n const needed = new Set<string>();\n for (const m of code.matchAll(TAG_RE)) {\n const sub = fenixComponentMap[m[1]];\n if (sub) {\n const target = resolve(sub);\n if (!code.includes(`'${target}'`) && !code.includes(`\"${target}\"`)) {\n needed.add(target);\n }\n }\n }\n if (!needed.size) return code;\n\n const lines = [...needed].map((s) => `import '${s}';`);\n\n // Arquivo único (.vue): injeta logo após a abertura do <script>.\n const vueScript = /(<script[^>]*>)\\n/.exec(code);\n if (vueScript) {\n return code.replace(vueScript[0], `${vueScript[1]}\\n${lines.join('\\n')}\\n`);\n }\n\n // TS/JS: injeta após o último import existente (ou no topo).\n let lastEnd = -1;\n for (const m of code.matchAll(/^[ \\t]*import\\b[^;]*?['\"][^'\"]+['\"];?[^\\S\\n]*$/gm)) {\n lastEnd = Math.max(lastEnd, m.index + m[0].length);\n }\n if (lastEnd === -1) return `${lines.join('\\n')}\\n${code}`;\n return `${code.slice(0, lastEnd)}\\n${lines.join('\\n')}${code.slice(lastEnd)}`;\n}\n\n/** Verifica se o arquivo deve ser transformado. */\nexport function shouldTransform(id: string): boolean {\n return (\n !id.includes('node_modules') &&\n !id.endsWith('.d.ts') &&\n !id.endsWith('.css') &&\n /\\.(ts|js|tsx|jsx|vue|html|svelte)$/.test(id)\n );\n}\n\n","/**\n * Plugin de AUTO-IMPORT para Vite/Rollup.\n *\n * O usuário escreve apenas `<fx-button>`, `<fx-select>` etc. no template/código;\n * este plugin detecta as tags em tempo de build e injeta os imports dos\n * subpaths correspondentes — mantendo o tree-shaking (só entra no bundle\n * o que é usado).\n *\n * Uso no projeto do cliente (vite.config.ts):\n * import { FenixAutoImport } from '@wrrdev/fenix-ui/auto-import';\n * export default { plugins: [FenixAutoImport()] };\n */\nimport {\n transformSource,\n shouldTransform,\n type AutoImportOptions,\n} from './auto-import';\n\nexport interface FenixPlugin {\n name: string;\n enforce: 'pre';\n transform: (\n code: string,\n id: string,\n ) => { code: string; map: null } | undefined;\n}\n\nexport function FenixAutoImport(options: AutoImportOptions = {}): FenixPlugin {\n return {\n name: 'fenix-ui-auto-import',\n enforce: 'pre',\n transform(code, id) {\n if (!shouldTransform(id)) return undefined;\n const result = transformSource(code, options);\n if (result === code) return undefined;\n return { code: result, map: null };\n },\n };\n}\n\nexport { transformSource, shouldTransform, fenixComponentMap } from './auto-import';\nexport type { AutoImportOptions } from './auto-import';\n"],"names":[],"mappings":"AAKO,MAAM,oBAA4C;AAAA,EACvD,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,aAAa;AACf;AAEA,MAAM,SAAS;AAWR,SAAS,gBAAgB,MAAc,UAA6B,IAAY;AACrF,QAAM,MAAM,QAAQ,eAAe;AAEnC,QAAM,UAAU,CAAC,QACf,QAAQ,qBAAqB,MAAM,IAAI,QAAQ,oBAAoB,GAAG;AAGxE,QAAM,6BAAa,IAAA;AACnB,aAAW,KAAK,KAAK,SAAS,MAAM,GAAG;AACrC,UAAM,MAAM,kBAAkB,EAAE,CAAC,CAAC;AAClC,QAAI,KAAK;AACP,YAAM,SAAS,QAAQ,GAAG;AAC1B,UAAI,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG;AAClE,eAAO,IAAI,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,KAAM,QAAO;AAEzB,QAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI;AAGrD,QAAM,YAAY,oBAAoB,KAAK,IAAI;AAC/C,MAAI,WAAW;AACb,WAAO,KAAK,QAAQ,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC;AAAA,CAAI;AAAA,EAC5E;AAGA,MAAI,UAAU;AACd,aAAW,KAAK,KAAK,SAAS,kDAAkD,GAAG;AACjF,cAAU,KAAK,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM;AAAA,EACnD;AACA,MAAI,YAAY,GAAI,QAAO,GAAG,MAAM,KAAK,IAAI,CAAC;AAAA,EAAK,IAAI;AACvD,SAAO,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,CAAC;AAC7E;AAGO,SAAS,gBAAgB,IAAqB;AACnD,SACE,CAAC,GAAG,SAAS,cAAc,KAC3B,CAAC,GAAG,SAAS,OAAO,KACpB,CAAC,GAAG,SAAS,MAAM,KACnB,qCAAqC,KAAK,EAAE;AAEhD;ACrEO,SAAS,gBAAgB,UAA6B,IAAiB;AAC5E,SAAO;AAAA,IACL,MAAM;AAAA,IACN,SAAS;AAAA,IACT,UAAU,MAAM,IAAI;AAClB,UAAI,CAAC,gBAAgB,EAAE,EAAG,QAAO;AACjC,YAAM,SAAS,gBAAgB,MAAM,OAAO;AAC5C,UAAI,WAAW,KAAM,QAAO;AAC5B,aAAO,EAAE,MAAM,QAAQ,KAAK,KAAA;AAAA,IAC9B;AAAA,EAAA;AAEJ;"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Entrada principal do FenixUI.
3
3
  *
4
- * Ao importar este agregador, todos os componentes são registrados (bundle
4
+ * Ao importar este agregador, todos os componentes s�o registrados (bundle
5
5
  * "tudo-em-um"). Para consumo com TREE-SHAKING, prefira importar apenas o
6
6
  * subpath que deseja, ex.: `@wrrdev/fenix-ui/button`.
7
7
  */
@@ -11,6 +11,7 @@ export * from './core/presets';
11
11
  export * from './core/css';
12
12
  export * from './core/base';
13
13
  export * from './core/define';
14
+ export * from './core/sanitize';
14
15
  export * from './core/types';
15
16
  export * from './core/jsx';
16
17
  export * from './components/button';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAG9B,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAG3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAGH,cAAc,eAAe,CAAC;AAC9B,cAAc,cAAc,CAAC;AAC7B,cAAc,gBAAgB,CAAC;AAC/B,cAAc,YAAY,CAAC;AAC3B,cAAc,aAAa,CAAC;AAC5B,cAAc,eAAe,CAAC;AAC9B,cAAc,iBAAiB,CAAC;AAGhC,cAAc,cAAc,CAAC;AAC7B,cAAc,YAAY,CAAC;AAG3B,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,qBAAqB,CAAC;AACpC,cAAc,0BAA0B,CAAC;AACzC,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,oBAAoB,CAAC;AACnC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,oBAAoB,CAAC;AACnC,cAAc,sBAAsB,CAAC;AACrC,cAAc,mBAAmB,CAAC;AAClC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,mBAAmB,CAAC;AAClC,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -4,6 +4,7 @@ import { applyPreset, defineCustomPreset, listPresets, themePresets } from "./co
4
4
  import { css, kebabToCamel } from "./core/css.js";
5
5
  import { FxElement } from "./core/base.js";
6
6
  import { defineElement } from "./core/define.js";
7
+ import { esc, sanitizeData, stripTags } from "./core/sanitize.js";
7
8
  import { FX_JSX_TYPES } from "./core/jsx.js";
8
9
  import "./components/button/index.js";
9
10
  import "./components/badge/index.js";
@@ -113,11 +114,14 @@ export {
113
114
  defineElement,
114
115
  defineFxTooltipDirective,
115
116
  destroyFxTooltipDirective,
117
+ esc,
116
118
  kebabToCamel,
117
119
  lightTokens,
118
120
  listPresets,
119
121
  resetTheme,
122
+ sanitizeData,
120
123
  setTokens,
124
+ stripTags,
121
125
  theme,
122
126
  themePresets,
123
127
  tokenCssVars
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"auto-import.js","sources":["../../src/plugins/auto-import.ts"],"sourcesContent":["/**\r\n * Registro de tags → subpaths para o auto-import.\r\n * Mantido em um módulo próprio (sem depender de DOM) para ser usado\r\n * também no build do cliente via plugin.\r\n */\r\nexport const fenixComponentMap: Record<string, string> = {\r\n 'fx-button': '@wrrdev/fenix-ui/button',\r\n 'fx-badge': '@wrrdev/fenix-ui/badge',\r\n 'fx-spinner': '@wrrdev/fenix-ui/spinner',\r\n 'fx-select': '@wrrdev/fenix-ui/select',\r\n 'fx-multiselect': '@wrrdev/fenix-ui/multiselect',\r\n 'fx-input': '@wrrdev/fenix-ui/input',\r\n 'fx-switch': '@wrrdev/fenix-ui/switch',\r\n 'fx-calendar': '@wrrdev/fenix-ui/calendar',\r\n 'fx-datepicker': '@wrrdev/fenix-ui/datepicker',\r\n 'fx-checkbox': '@wrrdev/fenix-ui/checkbox',\r\n 'fx-radio': '@wrrdev/fenix-ui/radio',\r\n 'fx-table': '@wrrdev/fenix-ui/table',\r\n 'fx-floatlabel': '@wrrdev/fenix-ui/floatlabel',\r\n 'fx-textarea': '@wrrdev/fenix-ui/textarea',\r\n 'fx-dialog': '@wrrdev/fenix-ui/dialog',\r\n 'fx-drawer': '@wrrdev/fenix-ui/drawer',\r\n 'fx-toast': '@wrrdev/fenix-ui/toast',\r\n 'fx-tooltip': '@wrrdev/fenix-ui/tooltip',\r\n 'fx-tabs': '@wrrdev/fenix-ui/tabs',\r\n 'fx-tab-panel': '@wrrdev/fenix-ui/tabs',\r\n 'fx-progress': '@wrrdev/fenix-ui/progress',\r\n 'fx-skeleton': '@wrrdev/fenix-ui/skeleton',\r\n 'fx-alert': '@wrrdev/fenix-ui/alert',\r\n 'fx-dropdown': '@wrrdev/fenix-ui/dropdown',\r\n 'fx-dropdown-item': '@wrrdev/fenix-ui/dropdown',\r\n 'fx-pagination': '@wrrdev/fenix-ui/pagination',\r\n 'fx-autocomplete': '@wrrdev/fenix-ui/autocomplete',\r\n 'fx-knob': '@wrrdev/fenix-ui/knob',\r\n 'fx-accordion': '@wrrdev/fenix-ui/accordion',\r\n 'fx-accordion-panel': '@wrrdev/fenix-ui/accordion',\r\n 'fx-orderlist': '@wrrdev/fenix-ui/orderlist',\r\n 'fx-picklist': '@wrrdev/fenix-ui/picklist',\r\n 'fx-column': '@wrrdev/fenix-ui/table',\r\n};\r\n\r\nconst TAG_RE = /<(fx-[a-z][a-z-]*)(?=[\\s/>])/g;\r\n\r\nexport interface AutoImportOptions {\r\n /** Prefixo do pacote (padrão '@wrrdev/fenix-ui'). */\r\n packageName?: string;\r\n}\r\n\r\n/**\r\n * Injeta `import '<subpath>'` para cada componente fx-* usado no código\r\n * que ainda não foi importado. Retorna o código transformado ou o original.\r\n */\r\nexport function transformSource(code: string, options: AutoImportOptions = {}): string {\r\n const pkg = options.packageName ?? '@wrrdev/fenix-ui';\r\n // Subpaths do mapa são reescritos quando um pacote custom é informado.\r\n const resolve = (sub: string): string =>\r\n pkg === '@wrrdev/fenix-ui' ? sub : sub.replace('@wrrdev/fenix-ui', pkg);\r\n\r\n // Componentes usados e ainda não importados explicitamente.\r\n const needed = new Set<string>();\r\n for (const m of code.matchAll(TAG_RE)) {\r\n const sub = fenixComponentMap[m[1]];\r\n if (sub) {\r\n const target = resolve(sub);\r\n if (!code.includes(`'${target}'`) && !code.includes(`\"${target}\"`)) {\r\n needed.add(target);\r\n }\r\n }\r\n }\r\n if (!needed.size) return code;\r\n\r\n const lines = [...needed].map((s) => `import '${s}';`);\r\n\r\n // Arquivo único (.vue): injeta logo após a abertura do <script>.\r\n const vueScript = /(<script[^>]*>)\\n/.exec(code);\r\n if (vueScript) {\r\n return code.replace(vueScript[0], `${vueScript[1]}\\n${lines.join('\\n')}\\n`);\r\n }\r\n\r\n // TS/JS: injeta após o último import existente (ou no topo).\r\n let lastEnd = -1;\r\n for (const m of code.matchAll(/^[ \\t]*import\\b[^;]*?['\"][^'\"]+['\"];?[^\\S\\n]*$/gm)) {\r\n lastEnd = Math.max(lastEnd, m.index + m[0].length);\r\n }\r\n if (lastEnd === -1) return `${lines.join('\\n')}\\n${code}`;\r\n return `${code.slice(0, lastEnd)}\\n${lines.join('\\n')}${code.slice(lastEnd)}`;\r\n}\r\n\r\n/** Verifica se o arquivo deve ser transformado. */\r\nexport function shouldTransform(id: string): boolean {\r\n return (\r\n !id.includes('node_modules') &&\r\n !id.endsWith('.d.ts') &&\r\n !id.endsWith('.css') &&\r\n /\\.(ts|js|tsx|jsx|vue|html|svelte)$/.test(id)\r\n );\r\n}\r\n\r\n"],"names":[],"mappings":"AAKO,MAAM,oBAA4C;AAAA,EACvD,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,aAAa;AACf;AAEA,MAAM,SAAS;AAWR,SAAS,gBAAgB,MAAc,UAA6B,IAAY;AACrF,QAAM,MAAM,QAAQ,eAAe;AAEnC,QAAM,UAAU,CAAC,QACf,QAAQ,qBAAqB,MAAM,IAAI,QAAQ,oBAAoB,GAAG;AAGxE,QAAM,6BAAa,IAAA;AACnB,aAAW,KAAK,KAAK,SAAS,MAAM,GAAG;AACrC,UAAM,MAAM,kBAAkB,EAAE,CAAC,CAAC;AAClC,QAAI,KAAK;AACP,YAAM,SAAS,QAAQ,GAAG;AAC1B,UAAI,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG;AAClE,eAAO,IAAI,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,KAAM,QAAO;AAEzB,QAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI;AAGrD,QAAM,YAAY,oBAAoB,KAAK,IAAI;AAC/C,MAAI,WAAW;AACb,WAAO,KAAK,QAAQ,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC;AAAA,CAAI;AAAA,EAC5E;AAGA,MAAI,UAAU;AACd,aAAW,KAAK,KAAK,SAAS,kDAAkD,GAAG;AACjF,cAAU,KAAK,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM;AAAA,EACnD;AACA,MAAI,YAAY,GAAI,QAAO,GAAG,MAAM,KAAK,IAAI,CAAC;AAAA,EAAK,IAAI;AACvD,SAAO,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,CAAC;AAC7E;AAGO,SAAS,gBAAgB,IAAqB;AACnD,SACE,CAAC,GAAG,SAAS,cAAc,KAC3B,CAAC,GAAG,SAAS,OAAO,KACpB,CAAC,GAAG,SAAS,MAAM,KACnB,qCAAqC,KAAK,EAAE;AAEhD;"}
1
+ {"version":3,"file":"auto-import.js","sources":["../../src/plugins/auto-import.ts"],"sourcesContent":["/**\n * Registro de tags → subpaths para o auto-import.\n * Mantido em um módulo próprio (sem depender de DOM) para ser usado\n * também no build do cliente via plugin.\n */\nexport const fenixComponentMap: Record<string, string> = {\n 'fx-button': '@wrrdev/fenix-ui/button',\n 'fx-badge': '@wrrdev/fenix-ui/badge',\n 'fx-spinner': '@wrrdev/fenix-ui/spinner',\n 'fx-select': '@wrrdev/fenix-ui/select',\n 'fx-multiselect': '@wrrdev/fenix-ui/multiselect',\n 'fx-input': '@wrrdev/fenix-ui/input',\n 'fx-switch': '@wrrdev/fenix-ui/switch',\n 'fx-calendar': '@wrrdev/fenix-ui/calendar',\n 'fx-datepicker': '@wrrdev/fenix-ui/datepicker',\n 'fx-checkbox': '@wrrdev/fenix-ui/checkbox',\n 'fx-radio': '@wrrdev/fenix-ui/radio',\n 'fx-table': '@wrrdev/fenix-ui/table',\n 'fx-floatlabel': '@wrrdev/fenix-ui/floatlabel',\n 'fx-textarea': '@wrrdev/fenix-ui/textarea',\n 'fx-dialog': '@wrrdev/fenix-ui/dialog',\n 'fx-drawer': '@wrrdev/fenix-ui/drawer',\n 'fx-toast': '@wrrdev/fenix-ui/toast',\n 'fx-tooltip': '@wrrdev/fenix-ui/tooltip',\n 'fx-tabs': '@wrrdev/fenix-ui/tabs',\n 'fx-tab-panel': '@wrrdev/fenix-ui/tabs',\n 'fx-progress': '@wrrdev/fenix-ui/progress',\n 'fx-skeleton': '@wrrdev/fenix-ui/skeleton',\n 'fx-alert': '@wrrdev/fenix-ui/alert',\n 'fx-dropdown': '@wrrdev/fenix-ui/dropdown',\n 'fx-dropdown-item': '@wrrdev/fenix-ui/dropdown',\n 'fx-pagination': '@wrrdev/fenix-ui/pagination',\n 'fx-autocomplete': '@wrrdev/fenix-ui/autocomplete',\n 'fx-knob': '@wrrdev/fenix-ui/knob',\n 'fx-accordion': '@wrrdev/fenix-ui/accordion',\n 'fx-accordion-panel': '@wrrdev/fenix-ui/accordion',\n 'fx-orderlist': '@wrrdev/fenix-ui/orderlist',\n 'fx-picklist': '@wrrdev/fenix-ui/picklist',\n 'fx-column': '@wrrdev/fenix-ui/table',\n};\n\nconst TAG_RE = /<(fx-[a-z][a-z-]*)(?=[\\s/>])/g;\n\nexport interface AutoImportOptions {\n /** Prefixo do pacote (padrão '@wrrdev/fenix-ui'). */\n packageName?: string;\n}\n\n/**\n * Injeta `import '<subpath>'` para cada componente fx-* usado no código\n * que ainda não foi importado. Retorna o código transformado ou o original.\n */\nexport function transformSource(code: string, options: AutoImportOptions = {}): string {\n const pkg = options.packageName ?? '@wrrdev/fenix-ui';\n // Subpaths do mapa são reescritos quando um pacote custom é informado.\n const resolve = (sub: string): string =>\n pkg === '@wrrdev/fenix-ui' ? sub : sub.replace('@wrrdev/fenix-ui', pkg);\n\n // Componentes usados e ainda não importados explicitamente.\n const needed = new Set<string>();\n for (const m of code.matchAll(TAG_RE)) {\n const sub = fenixComponentMap[m[1]];\n if (sub) {\n const target = resolve(sub);\n if (!code.includes(`'${target}'`) && !code.includes(`\"${target}\"`)) {\n needed.add(target);\n }\n }\n }\n if (!needed.size) return code;\n\n const lines = [...needed].map((s) => `import '${s}';`);\n\n // Arquivo único (.vue): injeta logo após a abertura do <script>.\n const vueScript = /(<script[^>]*>)\\n/.exec(code);\n if (vueScript) {\n return code.replace(vueScript[0], `${vueScript[1]}\\n${lines.join('\\n')}\\n`);\n }\n\n // TS/JS: injeta após o último import existente (ou no topo).\n let lastEnd = -1;\n for (const m of code.matchAll(/^[ \\t]*import\\b[^;]*?['\"][^'\"]+['\"];?[^\\S\\n]*$/gm)) {\n lastEnd = Math.max(lastEnd, m.index + m[0].length);\n }\n if (lastEnd === -1) return `${lines.join('\\n')}\\n${code}`;\n return `${code.slice(0, lastEnd)}\\n${lines.join('\\n')}${code.slice(lastEnd)}`;\n}\n\n/** Verifica se o arquivo deve ser transformado. */\nexport function shouldTransform(id: string): boolean {\n return (\n !id.includes('node_modules') &&\n !id.endsWith('.d.ts') &&\n !id.endsWith('.css') &&\n /\\.(ts|js|tsx|jsx|vue|html|svelte)$/.test(id)\n );\n}\n\n"],"names":[],"mappings":"AAKO,MAAM,oBAA4C;AAAA,EACvD,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,aAAa;AAAA,EACb,kBAAkB;AAAA,EAClB,YAAY;AAAA,EACZ,aAAa;AAAA,EACb,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,aAAa;AAAA,EACb,aAAa;AAAA,EACb,YAAY;AAAA,EACZ,cAAc;AAAA,EACd,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,eAAe;AAAA,EACf,oBAAoB;AAAA,EACpB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,WAAW;AAAA,EACX,gBAAgB;AAAA,EAChB,sBAAsB;AAAA,EACtB,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,aAAa;AACf;AAEA,MAAM,SAAS;AAWR,SAAS,gBAAgB,MAAc,UAA6B,IAAY;AACrF,QAAM,MAAM,QAAQ,eAAe;AAEnC,QAAM,UAAU,CAAC,QACf,QAAQ,qBAAqB,MAAM,IAAI,QAAQ,oBAAoB,GAAG;AAGxE,QAAM,6BAAa,IAAA;AACnB,aAAW,KAAK,KAAK,SAAS,MAAM,GAAG;AACrC,UAAM,MAAM,kBAAkB,EAAE,CAAC,CAAC;AAClC,QAAI,KAAK;AACP,YAAM,SAAS,QAAQ,GAAG;AAC1B,UAAI,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,KAAK,CAAC,KAAK,SAAS,IAAI,MAAM,GAAG,GAAG;AAClE,eAAO,IAAI,MAAM;AAAA,MACnB;AAAA,IACF;AAAA,EACF;AACA,MAAI,CAAC,OAAO,KAAM,QAAO;AAEzB,QAAM,QAAQ,CAAC,GAAG,MAAM,EAAE,IAAI,CAAC,MAAM,WAAW,CAAC,IAAI;AAGrD,QAAM,YAAY,oBAAoB,KAAK,IAAI;AAC/C,MAAI,WAAW;AACb,WAAO,KAAK,QAAQ,UAAU,CAAC,GAAG,GAAG,UAAU,CAAC,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC;AAAA,CAAI;AAAA,EAC5E;AAGA,MAAI,UAAU;AACd,aAAW,KAAK,KAAK,SAAS,kDAAkD,GAAG;AACjF,cAAU,KAAK,IAAI,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,MAAM;AAAA,EACnD;AACA,MAAI,YAAY,GAAI,QAAO,GAAG,MAAM,KAAK,IAAI,CAAC;AAAA,EAAK,IAAI;AACvD,SAAO,GAAG,KAAK,MAAM,GAAG,OAAO,CAAC;AAAA,EAAK,MAAM,KAAK,IAAI,CAAC,GAAG,KAAK,MAAM,OAAO,CAAC;AAC7E;AAGO,SAAS,gBAAgB,IAAqB;AACnD,SACE,CAAC,GAAG,SAAS,cAAc,KAC3B,CAAC,GAAG,SAAS,OAAO,KACpB,CAAC,GAAG,SAAS,MAAM,KACnB,qCAAqC,KAAK,EAAE;AAEhD;"}
package/package.json CHANGED
@@ -1,212 +1,212 @@
1
- {
2
- "name": "@wrrdev/fenix-ui",
3
- "version": "1.0.14",
4
- "description": "FenixUI Design System Web nativo (Web Components + Shadow DOM + Design Tokens) com tree-shaking por componente.",
5
- "type": "module",
6
- "license": "ISC",
7
- "homepage": "https://wesley-reis.github.io/FenixUI/",
8
- "repository": {
9
- "type": "git",
10
- "url": "https://github.com/wesley-reis/FenixUI.git"
11
- },
12
- "bugs": {
13
- "url": "https://github.com/wesley-reis/FenixUI/issues"
14
- },
15
- "keywords": [
16
- "UI",
17
- "UX",
18
- "Componentes",
19
- "Fenix",
20
- "FenixUI"
21
- ],
22
- "files": [
23
- "dist",
24
- "README.md"
25
- ],
26
- "publishConfig": {
27
- "access": "public",
28
- "tag": "latest"
29
- },
30
- "main": "./dist/index.js",
31
- "module": "./dist/index.js",
32
- "types": "./dist/index.d.ts",
33
- "scripts": {
34
- "dev": "vite",
35
- "build": "npm run prepack && npm run build:esm && npm run build:types && npm run build:cdn",
36
- "build:esm": "vite build --config vite.config.ts",
37
- "build:types": "tsc -p tsconfig.build.json",
38
- "build:cdn": "vite build --config vite.cdn.config.ts",
39
- "build:docs": "vite build --config vite.docs.config.ts && node -e \"require('fs').writeFileSync('docs-dist/.nojekyll', '')\"",
40
- "preview": "vite preview",
41
- "typecheck": "tsc --noEmit",
42
- "test": "vitest run",
43
- "test:watch": "vitest",
44
- "prepack": "node scripts/update-readme-version.cjs",
45
- "publish": "npm publish --access public --tag latest"
46
- },
47
- "devDependencies": {
48
- "@babel/types": "^8.0.4",
49
- "@types/node": "^22.7.4",
50
- "jsdom": "^25.0.1",
51
- "typescript": "^5.6.2",
52
- "vite": "^5.4.8",
53
- "vitest": "^2.1.2",
54
- "vue": "^3.5.13",
55
- "vue-tsc": "^3.0.4"
56
- },
57
- "dependencies": {
58
- "postcss": "^8.5.26"
59
- },
60
- "exports": {
61
- ".": {
62
- "types": "./dist/index.d.ts",
63
- "import": "./dist/index.js"
64
- },
65
- "./theme": {
66
- "types": "./dist/core/theme.d.ts",
67
- "import": "./dist/core/theme.js"
68
- },
69
- "./tokens": {
70
- "types": "./dist/core/tokens.d.ts",
71
- "import": "./dist/core/tokens.js"
72
- },
73
- "./button": {
74
- "types": "./dist/components/button/index.d.ts",
75
- "import": "./dist/components/button/index.js"
76
- },
77
- "./accordion": {
78
- "types": "./dist/components/accordion/index.d.ts",
79
- "import": "./dist/components/accordion/index.js"
80
- },
81
- "./badge": {
82
- "types": "./dist/components/badge/index.d.ts",
83
- "import": "./dist/components/badge/index.js"
84
- },
85
- "./spinner": {
86
- "types": "./dist/components/spinner/index.d.ts",
87
- "import": "./dist/components/spinner/index.js"
88
- },
89
- "./select": {
90
- "types": "./dist/components/select/index.d.ts",
91
- "import": "./dist/components/select/index.js"
92
- },
93
- "./input": {
94
- "types": "./dist/components/input/index.d.ts",
95
- "import": "./dist/components/input/index.js"
96
- },
97
- "./switch": {
98
- "types": "./dist/components/switch/index.d.ts",
99
- "import": "./dist/components/switch/index.js"
100
- },
101
- "./calendar": {
102
- "types": "./dist/components/calendar/index.d.ts",
103
- "import": "./dist/components/calendar/index.js"
104
- },
105
- "./checkbox": {
106
- "types": "./dist/components/checkbox/index.d.ts",
107
- "import": "./dist/components/checkbox/index.js"
108
- },
109
- "./radio": {
110
- "types": "./dist/components/radio/index.d.ts",
111
- "import": "./dist/components/radio/index.js"
112
- },
113
- "./floatlabel": {
114
- "types": "./dist/components/floatlabel/index.d.ts",
115
- "import": "./dist/components/floatlabel/index.js"
116
- },
117
- "./textarea": {
118
- "types": "./dist/components/textarea/index.d.ts",
119
- "import": "./dist/components/textarea/index.js"
120
- },
121
- "./dialog": {
122
- "types": "./dist/components/dialog/index.d.ts",
123
- "import": "./dist/components/dialog/index.js"
124
- },
125
- "./toast": {
126
- "types": "./dist/components/toast/index.d.ts",
127
- "import": "./dist/components/toast/index.js"
128
- },
129
- "./tooltip": {
130
- "types": "./dist/components/tooltip/index.d.ts",
131
- "import": "./dist/components/tooltip/index.js"
132
- },
133
- "./tabs": {
134
- "types": "./dist/components/tabs/index.d.ts",
135
- "import": "./dist/components/tabs/index.js"
136
- },
137
- "./progress": {
138
- "types": "./dist/components/progress/index.d.ts",
139
- "import": "./dist/components/progress/index.js"
140
- },
141
- "./skeleton": {
142
- "types": "./dist/components/skeleton/index.d.ts",
143
- "import": "./dist/components/skeleton/index.js"
144
- },
145
- "./alert": {
146
- "types": "./dist/components/alert/index.d.ts",
147
- "import": "./dist/components/alert/index.js"
148
- },
149
- "./drawer": {
150
- "types": "./dist/components/drawer/index.d.ts",
151
- "import": "./dist/components/drawer/index.js",
152
- "require": "./dist/components/drawer/index.js"
153
- },
154
- "./dropdown": {
155
- "types": "./dist/components/dropdown/index.d.ts",
156
- "import": "./dist/components/dropdown/index.js"
157
- },
158
- "./sidebar": {
159
- "types": "./dist/components/sidebar/index.d.ts",
160
- "import": "./dist/components/sidebar/index.js"
161
- },
162
- "./pagination": {
163
- "types": "./dist/components/pagination/index.d.ts",
164
- "import": "./dist/components/pagination/index.js"
165
- },
166
- "./autocomplete": {
167
- "types": "./dist/components/autocomplete/index.d.ts",
168
- "import": "./dist/components/autocomplete/index.js"
169
- },
170
- "./knob": {
171
- "types": "./dist/components/knob/index.d.ts",
172
- "import": "./dist/components/knob/index.js"
173
- },
174
- "./orderlist": {
175
- "types": "./dist/components/orderlist/index.d.ts",
176
- "import": "./dist/components/orderlist/index.js"
177
- },
178
- "./picklist": {
179
- "types": "./dist/components/picklist/index.d.ts",
180
- "import": "./dist/components/picklist/index.js"
181
- },
182
- "./table": {
183
- "types": "./dist/components/table/index.d.ts",
184
- "import": "./dist/components/table/index.js"
185
- },
186
- "./datepicker": {
187
- "types": "./dist/components/datepicker/index.d.ts",
188
- "import": "./dist/components/datepicker/index.js"
189
- },
190
- "./multiselect": {
191
- "types": "./dist/components/multiselect/index.d.ts",
192
- "import": "./dist/components/multiselect/index.js"
193
- },
194
- "./auto-import": {
195
- "types": "./dist/plugins/index.d.ts",
196
- "import": "./dist/plugins/index.js"
197
- },
198
- "./jsx": {
199
- "types": "./dist/core/jsx.d.ts",
200
- "import": "./dist/core/jsx.js"
201
- },
202
- "./vue": {
203
- "types": "./dist/core/vue.d.ts",
204
- "import": "./dist/core/vue.js"
205
- },
206
- "./components/*": {
207
- "types": "./dist/components/*/index.d.ts",
208
- "import": "./dist/components/*/index.js"
209
- },
210
- "./dist/*": "./dist/*"
211
- }
212
- }
1
+ {
2
+ "name": "@wrrdev/fenix-ui",
3
+ "version": "1.0.15",
4
+ "description": "FenixUI Design System Web nativo (Web Components + Shadow DOM + Design Tokens) com tree-shaking por componente.",
5
+ "type": "module",
6
+ "license": "ISC",
7
+ "homepage": "https://wesley-reis.github.io/FenixUI/",
8
+ "repository": {
9
+ "type": "git",
10
+ "url": "https://github.com/wesley-reis/FenixUI.git"
11
+ },
12
+ "bugs": {
13
+ "url": "https://github.com/wesley-reis/FenixUI/issues"
14
+ },
15
+ "keywords": [
16
+ "UI",
17
+ "UX",
18
+ "Componentes",
19
+ "Fenix",
20
+ "FenixUI"
21
+ ],
22
+ "files": [
23
+ "dist",
24
+ "README.md"
25
+ ],
26
+ "publishConfig": {
27
+ "access": "public",
28
+ "tag": "latest"
29
+ },
30
+ "main": "./dist/index.js",
31
+ "module": "./dist/index.js",
32
+ "types": "./dist/index.d.ts",
33
+ "scripts": {
34
+ "dev": "vite",
35
+ "build": "npm run prepack && npm run build:esm && npm run build:types && npm run build:cdn",
36
+ "build:esm": "vite build --config vite.config.ts",
37
+ "build:types": "tsc -p tsconfig.build.json",
38
+ "build:cdn": "vite build --config vite.cdn.config.ts",
39
+ "build:docs": "vite build --config vite.docs.config.ts && node -e \"require('fs').writeFileSync('docs-dist/.nojekyll', '')\"",
40
+ "preview": "vite preview",
41
+ "typecheck": "tsc --noEmit",
42
+ "test": "vitest run",
43
+ "test:watch": "vitest",
44
+ "prepack": "node scripts/update-readme-version.cjs",
45
+ "publish": "npm publish --access public --tag latest"
46
+ },
47
+ "devDependencies": {
48
+ "@babel/types": "^8.0.4",
49
+ "@types/node": "^22.7.4",
50
+ "jsdom": "^25.0.1",
51
+ "typescript": "^5.6.2",
52
+ "vite": "^5.4.8",
53
+ "vitest": "^2.1.2",
54
+ "vue": "^3.5.13",
55
+ "vue-tsc": "^3.0.4"
56
+ },
57
+ "dependencies": {
58
+ "postcss": "^8.5.26"
59
+ },
60
+ "exports": {
61
+ ".": {
62
+ "types": "./dist/index.d.ts",
63
+ "import": "./dist/index.js"
64
+ },
65
+ "./theme": {
66
+ "types": "./dist/core/theme.d.ts",
67
+ "import": "./dist/core/theme.js"
68
+ },
69
+ "./tokens": {
70
+ "types": "./dist/core/tokens.d.ts",
71
+ "import": "./dist/core/tokens.js"
72
+ },
73
+ "./button": {
74
+ "types": "./dist/components/button/index.d.ts",
75
+ "import": "./dist/components/button/index.js"
76
+ },
77
+ "./accordion": {
78
+ "types": "./dist/components/accordion/index.d.ts",
79
+ "import": "./dist/components/accordion/index.js"
80
+ },
81
+ "./badge": {
82
+ "types": "./dist/components/badge/index.d.ts",
83
+ "import": "./dist/components/badge/index.js"
84
+ },
85
+ "./spinner": {
86
+ "types": "./dist/components/spinner/index.d.ts",
87
+ "import": "./dist/components/spinner/index.js"
88
+ },
89
+ "./select": {
90
+ "types": "./dist/components/select/index.d.ts",
91
+ "import": "./dist/components/select/index.js"
92
+ },
93
+ "./input": {
94
+ "types": "./dist/components/input/index.d.ts",
95
+ "import": "./dist/components/input/index.js"
96
+ },
97
+ "./switch": {
98
+ "types": "./dist/components/switch/index.d.ts",
99
+ "import": "./dist/components/switch/index.js"
100
+ },
101
+ "./calendar": {
102
+ "types": "./dist/components/calendar/index.d.ts",
103
+ "import": "./dist/components/calendar/index.js"
104
+ },
105
+ "./checkbox": {
106
+ "types": "./dist/components/checkbox/index.d.ts",
107
+ "import": "./dist/components/checkbox/index.js"
108
+ },
109
+ "./radio": {
110
+ "types": "./dist/components/radio/index.d.ts",
111
+ "import": "./dist/components/radio/index.js"
112
+ },
113
+ "./floatlabel": {
114
+ "types": "./dist/components/floatlabel/index.d.ts",
115
+ "import": "./dist/components/floatlabel/index.js"
116
+ },
117
+ "./textarea": {
118
+ "types": "./dist/components/textarea/index.d.ts",
119
+ "import": "./dist/components/textarea/index.js"
120
+ },
121
+ "./dialog": {
122
+ "types": "./dist/components/dialog/index.d.ts",
123
+ "import": "./dist/components/dialog/index.js"
124
+ },
125
+ "./toast": {
126
+ "types": "./dist/components/toast/index.d.ts",
127
+ "import": "./dist/components/toast/index.js"
128
+ },
129
+ "./tooltip": {
130
+ "types": "./dist/components/tooltip/index.d.ts",
131
+ "import": "./dist/components/tooltip/index.js"
132
+ },
133
+ "./tabs": {
134
+ "types": "./dist/components/tabs/index.d.ts",
135
+ "import": "./dist/components/tabs/index.js"
136
+ },
137
+ "./progress": {
138
+ "types": "./dist/components/progress/index.d.ts",
139
+ "import": "./dist/components/progress/index.js"
140
+ },
141
+ "./skeleton": {
142
+ "types": "./dist/components/skeleton/index.d.ts",
143
+ "import": "./dist/components/skeleton/index.js"
144
+ },
145
+ "./alert": {
146
+ "types": "./dist/components/alert/index.d.ts",
147
+ "import": "./dist/components/alert/index.js"
148
+ },
149
+ "./drawer": {
150
+ "types": "./dist/components/drawer/index.d.ts",
151
+ "import": "./dist/components/drawer/index.js",
152
+ "require": "./dist/components/drawer/index.js"
153
+ },
154
+ "./dropdown": {
155
+ "types": "./dist/components/dropdown/index.d.ts",
156
+ "import": "./dist/components/dropdown/index.js"
157
+ },
158
+ "./sidebar": {
159
+ "types": "./dist/components/sidebar/index.d.ts",
160
+ "import": "./dist/components/sidebar/index.js"
161
+ },
162
+ "./pagination": {
163
+ "types": "./dist/components/pagination/index.d.ts",
164
+ "import": "./dist/components/pagination/index.js"
165
+ },
166
+ "./autocomplete": {
167
+ "types": "./dist/components/autocomplete/index.d.ts",
168
+ "import": "./dist/components/autocomplete/index.js"
169
+ },
170
+ "./knob": {
171
+ "types": "./dist/components/knob/index.d.ts",
172
+ "import": "./dist/components/knob/index.js"
173
+ },
174
+ "./orderlist": {
175
+ "types": "./dist/components/orderlist/index.d.ts",
176
+ "import": "./dist/components/orderlist/index.js"
177
+ },
178
+ "./picklist": {
179
+ "types": "./dist/components/picklist/index.d.ts",
180
+ "import": "./dist/components/picklist/index.js"
181
+ },
182
+ "./table": {
183
+ "types": "./dist/components/table/index.d.ts",
184
+ "import": "./dist/components/table/index.js"
185
+ },
186
+ "./datepicker": {
187
+ "types": "./dist/components/datepicker/index.d.ts",
188
+ "import": "./dist/components/datepicker/index.js"
189
+ },
190
+ "./multiselect": {
191
+ "types": "./dist/components/multiselect/index.d.ts",
192
+ "import": "./dist/components/multiselect/index.js"
193
+ },
194
+ "./auto-import": {
195
+ "types": "./dist/plugins/index.d.ts",
196
+ "import": "./dist/plugins/index.js"
197
+ },
198
+ "./jsx": {
199
+ "types": "./dist/core/jsx.d.ts",
200
+ "import": "./dist/core/jsx.js"
201
+ },
202
+ "./vue": {
203
+ "types": "./dist/core/vue.d.ts",
204
+ "import": "./dist/core/vue.js"
205
+ },
206
+ "./components/*": {
207
+ "types": "./dist/components/*/index.d.ts",
208
+ "import": "./dist/components/*/index.js"
209
+ },
210
+ "./dist/*": "./dist/*"
211
+ }
212
+ }